我希望能够在我的C代码中检查对象文件的格式,以便根据文件是COFF还是ELF格式使用不同的读取函数。
这个有可能实现吗?如果可以,应该怎么做呢?
顺便说一下,这是在Linux下进行的,如果有任何区别,请告诉我。
读取前四个字节。如果它们等于 \x7fELF
,那么它就是一个 ELF 文件。否则,您应该将其解析为 COFF 并查看是否有意义。 (请注意,COFF 魔术值要复杂得多;在 /usr/share/file/magic
中我得到了不少于 42 个魔术值条目)。
popen("file ...")
将是一个相当差劲的解决方案)。 - mah