我试图使用.text
使elf
二进制文件的objcopy --writable-text executable_name
部分可写。命令正常执行,没有任何错误。
在通过readelf
检查区段权限时,我可以看到文本区段仍然只有读取和执行权限。
在浏览该特定选项的objcopy
手册页时,会提到该选项对所有二进制格式都没有意义。(这就是我不能这么做的原因吗?)是的。
有人能指出我在这里缺少什么吗?
谢谢
(ubuntu x86_64位机器,gnu objcopy(ubuntu的gnu binutils)2.22.90.20120924)
最佳答案
在浏览这个特定选项的objcopy手册页时,会提到这个选项对于所有二进制格式都没有意义。(这就是我不能这么做的原因吗?).
对。
在这个rather detailed description of special sections the ELF format中,您可以看到.text
具有SHF_ALLOC + SHF_EXECINSTR
属性(为它分配了空间,并且空间中有可执行代码),但是没有SHF_WRITE
(可以写入空间)。您要求objcopy
执行的操作对elf.text
部分无效。
关于c - objcopy --writable-text不能使elf二进制文本节可写吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21638871/