一. ptrace 介绍
Ptrace 提供了一种父进程可以控制子进程运行,并可以检查和改变它的核心image。它主要用于实现断点调试。一个被跟踪的进程运行中,直到发生一个信号。则进程被中止,并且通知其父进程。在进程中止的状态下,进程的内存空间可以被读写。父进程还可以使子进程继续执行,并选择是否是否忽略引起中止的信号
man手册介绍:http://man7.org/linux/man-pages/man2/ptrace.2.html
二. ptrace 的函数详解:
2.1 函数声明
1 long ptrace(enum __ptrace_request request,
2 pid_t pid,
3 void *addr,
4 void *data);
.参数request:请求ptrace执行的操作
.参数pid:目标进程的ID
.参数addr:目标进程的地址值
.参数data:作用则根据request的不同而变化,如果需要向目标进程中写入数据,data存放的是需要写入的数据;如果从目标进程中读数据,data将存放返回的数据
request参数决定了CODE的行为以及后续的参数是如何被使用的,参数request的常用的值如下: