我正在尝试在没有选项的情况下实现 STRACE,但我在使用 SYSCALL 参数时遇到了问题,例如: STRACE 中的 SYSCALL 0(读取)->
read(3,"\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360q\2\0\0\0\0\0"...,832) = 832
1 - 我不知道第二个参数中的这个字符串到底是什么。
2- 当我尝试使用 PTRACE_PEEKTEXT 返回此字符串并将其放入 (char *) 时,它确实返回与 STRACE 相同的值,但类型的问题是,它返回整数,其中一些是可打印的,其中一些是不可打印前: PEEK_TEXT:返回0,我把它改成ASCII然后放入缓冲区; 但有时 PTRACE 会返回一个像 'E' 69 这样的 ASCII 码,它已经可以打印了。 问题是我不知道如何将 PEEK_TEXT 返回值正确地放入缓冲区
3- 同样在 strace 中,您会看到由 '' 分隔的值,但 PEEK_TEXT 从未返回 ''