文章目录
一、代码调试器功能简介
二、Attach 进程
一、代码调试器功能简介
----
代码调试器功能 :
设置断点 : 无论什么类型的调试器 , 都必须可以设置断点 , 运行到断点处 , 挂起被调试进程..., 读取当前状态的 CPU 寄存器和内存数据 ;
arm 架构中 , 有一个单步调试标志位 , 将该标志位设置为 1 , 即可进行单步调试 ;
x86 架构中 , 主要是靠 int3 触发 ,...int3 对应 0xCC 机器码 , 将该机器码写入指令指定位置后 , 就会执行中断 , 调试器捕获该中断处理 , 就可以进入调试 ;
如果没有设置断点 , 想要调试程序 , 只能在系统调用时 , 触发中断...还需要可以恢复运行 ; 调用 ptrace 函数 , 传入 PTRACE_CONT 参数 , 就可以继续进行 ;
上述所有操作 , 都是通过调用 ptrace 方法完成的 , 只是传入不同的参数 , 执行不同的操作...;
参考 【Android 逆向】ptrace 函数 ( ptrace 函数族 | 进程附着 | 进程脱离 | 进程数据读写权限 | 进程对应的主线程寄存器读写 | 单步调试 |ptrace 函数族状态转换