如何对简单的校验和进行逆向工程



我有一些十六进制数据,我现在知道了它的含义(就像时间、位置、ecc…(:

01 64 00 00
01 01 01 2E
84 88 BE 00
00 AE 11 06
F8 03 C3 89

然后是校验和/密码:

56 3B 87 9B

还有另一个简单的例子(只是最后一位在改变(:

01 64 00 00
01 01 01 2E
84 88 BE 00
00 AE 11 06
F8 03 C3 88

使用以下校验和/密码:

DF 82 05 B3

我还有更多这样的例子。

有没有办法弄清楚(逆向工程(使用了哪个校验和或密码?我有理由相信,这可能只是一个简单的校验和或一个简单密码,没有什么太花哨的。

非常感谢

我发现了一些东西,也许。。。

我认为散列是使用一些crc方法完成的,并且通过使用这个非常有用的工具:

https://reveng.sourceforge.io/readme.htm

我发现了以下结果:

width=32 poly=0x2882b989 init=0xc6ea9616 refin=false refout=false xorout=0x00000000 check=0x6d514c85 residue=0x000000000 name=(none)

因为这不是一个标准的CRC,我不知道如何检查这个多项式是否有效(我不想自己实现CRC哈希生成器(。。。

有没有任何工具可以在给定数据输入和多项式特征(如poly、init(的情况下创建CRC哈希?

我发现:

https://github.com/madler/crcany

但我不知道如何让它发挥作用(我没有找到任何例子(。

感谢

否。

大多数校验和算法,甚至是旧算法,都是为了防止这种情况发生而设计的。更改输入上的任何一位,得到一个看起来完全随机的校验和,它看起来与其他所有可能的校验和完全无关。

当然,您可以通过您所知道的所有算法运行您所拥有的不同示例输入,并查看输出是否包含任何示例输出(它可能在开始或结束,也可能在中间的某个位置(。

如果它更复杂的话,它可能会使用";盐";。在通过算法运行数据之前,将一个秘密短语("salt"(添加到数据中。你可以用蛮力开始猜测,但我希望你能很快看到这变得非常不现实。

最新更新