[发明专利]一种热点模块指令跟踪的方法及系统在审
申请号: | 201610052808.3 | 申请日: | 2016-01-26 |
公开(公告)号: | CN105718374A | 公开(公告)日: | 2016-06-29 |
发明(设计)人: | 万仁忠;王东;王少杰;白金;李冰;宋珺;王宏;梁利;王派;李蒙;李霞;曹越;徐茜;陈琳 | 申请(专利权)人: | 国家信息技术安全研究中心 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市商泰律师事务所 11255 | 代理人: | 毛燕生 |
地址: | 100084 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 热点 模块 指令 跟踪 方法 系统 | ||
1.一种热点模块指令跟踪的系统,其特征在于包括以下模块:
调试循环模块:一个进程成为被调试进程之后,在完成了某些操作或者发生异常时,它会发送通知给调试器,然后将自身挂起,直到调试器命令它继续执行;
异常处理模块:通过异常的分发,对不同的异常事件进行处理,异常处理分离了接收和处理错误代码,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件);
读取寄存器和内存:线程都有一个上下文环境,它包含了有关线程的大部分信息,例如线程栈的地址,线程当前正在执行的指令地址等。上下文环境保存在寄存器中,系统进行线程调度的时候会发生上下文切换,实际上就是将一个线程的上下文环境保存到内存中,然后将另一个线程的上下文环境装入寄存器;
断点功能模块:在进行调试的时候,只有被调试进程暂停执行时调试器才可以对它执行操作,例如观察内存内容等。如果被调试进程不停下来的话,调试器是什么也做不了的;要使被调试进程停下来,除了几个在特定时刻才发生的调试事件外,唯一的途径就是引发异常,断点就是达到以上目的的异常;
单步执行模块:单步执行是最常见的调试手段之一,即每次执行一行代码,它也包括逐语句、逐过程、跳出三种命令;
通过使用CreateProcess这个WindowsAPI函数来启动被调试程序,通过调试循环模块,调试程序循环等待被调试程序触发异常事件;所述异常处理模块对异常事件进行分发处理;通过读取寄存器和内存这一模块,得到被调试进程访问页的位置信息,判断是否访问到感兴趣的内存页,如果访问的是热点模块,则触发PAGE_GUARD异常;通过异常处理模块处理PAGE_GUARD异常,被调试进程的所有线程被设置为单步调试,一条一条的执行指令;而断点功能模块可以在主程序进行调试时更灵活的操作。
2.根据权利要求1所述的一种热点模块指令跟踪的系统,其特征在于,所述热点模块可以是用户自己指定的文件所在内存区域。
3.根据权利要求1所述的一种热点模块指令跟踪的系统,其特征在于,所述PAGE_GUARD异常会在被调试进程读或写热点模块时被触发,并保证当线程不访问热点模块后,通过一个记录PAGE_GUARD属性的链表重设PAGE_GUARD属性,能保证对感兴趣的页面进行线程级实时跟踪。
4.一种热点模块指令跟踪的方法,其特征在于,首先标志热点模块,即用户感兴趣的页;当线程访问到用户感兴趣的页,那么将触发PAGE_GUARD异常,从而触发调试器进行处理;然后通过调试器设置所有线程为单步调试,并把该页的页号加入恢复链表,因为已经触发PAGE_GUARD异常的页会自动丢失PAGE_GUARD属性,从而确保多线程环境和内核回调环境下指令跟踪的完备性;最后在当前执行线程中分析执行指令的所在地址是否位于感兴趣的页,如果是,则继续单步调试,否则,那么就对该线程不进行操作,并根据之前使用的链表重新设置感兴趣的页面的PAGE_GUARD属性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家信息技术安全研究中心,未经国家信息技术安全研究中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610052808.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:缓存的配置方法及装置
- 下一篇:跨管芯接口监听或全局观察消息排序