[发明专利]一种热点模块指令跟踪的方法及系统在审
申请号: | 201610052808.3 | 申请日: | 2016-01-26 |
公开(公告)号: | CN105718374A | 公开(公告)日: | 2016-06-29 |
发明(设计)人: | 万仁忠;王东;王少杰;白金;李冰;宋珺;王宏;梁利;王派;李蒙;李霞;曹越;徐茜;陈琳 | 申请(专利权)人: | 国家信息技术安全研究中心 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市商泰律师事务所 11255 | 代理人: | 毛燕生 |
地址: | 100084 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 热点 模块 指令 跟踪 方法 系统 | ||
技术领域
本发明涉及一种热点模块指令跟踪的方法及系统,属于软件分析技术领域。
背景技术
调试器是自从计算机诞生时就存在的,期初的调试器都是基于硬件直接实现的,调试器的工作原理是基于中央处理器的异常机制,并由操作系统的异常分发/事件分发的子系统(或模块)负责将其封装处理后,以比较友好的方式与调试器进行实时交互,调试是软件维护与错误修正的一个最重要、最直接,也是必不可少的一种机制。
调试器最基本的功能包括控制软件运行,查看软件运行中信息,修改软件执行流程。控制软件运行就是指,将一个飞速运行的程序中断下来,并且使其按照用户的意愿执行,调试器是靠迫使目标程序触发一个精心构造的异常来完成这些工作的;查看软件运行中信息,这些信息包含但不限于当前线程的寄存器信息,堆栈信息,内存信息,当前EIP(EIP寄存器,用来存储CPU要读取指令的地址,CPU通过EIP寄存器读取即将要执行的指令。每次CPU执行完相应的汇编指令之后,EIP寄存器的值就会增加。)附近的反汇编信息等;修改软件执行流程包括修改内存信息、反汇编信息、堆栈信息、寄存器信息等。
普通的调试器无法对指定的内存页进行全指令追踪,单步跟踪可以较好的跟踪线程指令,但仍然无法处理系统回调触发的指令执行,单步跟踪的性能开销同时也是非常大;断点跟踪可以较好的解决性能开销,但是断点的设置开销非常大,并且同样无法处理系统回调触发的指令执行,因此断点跟踪往往只用有限数量指令的跟踪。
发明内容
针对上述现有技术问题,本发明的目的在于提供一种针对热点模块进行指令追踪的方法,该方法能够动态的分析进程所访问的内存页,对被调试进程进行有效追踪查看,并有效检测恶意代码对内存页的访问,同时在指令跟踪的完备性和性能开销上都有良好的表现,被指定的热点模块可以是用户自己指定的文件所在的内存页。
为了达到上述目的,本发明采用如下技术方案:
一种热点模块指令跟踪的方法,首先标志热点模块,即用户感兴趣的页;当线程访问到用户感兴趣的页,那么将触发PAGE_GUARD(PAGE_GUARD标志指定了一个防护页(guardpage),即当一个页被提交时会因第一次被访问而产生一个one-shot异常,接着取得指定的访问权限。)异常,从而触发调试器进行处理;然后通过调试器设置所有线程为单步调试,并把该页的页号加入恢复链表,因为已经触发PAGE_GUARD异常的页会自动丢失PAGE_GUARD属性,从而确保多线程环境和内核回调环境下指令跟踪的完备性;最后在当前执行线程中分析执行指令的所在地址是否位于感兴趣的页,如果是,则继续单步调试,否则,那么就对该线程不进行操作,并根据之前使用的链表重新设置感兴趣的页面的PAGE_GUARD属性。
一种热点模块指令跟踪的系统,包括以下模块:
调试循环模块:一个进程成为被调试进程之后,在完成了某些操作或者发生异常时,它会发送通知给调试器,然后将自身挂起,直到调试器命令它继续执行;
异常处理模块:通过异常的分发,对不同的异常事件进行处理,异常处理分离了接收和处理错误代码,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件);
读取寄存器和内存模块:线程都有一个上下文环境,它包含了有关线程的大部分信息,例如线程栈的地址,线程当前正在执行的指令地址等。上下文环境保存在寄存器中,系统进行线程调度的时候会发生上下文切换,实际上就是将一个线程的上下文环境保存到内存中,然后将另一个线程的上下文环境装入寄存器;
断点功能模块:在进行调试的时候,只有被调试进程暂停执行时调试器才可以对它执行操作,例如观察内存内容等。如果被调试进程不停下来的话,调试器是什么也做不了的。要使被调试进程停下来,除了几个在特定时刻才发生的调试事件外,唯一的途径就是引发异常,断点就是达到以上目的的异常;
单步执行模块:单步执行是最常见的调试手段之一,即每次执行一行代码,它也包括逐语句、逐过程、跳出三种命令;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家信息技术安全研究中心,未经国家信息技术安全研究中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610052808.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:缓存的配置方法及装置
- 下一篇:跨管芯接口监听或全局观察消息排序