Hex替换为ELF二进制文件中较长的字符串?

时间:2012-06-09 21:42:37

标签: c linux hex

我可以替换ELF二进制文件中的字符串,如果它具有更小或相等的长度,但是当用更长的字符串替换时会发生段错误。为什么会出现段错误?还有什么其他的东西必须改变才能起作用?

1 个答案:

答案 0 :(得分:1)

  

如果长度小于或等于

,我可以替换ELF二进制文件中的字符串

根据您是在讨论完全链接的二进制文件(ET_EXECET_DYN)还是目标文件(ET_REL),您的上述声明可能正确也可能不正确。< / p>

您无法安全地编辑完全链接二进制文件的.dynstr部分中的字符串,因为这样做会破坏动态符号哈希表。

  

但是当用更长的字符串替换时会发生段错误。

你期待什么? ELF二进制包含结构化数据。如果您破坏了该数据的结构,您应该期待各种的问题。你很幸运,你有一个段错误。它可能会更糟糕(例如,它可能会无声地破坏您在磁盘上写入的数据)。