【问题标题】:Protocol checksum reverse engineering协议校验和逆向工程
【发布时间】:2017-09-08 15:31:39
【问题描述】:

我正在尝试对协议的校验和进行逆向工程。它似乎是一个基于 4 位半字节的协议。 以下是协议中数据包的二进制表示:

1000 0001 1000 0001 0000 0001 1111 0010 1010 : 1001
1000 0001 1000 0001 0000 0001 1111 0010 1011 : 1010
1000 0001 1000 0001 0000 0001 1111 0010 1100 : 1111
1000 0001 1000 0001 0000 0001 1111 0010 1101 : 0000
1000 0001 1000 0001 0000 0001 1111 0010 1110 : 1101
1000 0001 1000 0001 0000 0001 1111 0010 1111 : 1110
1000 0001 1000 0001 0000 0001 1111 0011 0000 : 0100
1000 0001 1000 0001 0000 0001 1111 0011 0001 : 0011
1000 0001 1000 0001 0000 0001 1111 0011 0010 : 0010
1000 0001 1000 0001 0000 0001 1111 0011 0011 : 0001
1000 0001 1000 0001 0000 0001 1111 0011 0100 : 1000
1000 0001 1000 0001 0000 0001 1111 0011 0101 : 0111
1000 0001 1000 0001 0000 0001 1111 0011 0110 : 0110
1000 0001 1000 0001 0000 0001 1111 0011 0111 : 0101
1000 0001 1000 0001 0000 0001 1111 0011 1000 : 1100
1000 0001 1000 0001 0000 0001 1111 0011 1001 : 1011
1000 0001 1000 0001 0000 0001 1111 0011 1010 : 1010
1000 0001 1000 0001 0000 0001 1111 0011 1011 : 1001
1000 0001 1000 0001 0000 0001 1111 0011 1100 : 0000
1000 0001 1000 0001 0000 0001 1111 0011 1110 : 1110
1000 0001 1000 0001 0000 0001 1111 0011 1111 : 1101
1000 0001 1000 0001 0000 0001 1111 0100 0000 : 0101
1000 0001 1000 0001 0000 0001 1111 0100 0001 : 0110
1000 0001 1000 0001 0000 0001 1111 0100 0010 : 0111
1000 0001 1000 0001 0000 0001 1111 0100 0011 : 1000
1000 0001 1000 0001 0000 0001 1111 0100 0100 : 0001
1000 0001 1000 0001 0000 0001 1111 0100 0101 : 0010
1000 0001 1000 0001 0000 0001 1111 0100 0110 : 0011
1000 0001 1000 0001 0000 0001 1111 0100 0111 : 0100

最后一个半字节(“:”之后)是某种校验和。我无法弄清楚它是如何计算的。我什至不确定它是否考虑了所有以前的字段。其他 36 位中的大多数(如果不是全部)都是简单递增计数器的一部分。

如果有人能帮助弄清楚计算 csum 的算法是什么,那将不胜感激。

  • 汤姆

【问题讨论】:

  • 你能把你想要的任何东西都输入这个来看看校验和是如何产生的吗?如果是这样,我建议输入 2、4、8 和 16 行的文件,每个文件都完全相同,全为 0,然后全为 1(总共 8 个文件),然后比较结果。这应该比看柜台更有启发意义。我快速浏览了一下,似乎有某种阶梯模式正在发生,但似乎并不简单。

标签: math cryptography protocols checksum decoding


【解决方案1】:

在 IRC 上一位匿名人士的帮助下,我想通了。原来它不是完整的数据包,它前面还有更多位。之后,它是所有值加上一个 mod 16 的简单 XOR。

【讨论】:

    猜你喜欢
    • 2020-02-28
    • 2016-11-23
    • 2012-03-12
    • 2012-03-09
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    相关资源
    最近更新 更多