发明名称 |
在用户空间中进行系统调用截取的方法和系统 |
摘要 |
一种从用户空间的过程进行的截取系统调用以及执行与截取的系统调用有关的处理的方法和系统。所述方法包括第一步骤,用于在执行过程中启动信号处理程序,在收到特定信号后执行与执行过程中系统调用的截取有关的处理。执行过程以新的请求执行ptrace系统调用——自ptrace,它在执行过程的任务描述符中设置现有系统跟踪ptrace请求对应系统跟踪旗标,并且设置新的旗标——pt_self旗标。在执行过程中进行系统调用时,执行新的系统调用跟踪,测试pt_self旗标是否置位。如果pt_self旗标已经置位,就将特定信号发送到执行过程本身并且在用户空间中执行已经启动的处理程序。 |
申请公布号 |
CN100504792C |
申请公布日期 |
2009.06.24 |
申请号 |
CN200710137019.0 |
申请日期 |
2007.07.19 |
申请人 |
国际商业机器公司 |
发明人 |
马克·沃特斯 |
分类号 |
G06F9/48(2006.01)I;G06F11/36(2006.01)I |
主分类号 |
G06F9/48(2006.01)I |
代理机构 |
中国国际贸易促进委员会专利商标事务所 |
代理人 |
付建军 |
主权项 |
1. 一种在用户空间中执行过程中截取系统调用并且在用户空间中执行与截取的系统调用有关的处理的方法,所述方法在计算机上执行,其中,操作系统内核支持包括系统跟踪的ptrace系统调用,所述方法进一步包括:在执行过程中启动信号处理程序,所述信号处理程序包含执行与将要截取的系统调用有关的操作的代码;在执行过程中,在执行将要截取的系统调用之前,进行在内核中设置系统跟踪旗标和自跟踪旗标的自ptrace请求;在执行系统调用之后,内核验证已设置系统跟踪旗标和自跟踪旗标;内核使系统跟踪旗标和自跟踪旗标复位;内核保存系统调用信息并发送与信号处理程序对应的、传递系统调用信息的信号;执行过程收到信号后,开始信号处理程序的执行;在信号处理程序执行结束时,在执行过程中,在所截取系统调用后跟随的下一条指令重新开始执行,同时提供系统调用返回信息。 |
地址 |
美国纽约 |