GDB:更改正在运行的程序的汇编代码

Fra*_*tte 5 assembly gdb

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

set *0x08048e3a = 0x90
Run Code Online (Sandbox Code Playgroud)

但我想改变这个地址,0x08048e3a其中有je 0x8048e52.我想改成它je 0x8048ea8.

但是,当我这样做时,set *0x08048e3a = 0x74168048ea8它不起作用.(0x7416= je指示)

谢谢

Bas*_*tch 10

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

  set *(char*)0x08048e3a = 0x74
  set *(char*)0x08048e3b = 0x16
Run Code Online (Sandbox Code Playgroud)

等等

  • 要保存一些键入内容,您可以像设置\ *(char \ *)0x08048e3a @ 5 = {0x74,0x16,0x80,0x48,0xea}一样一次设置一些字节。 (2认同)