メモリ内で実行されているバイナリを完全に復元できるかどうかを知りたいです。
これは私が試したものです、
最初に readを読ん/proc/PID/maps
でから、関連するすべてのセクションを gdb でダンプします (すべてのライブラリを無視します)。
grep sleep /proc/1524/maps | awk -F '[- ]' \
'{print "dump memory sleep." $1 " 0x" $1 " 0x" $2 }' \
| gdb -p 1524
次に、すべてのダンプを順番に連結します。
cat sleep.* > sleep-bin
しかし、ファイルは非常に異なっています/bin/sleep
再配置テーブルなどの初期化されていないデータのようですが、メモリダンプを修正することはできませんか? (実行可能にする)