ptrace
的界面允许您一次只阅读一个单词,我正在尝试扫描堆栈的更大部分
那么,只需使用循环。老实说,我不明白这对 有什么影响ptrace
,我一直使用它来远程访问进程。
我使用这样的东西:
static int memcpy_from_target(pid_t pid, char *dest, long src, size_t n)
{
static int const align = sizeof(long) - 1;
while (n)
{
size_t todo = MIN(n, sizeof(long) - (src & align));
long data = ptrace(PTRACE_PEEKTEXT, pid, src - (src & align), 0);
if (errno)
{
perror("ptrace_peektext (memcpy_from_target)");
return -1;
}
memcpy(dest, (char *)&data + (src & align), todo);
dest += todo; src += todo; n -= todo;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5478 次 |
最近记录: |