我正在编写一个使用 Ptrace 并执行以下操作的程序:
- 它读取当前的 eax 并检查系统调用是否为 sys_open。
- 如果是,那么我需要知道传递的参数是什么。
int sys_open(const char * filename, const int mode, const int mask)
所以 eax = 5 意味着它是一个开放的系统调用
我知道 ebx 有这个问题的文件位置的地址
但是我怎么知道文件名的长度以便我可以读取该位置的内容?
我遇到了以下问题,这些问题解决了相同的
问题 1
问题 2(这只是我的问题!)
但我仍然没有解决我的问题。:( 因为两个答案都不清楚。当我尝试问题 1 中的方法时,我仍然遇到分段错误
你可以在这里
检查我的代码
所以现在我真的想知道 strace 如何如此精美地提取这些值:(