是否可以运行一个进程gdb
,修改一些内存,然后再detach
从该进程中运行?
在执行第一条指令之前,我无法从外部启动该过程,gdb
因为我需要修改内存。
当你detach
从一个以 , 开头的进程开始时gdb
,gdb
会挂起,但从gdb
另一个进程中杀掉会使被调试的进程仍在运行。
我目前使用以下脚本来启动该过程:
echo '# custom gdb function that finds the entry_point an assigns it to $entry_point_address
entry_point
b *$entry_point_address
run
set *((char *)0x100004147) = 0xEB
set *((char *)0x100004148) = 0xE2
detach # gdb hangs here
quit # quit never gets executed
' | gdb -quiet "$file"
这发生在我的两个gdb
版本中:
GNU gdb 6.3.50-20050815 (Apple version gdb-1824)
GNU gdb 6.3.50-20050815 (Apple version gdb-1822 + reverse.put.as patches v0.4)