配置文件校验和猜测(CRC)

Config File Checksum guessing (CRC)

我目前是 "hacking" 一台旧的 3d 打印机,建于 1996 年。在一台旧的 Windows PC 上有软件 运行。我需要修改一些前端无法访问的参数,所以我想修改配置文件。但是如果我修改了一些东西,它就不能再被读取了。我注意到,文件末尾有一个校验和,而我并不是真正的校验和专家。我假设,在加载文件时,会再次计算此校验和并与最后的校验和进行比较。 我无法确定使用了哪种校验和算法。

我已经发现:我认为这不仅仅是在文件中添加位。当我切换两个字符时,通过加法生成的校验和不会改变。但是该软件不会获取该文件。

我猜它是某种 CRC16,因为校验和看起来像这样:

0x4f20

因为我用几个常用的 CRC16 参数计算了这个数字,但找不到与“4f20”的匹配项,我假设它一定是自定义 CRC16..

这是一个完整的示例文件:

PACKET noname
  style 502
  last_modified 1511855084 # Tue Nov 28 08:44:44 2017

  STRUCTURE MACHINE_OVRL
    PARAM distance_units
      Value = "millimeters"
    ENDPARAM
    PARAM language
      Value = "English"
    ENDPARAM
  ENDSTRUCTURE
ENDPACKET
checksum 0x4f20

我认为计算时未考虑校验和本身或整行 "checksum 0x4f20",因为那是不可能的 (?)

感谢任何帮助。

编辑:当然,我还有一些带有校验和的文件,但这些文件比这个文件长很多。需要的话我也可以提供..

RevEng就是为此而写的。给定输入和相关 CRC 的几个示例,RevEng 将导出 CRC 参数。如果是CRC.