在Linux中,二进制可执行文件和脚本都可以标记为“可执行”。我想在我的gcc程序中确定该文件是脚本还是二进制可执行文件。
我读到有一个a.out.h文件允许分析文件的标题,但我不知道如何在我的代码中使用它。或者,如果有一个简单的解决方案。
答案 0 :(得分:4)
你可以检查所谓的魔术字节。对于elf,前四个字节应该是十六进制的7f 45 4c 46
。你必须关心字节顺序。
以二进制模式打开文件并读取前四个字节就足够了。
E.g。
shell$ hexdump -n 10 ./ni6_ga
0000000 457f 464c 0101 0301 0000