2
是否可以讓gdb以交互方式拆卸機器代碼。例如:在GDB中以交互方式拆卸
(GDB)[拆卸命令]將0x58 0xef爲0x22
如果我給上述命令的gdb應該解釋十六進制值作爲機器代碼和給我回來的拆卸。我知道的命令只是分解加載程序的一部分內存。
是否可以讓gdb以交互方式拆卸機器代碼。例如:在GDB中以交互方式拆卸
(GDB)[拆卸命令]將0x58 0xef爲0x22
如果我給上述命令的gdb應該解釋十六進制值作爲機器代碼和給我回來的拆卸。我知道的命令只是分解加載程序的一部分內存。
GDB不能這樣做直接的,但你可以來八九不離十:
cat > t.c <<EOF
char buf[512];
int main() { return 0; }
EOF
gcc -g t.c -o t
gdb -q ./t
Reading symbols from /tmp/t...done.
(gdb) b main
Breakpoint 1 at 0x8048352: file t.c, line 2.
(gdb) r
Breakpoint 1, main() at t.c:2
2 int main() { return 0; }
(gdb) set buf[0] = 0x58
(gdb) set buf[1] = 0xef
(gdb) set buf[2] = 0x22
(gdb) x/i buf
0x8049560 <buf>: pop %eax
(gdb) q
+1創造力和精力,但我在尋找簡單的東西。 – Rohit 2010-10-29 07:33:19