gpt4 book ai didi

android - Linux ptrace() 读取整个内存页

转载 作者:太空宇宙 更新时间:2023-11-04 10:42:24 25 4
gpt4 key购买 nike

您好,我尝试转储 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 是“新的”(在 gdb 的术语中)。

关于android - Linux ptrace() 读取整个内存页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34433451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com