4

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)
4

1 に答える 1