【问题标题】:How to reverse engineer simple checksum如何对简单校验和进行逆向工程
【发布时间】:2021-09-27 12:54:30
【问题描述】:

我有一些十六进制数据,我现在的意思是(比如时间、位置、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

我还有更多这样的例子。

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

非常感谢

【问题讨论】:

    标签: cypher reverse-engineering checksum


    【解决方案1】:

    没有。

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

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

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

    【讨论】:

      【解决方案2】:

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

      我认为散列是使用某种 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

      但我不知道如何使它工作(我没有找到任何示例)。

      谢谢

      【讨论】:

        猜你喜欢
        • 2016-11-23
        • 1970-01-01
        • 2014-05-16
        • 2012-03-12
        • 1970-01-01
        • 2020-02-28
        • 2012-01-30
        • 1970-01-01
        • 2010-09-22
        相关资源
        最近更新 更多