如何测试文件是否可以标记为可执行文件并运行?

时间:2019-12-05 14:38:44

标签: linux macos linux-kernel executable elf

是否有一种方法可以测试文件,如果我用chmod +x file将其标记为可执行文件并用./file运行,将导致操作系统执行该文件(或至少尝试执行该文件) ),而没有实际执行?

到目前为止,我有:

  1. 在Mac和Linux(或其他Unix)上,测试前两个字节是否为#!
  2. 在Linux上,测试前四个字节是否为0x7f454c46(ELF幻数)和e_type(偏移量0x10)是否为ET_EXEC0x0002 )。
  3. 在Mac上,检查文件是否为Mach-O且filetype是否为MH_EXECUTE。 (Mach-O格式稍微复杂一点,我还没有弄清楚filetype的确切魔术数和偏移量。)
  4. ...其他可执行文件格式?

有没有一种方法可以更轻松,更正确地进行此操作?

0 个答案:

没有答案