ptrace(2)提供了修改Linux进程“用户”区域的工具(搜索http://linux.die.net/man/2/ptrace以获取PTRACE_POKEUSER)。
这个记忆区域是什么样的?我在哪里可以找到其布局的文档?
谢谢!
P.S。我意识到该区域包含信号动作,会计信息和系统堆栈等内容,但我对确切的格式感到好奇。 =)
答案 0 :(得分:2)
在PEEKUSER下,ptrace的手册页说
在子项的USER区域中读取偏移量addr处的单词,该区域包含寄存器和有关该过程的其他信息(请参阅
<sys/user.h>
)。
请查看/usr/include/sys/user.h
以查看struct user
的定义。要从那里访问东西,你需要使用offsetof宏来找到正确的偏移量来读/写你想要的数据。