【问题标题】:CRC check programCRC校验程序
【发布时间】:2013-12-21 00:53:30
【问题描述】:

我想更改/重新录制警报设备上的语音文件。这些文件采用 VOX 格式 ADPCM (NLEN1.bin),我可以大胆地播放它们。并在酷编辑中重新录制它们。成功创建相同大小的 512kb 文件 问题是将它们放回警报装置。我需要从语音文件中提供一个带有 CRC 值的 bsc 文件。如何获取新录制的语音文件的 CRC 值?

如果我对原始文件进行 CRC 检查,我无法获得 bsc 文件中给出的值。 因为我是逆向工程,我假设我需要 CRC16

BSC 文件:

4278904898 NLEN1.bin

4280806306 NLEN2.bin

4280731940 NLEN3.bin

4291163785 NLEN4.bin

【问题讨论】:

  • 文件中的无符号整数值需要 32 位。也许是 CRC-32?
  • BCN 文件显示 NLEN2.bin 的 CRC 为 4280806306,如果我对文件进行 CRC32 检查,我得到 9e4caa3c, hex-> DEC = 2655824444
  • 有许多可能的 CRC-32 多项式、初始寄存器内容和位/字反转/反转的可能性。 “BCN”/“BSC”是什么意思?为什么你认为整数应该是 CRC 的?
  • 扩展名是 bsc。 (用 BCN 打错字)我们第一次上传新录制的文件时,它给出了 CRC 错误。然后我们用原始语音文件更改了 bcs 文件中的数字之一。它在加载之前出现了“CRC错误”。
  • 感谢重播。它的工作很忙。但仍然喜欢让它继续下去。我为 Windows 安装了 Python 来运行你的脚本。但没有时间探索更多。希望这是运行脚本的好方法。

标签: reverse-engineering analysis speech crc data-integrity


【解决方案1】:

通过对IDAUdis86 的一些“观察”以及一些Python hack,我能够确定.bin.bsc 文件使用的校验和方案。

这里有一段 Python 代码(来自“ipython”),展示了如何生成所需的校验和:

In [1]: f=open('NLEN2.bin','r')

In [2]: s=f.read()

In [3]: from arraymodule import *

In [4]: my_int8s=[b for b in array('b',s)]

In [5]: my_int8s[:10]
Out[5]: [2, -103, -110, 0, -128, -128, 0, 10, -125, 10]

In [6]: my_checksum=sum(my_int8s)%(2**32)

In [7]: my_checksum
Out[7]: 4280806306L

注意:该程序似乎在每个 .bin 文件中准确地汇总了 524288 个字节。

注意:如果需要,上面的 Python 可以做得更快/更小。

编辑

这是没有 ipython 行号等的“脚本”,希望适用于您的 Windows 平台。

f=open('NLEN2.bin','rb')
s=f.read()
from array import *
my_int8s=[b for b in array('b',s)]
my_checksum=sum(my_int8s)%(2**32)
print("Checksum: %d\n" % my_checksum)

【讨论】:

  • @Roelofzo :如果这个答案是正确的,请点击复选标记接受它并考虑投票。另外,请考虑编辑您的问题以命名您正在使用的系统,以便您的问题也更有可能帮助其他人。问候。
  • python for windows 似乎没有附带 arraymodule ImportError: No module named arraymodule
  • python是哪个版本的?我相信我使用的是 2.7.5 或 2.7.6 版本。
  • 2.6.7 在 Windows 中。哦,它只是一个结果屏幕?哈哈。这可能就是为什么它不会运行 LOL。如果您不介意发布 pyhton 脚本,我想编辑声音文件,看看我是否可以创建有效的 CRC。然后看看报警框是否会播放我们新录制的声音文件。
  • 是的,是的,它的工作原理!!!!我还不能上传它。但这看起来真的很有希望!!非常感谢你!!!
猜你喜欢
  • 2015-06-29
  • 2014-05-11
  • 2012-09-07
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
  • 2021-05-11
  • 2013-01-10
  • 2022-01-12
相关资源
最近更新 更多