如何修改二进制文件的校验和?
具体来说,我想编辑dll/exe中嵌入的校验和。
是否有可用的工具?
如何修改二进制文件的校验和?
具体来说,我想编辑dll/exe中嵌入的校验和。
是否有可用的工具?
Windows只要求内核模块的校验和!=0,对于用户模式模块,您不需要设置它。如果您真的想设置校验和,请运行EDITBIN /RELEASE yourapp.exe,或调用CheckSumMappedFile()。请参阅this article以分析校验和算法。
你可以使用“十六进制编辑器”来修改dll/exe文件,但是除非你知道如何反向计算校验和,否则它并没有太大的帮助。
好的,这个链接提供了Windows DLLs/Executables的文件格式: http://www.openrce.org/reference_library/files/reference/PE%20Format.pdf
你可以看到头部有几个可能存储校验和的位置,其中一些是可选的,所以你需要解析图像来找出里面的内容。有一些像Python PE解析器(谷歌搜索选项)的工具可以帮助你完成这个任务。
一旦你知道要更改哪些字节,就选择一个十六进制编辑器进行操作。你甚至可以在Visual Studio中编辑二进制文件。
[编辑:但是,正如我上面评论的那样,如果它与预期值不匹配,我认为Windows可能会拒绝它]