如何使文本部分在GDB中可写?

时间:2017-07-11 18:37:17

标签: gdb elf

我在GDB中运行一个精灵,并希望将执行代码写入文本部分。我可以从shell中做到这一点,如:

set {int}[text_address] = 0x8008face

但是执行写入此地址的指令会爆炸。

我宁愿不修改精灵,而是在运行中将地址范围设置为rwx。

编辑:我应该提一下,这是模拟的,而不是原生的。

1 个答案:

答案 0 :(得分:0)

使用--write标志调用GDB。

Documentation说:“打开可读取和写入的可执行文件和核心文件。这相当于GDB内部的'set write on'命令(参见补丁)。”但我不相信他们实际上是等价的。

另请参阅this answer示例。