我目前正在“黑客攻击”一台建于1996年的旧3D打印机。旧的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
我认为在计算时没有考虑校验和本身或完整的行“校验和0x4f20”,因为那是不可能的(?)
感谢任何帮助。
编辑:我当然得到了一些带校验和的文件,但这些文件比这个文件要长很多。如果需要,我也可以提供它们。