主代码部分的“.text”以外的名称

逆向工程 聚乙烯 小精灵 二进制格式 编译器
2021-07-02 09:05:36

假设在一般情况下,包含用户代码(不是编译器生成的代码)的部分的名称是安全的.text吗?我抽查了几个 ARM、x86 和 MIPS 二进制文件(PE 和 ELF),情况似乎如此。

我想编译器/链接器可以配置为选择不同的名称。在哪些情况下会想要改变它?是否有没有.text部分的已知示例(CPU 架构、编译器等)还有哪些常用名称?用户代码可以放在该部分以外的其他.text部分吗?

或者名称是否.text需要是有效的 PE/ELF,因此总是被选中?例如ELF 规范.text多次提到这个名字PE 规范也是如此

1个回答

段名称可以是任何名称,OS 加载程序仅在将文件映射到内存时使用段标志来设置权限。例如,Delphi 编译器使用 CODE,各种打包器使用自定义名称(UPX00 等)甚至垃圾。

AFAIK 唯一强制执行的部分名称是.rsrc- 我认为如果资源部分被重命名,资源管理器可能不会显示文件图标。