我在一个警报设备上有一个语音文件,我想更改/重命名。这些文件是VOX格式的ADPCM (NLEN1.bin),我可以大胆地播放它们。并重新记录在凉爽的编辑。成功创建了同样512 to的文件大小,问题是把它们放回报警设备。我需要从语音文件中提供一个带有CRC值的bsc文件。如何获得新录制的语音文件的CRC值?
如果我对原始文件进行CRC检查,我就无法获得bsc文件中给出的值。因为我是逆向工程,所以我想我需要CRC16
BSC档案:
4278904898 NLEN1.bin
4280806306 NLEN2.bin
4280731940 NLEN3.bin
4291163785 NLEN4.bin
发布于 2013-12-06 17:13:52
通过使用艾达和Udis86进行一点“观察”,再加上一些Python黑客,我就能够确定.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)https://stackoverflow.com/questions/20377020
复制相似问题