使用python编写自己的进程调试工具

今天浅读了《Python灰帽子》,让我对程序调试有了更清晰的认识。如果没有记错的话,我最早了解程序调试工具gdb,使用gdb去运行着带着符号表的C程序,后来我大致了解到程序调试的原理是对于进程的控制或者说是观察,无论是C,是python还是java,之所以能够去调试这些程序,是因为进程管理给我们留了一个口子。

其实无论linux系统还是windows系统,操作系统本省都给我们提供了接口函数,这些接口函数可以去访问粒度级别的状态,可以用来获取进程,线程,乃至寄存器的状态。

x86的寄存器

寄存器状态,

EIP 这个寄存器始终指向当前正在执行的指令,当CPU穿行于二进制代码中时,EIP寄存器中的值随之更新以实时反映当前代码所执行到的位置。

oxCC当CPU一路执行碰到这个字节的时候会触发一个INT3中断事件,而当前执行的进程则暂停在此处。

posted @ 2022-03-06 10:39  叶常落  阅读(58)  评论(0编辑  收藏  举报