2

我正在使用以下代码,每当调用开放系统调用时,它实际上会获取寄存器(eax、ebx、ecx)中的内容。现在经过一番努力,我从这个问题中理解了价值观的含义。
ebx 包含指向文件名的指针。但是当我尝试访问它时,我遇到了分段错误。我哪里错了?代码可以从这里访问

4

1 回答 1

2

每个进程都有自己的地址空间。从另一个进程获得的地址在您的进程中将无效。在另一个进程中读取内存的一种方法是使用PTRACE_PEEKDATA. 在 Linux 上,另一种方法是打开/proc/<pid>/mem,寻找地址,然后像文件一样读取它。

于 2012-03-20T12:26:13.423 回答