反调试方法、装置、存储介质及电子装置制造方法及图纸

技术编号:25550922 阅读:37 留言:0更新日期:2020-09-08 18:50
本发明专利技术公开了一种反调试方法、装置、存储介质及电子装置。该方法包括:在操作系统的第一内核函数中,配置目标进程从内核态返回用户态时所调用的回调函数的函数地址;在内核态返回至用户态的情况下,通过函数地址进入回调函数;在执行回调函数的过程中,在通过目标进程调用第二内核函数,且检测到目标进程附加有调试器的情况下,结束目标进程。本发明专利技术能够提高反调试的成功率。

【技术实现步骤摘要】
反调试方法、装置、存储介质及电子装置
本专利技术涉及计算机领域,具体而言,涉及一种反调试方法、装置、存储介质及电子装置。
技术介绍
目前,常用的反调试方法往往是利用inlinehook函数,或者利用DbgBreakPoint函数、DbgUiRemoteBreakin函数与DbgUserBreakPoint函数获得调试器的执行时机,用以及时退出调试器附加进程来实现反调试,提高程序的安全性。在实践中发现,攻击者往往可以利用PCHunter这种现有的Windows系统信息查看工具来感知并摘除inlinehook函数,在这种情况下会使得inlinehook函数无法获取到调试器的执行时机。又或者,攻击者往往可以自实现调试器的附加流程,从而不必使用操作系统中的DbgBreakPoint函数、DbgUiRemoteBreakin函数与DbgUserBreakPoint函数,在这种情况下会使得DbgBreakPoint函数、DbgUiRemoteBreakin函数与DbgUserBreakPoint函数无法获得调试器的执行时机。可见,当前的反调试方法存在着成功率低的问题。针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种反调试方法、装置、存储介质及电子装置,以至少能够提高反调试的成功率。根据本专利技术实施例的一个方面,提供了一种反调试方法,包括:在操作系统的第一内核函数中,配置目标进程从内核态返回用户态时所调用的回调函数的函数地址;在上述内核态返回至上述用户态的情况下,通过上述函数地址进入上述回调函数;在执行上述回调函数的过程中,在通过上述目标进程调用第二内核函数,且检测到上述目标进程附加有调试器的情况下,结束上述目标进程。根据本专利技术实施例的另一方面,还提供了一种反调试装置,包括:配置单元,用于在操作系统的第一内核函数中,配置目标进程从内核态返回用户态时所调用的回调函数的函数地址;进入单元,用于在上述内核态返回至上述用户态的情况下,通过上述函数地址进入上述回调函数;结束单元,用于在执行上述回调函数的过程中,在通过上述目标进程调用第二内核函数,且检测到上述目标进程附加有调试器的情况下,结束上述目标进程。根据本专利技术实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述反调试方法。根据本专利技术实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的反调试方法。在本专利技术实施例中,通过在操作系统的第一内核函数中,配置目标进程从内核态返回用户态时所调用的回调函数的函数地址,使得在从内核态返回用户态的情况下,可以通过函数地址进入回调函数,在执行回调函数的过程中,如果目标进程调用第二内核函数并且检测到目标进程附加有调试器的情况下,可以结束目标进程。在目标进程附加调试器的过程中,能够获取目标进程调用第二内核函数前的执行时机,从而实现反调试。这一过程由于未使用inlinehook函数,因而不会被PCHunter这种现有的Windows系统信息查看工具来感知并摘除,并且即使在攻击者自实现调试器的附加流程的情况下,也需要目标进程调用第二内核函数,而本专利技术实施例可以获取目标进程调用第二内核函数前的执行时机,从而能够实现反调试,进而实现提高反调试成功率。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是根据本专利技术实施例的一种可选的反调试系统的示意图;图2是根据本专利技术实施例的一种可选的反调试方法的流程示意图;图3是根据本专利技术实施例的另一种可选的反调试方法的流程示意图;图4是根据本专利技术实施例的一种可选的调试器附加的示意图;图5是根据本专利技术实施例的另一种可选的反调试方法的流程示意图;图6是根据本专利技术实施例的一种可选的进程环境块的目标标志位的检测示意图;图7是根据本专利技术实施例的一种可选的反调试装置的示意图;图8是根据本专利技术实施例的另一种可选的反调试装置的示意图;图9是根据本专利技术实施例的另一种可选的反调试装置的示意图;图10是根据本专利技术实施例的一种可选的电子装置的结构示意图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。根据本专利技术实施例的一个方面,提供了一种反调试方法,可选地,作为一种可选的实施方式,上述反调试方法可以但不限于应用于如图1所示的反调试系统中,如图1所示,在该反调试系统中,攻击者可以通过将调试器附加到被调试程序中,来调试被调试程序,从而实现程序篡改等恶意攻击操作。具体的,在调试器附加到被调试程序的过程中,需要利用DebugActiveProcess函数103将调试器附加到被调试程序,具体的,在DebugActiveProcess函数103执行的过程中,可以包括以下具体执行步骤:利用NtCreateDebugObject函数104进行初始化操作,在进行初始化操作之后,利用NtDebugActiveProcess函数105挂起被调试程序,也即是挂起目标进程,其中,目标进程是执行被调试程序的过程。在挂起目标进程之后,可以利用CreateRemoteThread函数106创建新线程。进一步的,利用CreateRemoteThread函数106创建新线程可以包括:利用内核态的内核函数PspCreateThread函数112调用LdrInitializeThunk函数109,在执行LdrInitializeThunk函数109之后,通过NtContinue函数110返回PspCreateThread函数112。在通过NtContinue函数110返回PspCreateThread函数112之后,线程开始执行,PspCreateThread函数112会调用DbgBreakPoint函数、DbgUiRemoteBreakin函数或者DbgUserB本文档来自技高网
...

