【问题标题】:reverse engineering a checksum algorithm逆向工程校验和算法
【发布时间】:2016-11-23 11:52:38
【问题描述】:

我一直在尝试确定如何对该校验和进行逆向工程。它应该是一个简单的,它只是设备固件版本的校验和。这里有 5 个十六进制字符串:

01854000ff1131050600323132393031323430344d45363438304330363730313835 强> ffffffffffffffffffffffffffffffffffffffffffffffffffffff3030的 32 强> 32的 3132 强> 393030的 35353138 强> 303031485534355f4543455f4456445f535f4e0044的 31 强> 20302e3120ff的 7beff9fff36fff7f 强> ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40b 01854000ff1029050600323132393031303830364d45373738304230373541303436 强> ffffffffffffffffffffffffffffffffffffffffffffffffffffff3030的 31 强> 32的 3132 强> 393030的 36333133 强> 303031485534355f4543455f4456445f535f4e0044的 35 强> 20302e3120ff的 7beff9fff36fff7f 强> ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 01854000ff1029050600323034393031323230334d45353135304238303830333132 强> ffffffffffffffffffffffffffffffffffffffffffffffffffffff3030的 32 强> 32的 3034 强> 393030的 35393038 强> 303031485534355f4543455f4456445f535f4e0044的 35 强> 20302e3120ff的 7beff9fff36fff7f 强> fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9e6a 01854000ff1131050600323436393031303330324d45363831304330363632333636 强> ffffffffffffffffffffffffffffffffffffffffffffffffffffff3030的 33 强> 32的 3436 强> 393030的 36393038 强> 303031485534355f4543455f4456445f535f4e0044的 31 强> 20302e3120ff的 7beff9fff36fff7f 强> fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 01854000ff1301050600323436393031343430344d45373435304430373132313239 强> ffffffffffffffffffffffffffffffffffffffffffffffffffffff3030的 31 强> 32的 3436 强> 393030的 31333133 强> 303031485534355f4543455f4456445f535f4e0044的 35 强> 20302e3120ff的 FFFFFFFFFFFFFFFF 强> fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

看起来最后 2 个字节(4 个十六进制字母)是校验和。我用黑色标记了差异。

是否有人能够找出算法,校验和是如何创建的?我已经尝试了很多方法来找出它,但要么我做错了,要么没用。

【问题讨论】:

  • 校验和是什么?一些数据包还是什么?
  • 设备固件版本的简单校验和,我刚刚将此信息添加到帖子中,谢谢:-)
  • 现在,我想让你考虑一下“校验和”和“逆向工程”这两个词......
  • @specializt s/he 想知道算法而不是数据..
  • 你也一样 - 向后靠,深吸一口气,好好想想。您试图实现/解决的问题在数学上(和逻辑上)是不可能的,您需要先了解原因,然后再继续不断追求知识……这非常重要,相信我。

标签: reverse-engineering checksum crc deobfuscation


【解决方案1】:

我的猜测:

checksum(data) = CRC16-CCITT(data) XOR 0x6155

(可能相当于另一个标准的CRC16,我不知道)

See here 在线演示

【讨论】:

  • 顺便说一句:这可能与诺基亚 6155 的固件更新有关,还是纯属巧合?
【解决方案2】:

嗯,它可以是任何东西.. crc 有多种实现,例如these,我会将这些 crc 应用于数据并将它们的输出与您的输出进行比较..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 2020-02-28
    • 2015-10-24
    • 2021-09-27
    • 2014-04-08
    • 2015-02-28
    • 2014-05-16
    相关资源
    最近更新 更多