self-debugging反调试(debugging命令)

网友投稿 409 2022-10-07


self-debugging反调试(debugging命令)

Self的英文意思是自己,顾名思义,self-debugging就是通过调试自身检测出是否被调试。

一: self-debugging反调试原理

1.通过观察下图所示。可知,当前的进程就是父进程,也就是即将被调试的进程。

2.然后通过父进程来fork一个子进程,如下图所示。

3.子进程实现了调试器的功能,如下图所示。

一般的调试器,先附加待调试程序的进程,获取相关进程的信息,才能进行相应的动态调试,如果由子进程来附加调试父进程,那么其他调试器就不能附加该进程,因为同一时刻,一个进程只能被一个进程附加。

二:self-debugger调试器的反调试流程

2.分别给最高权限chmod 777,如下图所示。

6.继续执行命令:ps | grep debugger,查看debugger的进程信息,发现存在两个进程信息,第一个进程22229就是刚才被调试程序的tracepid的值,第二个是系统的,可以直接忽略它,如下图所示。

9.使用debugger附加它的主进程,显示失败,如下图所示。

11.如果过掉self-debugger反调试,则可以附加它的子进程,如下图所示。

小结

分析了self-debugger原理,还演示self-debugger调试器的反调试流程,这个过程中需要关注其中的执行命令,最后还学了如何过掉self-debugger,附加子进程。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一篇文章带你入门java网络编程
下一篇:OPPO技术开放日第六期丨OPPO安全解析“应用与数据安全防护”背后的技术
相关文章

 发表评论

暂时没有评论,来抢沙发吧~