我试图弄清楚如何检测二进制文件是否已被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/

10-11 04:21