我试图弄清楚如何检测二进制文件是否已被UPX压缩。我正在使用一个简单的CRC来检测我的应用程序是否发生了任何更改,并且如果CRC由于打包程序而导致大小失败,我想将其检测为OK。
现在,我开始使用UPX。
那么,二进制文件上是否有任何标记?我应该搜索任何特定的JMP或其他说明吗?
这将主要在Windows中进行测试,但是将来我可能还会将其添加到Linux中。
任何帮助(和代码)表示赞赏。
添加:
我发现在10个二进制文件中,我检查了AddressOfEntryPoint
Import Directory RVA
Resouce Directory RVA
指向UPX或具有由UPX设置的偏移量。有任何信息吗?
谢谢
最佳答案
您可以尝试检查可执行文件的节名。我相信UPX会将它们更改为UPX0,UPX1,UPX2。
关于c - 以编程方式检测UPX,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4584981/