我在GDB中运行一个精灵,并希望将执行代码写入文本部分。我可以从shell中做到这一点,如:
set {int}[text_address] = 0x8008face
但是执行写入此地址的指令会爆炸。
我宁愿不修改精灵,而是在运行中将地址范围设置为rwx。
编辑:我应该提一下,这是模拟的,而不是原生的。
答案 0 :(得分:0)
使用--write
标志调用GDB。
Documentation说:“打开可读取和写入的可执行文件和核心文件。这相当于GDB内部的'set write on'命令(参见补丁)。”但我不相信他们实际上是等价的。
另请参阅this answer示例。