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)