在什么情况下,如果有的话,可执行 ELF 文件(类型 == EXEC)不会有部分 headers?

Under what circumstances, if any, would an executable ELF file (type == EXEC) not have section headers?

阅读 ELF 规范,似乎对于 EXEC 类型的 ELF 文件,header table 部分被列为“可选”。什么情况下会省略?

Under what circumstances would it be omitted?

节信息在执行时不需要,传统上只保留用于调试(例如,您可以从没有任何调试信息的情况下编译的可执行文件中获取崩溃的回溯)。

您应该可以使用例如删除它们strip --strip-all,但这似乎不起作用。

您还可以 binary-patch 文件 -- 例如将 ELF header.

中的 .e_shoff.e_shnum 归零

Related answer.