【发布时间】:2012-05-10 06:38:26
【问题描述】:
我目前正在开发一种工具,我必须在其中跟踪程序以了解他的系统调用。目前,我能够获取系统调用的数字参数,但无法正确获取字符串的地址。
这是我继续的方式:
long addr = ptrace(PTRACE_PEEKDATA, pid, regs.ebx, NULL);
printf("%s", (char *) &addr);
使用那段代码,我可以得到字符串的开头(前 3 或 4 个字符),但结尾已损坏,我不知道为什么。
你有什么解决办法吗? 谢谢。
【问题讨论】:
-
@Jeffey Muller:您试图捕获特定系统调用的参数,对吧?我构建了一个类似的应用程序,它类似于 strace,但适用于更少的系统调用。
标签: c char system-calls ptrace