【技术保护点】
1.一种反调试方法,其特征在于,包括:/n在操作系统的第一内核函数中,配置目标进程从内核态返回用户态时所调用的回调函数的函数地址;/n在所述内核态返回至所述用户态的情况下,通过所述函数地址进入所述回调函数;/n在执行所述回调函数的过程中,在通过所述目标进程调用第二内核函数,且检测到所述目标进程附加有调试器的情况下,结束所述目标进程。/n

【技术特征摘要】
1.一种反调试方法,其特征在于,包括:
在操作系统的第一内核函数中,配置目标进程从内核态返回用户态时所调用的回调函数的函数地址;
在所述内核态返回至所述用户态的情况下,通过所述函数地址进入所述回调函数;
在执行所述回调函数的过程中,在通过所述目标进程调用第二内核函数,且检测到所述目标进程附加有调试器的情况下,结束所述目标进程。


2.根据权利要求1所述的方法,其特征在于,所述在操作系统的第一内核函数中,配置目标进程从内核态返回用户态时所调用的回调函数的函数地址,包括:
将所述操作系统的所述第一内核函数的目标参数的值设置为目标数值,以使所述目标参数对应的信息类型设置为地址配置类型;
在所述目标参数的值设置为所述目标数值的情况下,将所述目标进程从所述内核态返回所述用户态时所调用的函数地址配置为所述回调函数的函数地址。


3.根据权利要求1所述的方法,其特征在于,在执行所述回调函数的过程中,还包括:
获取所述目标进程调用的目标函数;
在所述目标函数不为所述第二内核函数的情况下,从所述回调函数跳转至所述目标进程调用的所述目标函数。


4.根据权利要求1所述的方法,其特征在于,在所述目标函数为所述第二内核函数的情况下,还包括:
获取进程环境块中的目标标志位;
在所述目标标志位的数值为第一数值的情况下,确定所述目标进程附加有调试器,并结束所述目标进程。


5.根据权利要求4所述的方法,其特征在于,在所述目标标志位为第二数值的情况下,还包括:
从所述回调函数跳转至所述目标进程调用的所述目标函数。


6.根据权利要求1至5任一项所述的方法,其特征在于,在通过所述函数地址进入所述回调函数之后,还包括:
利用所述回调函数的栈空间保存寄存器,并控制所述栈空间的栈顶指针对齐至目标字节。


7.一种反调试装置,其特征在于,包括:
配置单元,用于在操作系统的第一内核函数中,配置目标进程从内核态返回用户态时所调用的回调函数的函数地址;
进入单元,用于在所述内核态返回至所述用户态的情况下,通过所述函数地址进入...

【专利技术属性】
技术研发人员:宋青原殷赵辉曹飞卢正军盛子骁朱泽瑾李文豪
申请(专利权)人:腾讯科技成都有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1