assembly - GDB : changing the assembly code of a running program

标签 assembly gdb

我成功地将指令更改为NOP,因为它非常基本:

set *0x08048e3a = 0x90

但我正在尝试更改此地址0x08048e3a,其中包含je 0x8048e52。我想将其更改为 je 0x8048ea8

但是当我set *0x08048e3a = 0x74168048ea8时它不起作用。 (0x7416 = je 指令)

谢谢

最佳答案

0x74168048ea8 比一个单词长。您应该尝试一一设置字节,例如

  set *(char*)0x08048e3a = 0x74
  set *(char*)0x08048e3b = 0x16

等等

关于assembly - GDB : changing the assembly code of a running program,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8455135/

相关文章:

带有 SIGFPE 的核心转储用于非零除法

Linux内核远程调试: Can not break back into debugger

c - 转储闪存的小代码

python - 如何将 gdb 附加到从 Python 脚本启动的子进程?

c - 程序集:从 C 调用或作为独立程序创建时的数据段

assembly - Windows : "undefined reference to ` print_string'"中的 NASM 汇编程序错误

objective-c - CoreAnimation 的主题

debugging - 当不存在符号信息时,如何使用 GDB 为 x86 程序集设置断点?

c - 为什么将 char 传递给函数会改变它在 c 中的值?

c++ - 组装:JA 和 JB 工作不正确