用ptrace来监控某一个进程的系统调用
方法:
- 用execpl执行某个程序,并打上TRACE_ME标记即可
- 如果要解决子进程启动新的进程也想要被监控的问题,可以使用Set Options的功能,来监控所有的fock、vfock等信息
- 基本原理是在调用fock新生成一个进程的时候,会返回进程pid,如果返回不是0,就是父进程,如果返回0,就是子进程。这样就可以分别在父进程、子进程中执行一些操作: 比如子进程中打上traceme标签,而在父进程中,可以开始调用wait,等待子进程的信号量,在这种方式下,子进程每进行一次系统调用,就会通知一次父进程,父进程可以通过进一步的查看寄存器信息,来获取到系统调用的名称、参数等信息
- 具体可以看ptrace的详细说明, ptrace本身就是一个系统调用命令。
说明: