我正在编写一个使用Ptrace的程序,它执行以下操作:
- 它读取当前的eax并检查系统调用是否为sys_open。
- 如果是,则需要知道传递了哪些参数。
int sys_open(const char * filename, const int mode, const int mask)
因此,eax = 5表示它是一个打开系统调用。
我得知ebx有文件位置地址,来自这个问题。
但是我如何知道文件名的长度,以便读取该位置中的内容?
我遇到了以下类似的问题
问题1
问题2(仅限我自己!)
但是我仍然没有得到解决我的问题的解决方案。:( 因为两个答案都不清楚。
当我尝试在问题1中采用的方法时,仍然会出现分段错误
你可以在这里检查我的代码
那么现在我真的很想知道strace如何如此美妙地提取这些值:(
strace
的源代码吗?你试过strace strace true
吗? - Basile Starynkevitch