我对ELF格式的工作原理以及如何通过代码访问其头部和数据一无所知,但我需要检查Linux下的ELF二进制文件是否被压缩(打包)了UPX。
通过使用
通过使用
strings
命令来检查二进制文件,我看到了字符串UPX!
,所以我想我可以使用它。通过十六进制编辑二进制文件,我可以看到这个字符串,并且根据在二进制文件中的位置,我可以假设它是ELF头部的一部分(如果我错了,请纠正我)。以下是该部分的转储内容:00000000 .ELF........................4...
00000020 ........4. ...(.................
00000040 ........................@...@...
00000060 @.....................[.UPX!....
00000080 ............T............?d..ELF
抱歉,我不确定这是否看起来好。
有人知道如何在Linux上检测UPX吗?如果不知道,如何访问头并获取UPX!
字符串(头的名称?)?
我确实查看了UPX源代码,但所有内容都是C ++,我想用C编写此代码,但很难跟进。
谢谢,欢迎任何帮助。
编辑:关于赏金。答案必须给出一个可行的示例,因为我尝试了不同的方法,它们并不总是有效的,例如下面的示例。
谢谢
magic
是包含所有file
引用的文件吗?我该如何从我的代码中调用它? - Jessica