mat*_*thk 8 c linux bash memory-dump
读取/ proc/$ PID/maps时,您将获得映射的内存区域.是否可以倾倒这个地区之一?
$ cat /proc/18448/maps
...[snip]...
0059e000-005b1000 r-xp 00000000 08:11 40 /usr/local/lib/libgstlightning.so.0.0.0
005b1000-005b2000 r--p 00012000 08:11 40 /usr/local/lib/libgstlightning.so.0.0.0
005b2000-005b3000 rw-p 00013000 08:11 40 /usr/local/lib/libgstlightning.so.0.0.0
...[snip]...
Run Code Online (Sandbox Code Playgroud)
谢谢
Mat*_*ner 12
罗!打电话ptrace()
给PTRACE ATTACH
.然后打开/proc/<pid>/mem
,寻找区域偏移量,并读取给定的区域长度/proc</pid>/maps
.
这是我编写的一个程序,用C语言编写.这是我编写的一个模块,用Python(和ptrace绑定)完成.完成后,将进程的所有区域转储到文件的程序.
请享用!
您可以将GDB的过程,然后倾倒的起始位置l对于这个长度X字的内存区域:x/Xw L
.
在开始流程时附加gdb很简单:gdb ./executable
然后run
.如果您需要附加到正在运行的进程,请启动gdb,然后gdb attach pid
pid是您关心的进程ID.