我是靠谱客的博主 外向缘分,最近开发中收集的这篇文章主要介绍使用ptrace监控,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

关于ptrace,是在linux kernel中自带的模块,一个函数接口,能做的事情很多。

找到了两篇关于ptrace使用的blog,很详细,包括例子啥的。

ptrace的相关参数:

http://blog.163.com/yuanxiaohei@126/blog/static/6742308720123683433989/
ptrace的使用demo:
http://zhangwenxin82.blog.163.com/blog/static/114595956201171510512459/
 
监控的话,无论是attach还是fork一个进程,都是将目标进程变成此时进程的子进程。例如attack,会将目标进程挂起,此时进入子进程中,然后监控进程等待信号并唤醒目标进程,接收目标进程的信号,监控的时候则是关注于目标进程崩溃的信号,即11. 参见
各类信号对应的错误:
http://www.programgo.com/article/61482742513/
 
ptrace中的处理:
监控进程在完成相关操作以后就调用ptrace(PTRACE_CONT, …)或者 ptrace( PTRACE_SYSCALL, …), 这将唤醒子进程,内核此时所作的是调用一个叫wake_up_process() 的进程调度函数。其他的一些系统架构可能会通过发送SIGCHLD给子进程来达到这个目的。这也是在ptrace使用时,当使用traceme或者attach的时候,最后 都会有这两个调用中的一个。
 
注意:
使用attach(PTRACE_ATTACH或者PTRACE_SEIZE),需要使用root权限,不然无法attach.
 

转载于:https://www.cnblogs.com/icepng/p/5975118.html

最后

以上就是外向缘分为你收集整理的使用ptrace监控的全部内容,希望文章能够帮你解决使用ptrace监控所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部