【技术实现步骤摘要】
一种基于Intel处理器跟踪的反调试自动绕过方法
本专利技术涉及一种基于Intel处理器跟踪的代码反调试自动绕过方法,属于计算机应用
技术介绍
调试是软件逆向分析和逆向最常用的技术之一,尤其是在病毒分析、漏洞分析等安全领域中发挥着非常重要的作用。然而,一些软件的作者,尤其是恶意软件的作者通常会应用一些技术手段来阻止他人分析自己的软件。在这些技术手段中,反调试可以说是最被广泛使用的一种技术。目前,流行的反调试技术的主要可以分为两大类,一类是基于调试器检测技术,另一类是基于调试器干扰技术。基于调试器检测的反跳技术通常是通过多种方式检测是否有调试器存在,如果没有检测到调试器的存在,程序将会正常运行。如果检测到有调试器存在,程序的控制流将会变得不同于正常运行,如直接退出等。显然,对于基于调试器检测的反调试技术来说,其核心就是怎样检测调试器的存在。对于这个问题,最简单的方法是直接调用类似于IsDebuggerPresent之类的API,然而,由于API可能会被hook,所以这其实并不是可靠的检测调试器的方法。目前而言,相对比较可靠的方法大多都是通过检测调试器可能带 ...
【技术保护点】
1.一种基于Intel处理器跟踪的反调试自动绕过方法,其步骤包括:1)对于一目标程序,利用Intel处理器跟踪技术获取无调试器状态下该目标程序的控制流;2)对该目标程序调试过程中,将步骤1)得到的所述控制流与有调试器状态下该目标程序的控制流进行比对自动检测出该目标程序的基于调试器检测的反调试技术及其所在位置;然后根据当前检测到的反调试技术在其对应位置生成绕过该反调试技术的补丁。
【技术特征摘要】
1.一种基于Intel处理器跟踪的反调试自动绕过方法,其步骤包括:1)对于一目标程序,利用Intel处理器跟踪技术获取无调试器状态下该目标程序的控制流;2)对该目标程序调试过程中,将步骤1)得到的所述控制流与有调试器状态下该目标程序的控制流进行比对自动检测出该目标程序的基于调试器检测的反调试技术及其所在位置;然后根据当前检测到的反调试技术在其对应位置生成绕过该反调试技术的补丁。2.如权利要求1所述的方法,其特征在于,步骤1)中,利用Intel处理器跟踪技术获取无调试器状态下该目标程序在确定输入下的控制流。3.如权利要求2所述的方法,其特征在于,步骤1)中,控制该目标程序可能的所有的输入,使其保持与调试时的输入数据完全相同,得到该目标程序的控制流。4.如权利要求1或2或3所述的方法,其特征在于,通过HOOK内核使得内核记录自修改代码和JIT代码的代码镜像以及自修改完成时的时间戳,以用于后续对Intel处理器的记录进行解码,该目标程序的控制流。5.如权利要求4所述的方法,其特征在于,获取自修改代码和JIT代码的代码镜像以及自修改完成时的时间戳的方法为:对该目标程序进行内存映射,当映射的内存为可写可执行内存,则通过修改页表移除页面内存的可执行权限;当该页面内存由于不可执行而产生页故障时,将该页面内存镜像到一文件中,并记录下镜像的时间戳,然后赋予该页面内存可执行权限,并移除其可写权限。6.如权利要求1所述的方法,其特征在于,将步骤1)得到的所述控制流以及目标程序的可执行文件进行匹配,识别出基于调试器干扰的反调试技术;然后通过覆盖NOP的方式将...
【专利技术属性】
技术研发人员:韩心慧,李冠成,陈永恒,李天一,武新逢,
申请(专利权)人:北京大学,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。