我想知道是否可以完全恢复在内存中运行的二进制文件。
这是我试过的
首先 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
好像是重定位表等未初始化的数据,是不是无法修复内存转储?(使其可运行)