繁体   English   中英

Linux ptrace()读取整个内存页面

[英]Linux ptrace() read whole memory page

您好,我尝试在Android / Linux中转储进程的内存。 现在,我读取内存映射以获取内存区域的地址空间,然后读取每个单词,如下所示:

ptrace(PTRACE_ATTACH, pid, NULL, NULL);
wait(NULL);

read each word in this memory region:
word = ptrace(PTRACE_PEEKDATA, pid, (void *)address, NULL);

ptrace(PTRACE_CONT, pid, NULL, NULL);
ptrace(PTRACE_DETACH, pid, NULL, NULL);

通过指定要读取的内存地址空间的开始/结尾,是否有更有效的解决方案来直接读取整个内存页?

有两种可能的方法可以从另一个进程更有效地读取内存。

如果您的内核支持(我对Android内核一无所知),则可以使用process_vm_readv

另一种方法是打开目标进程的/proc/.../mem文件并从中读取。 gdb使用此方法,尽管我认为仅是因为process_vm_readv是“ new”(以gdb的术语)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM