This application discloses a method of application anti-debugging, including: when the application is started, the start thread detects whether there is a breakpoint instruction in the memory space where the application is located; if not, whether there is a breakpoint instruction in the address space where the core code of the application is located; and when there is a breakpoint instruction in the address space where the core code of the application is located, Call the secure termination process to stop the application. The technical scheme provided by this application can accurately detect the debugged status of the application, which makes it impossible for an attacker to avoid debugging detection by modifying the running environment, and terminate the operation of the application after detection of debugging. It can protect the anti-debugging code well, thus protecting the code security of the application. The application also provides a device for application program debugging, an electronic device and a computer readable storage medium, which have the above beneficial effects.
【技术实现步骤摘要】
应用程序反调试的方法、装置及电子设备
本申请涉及应用程序调试领域,具体地,涉及一种应用程序反调试的方法、装置、电子设备及计算机可读存储介质。
技术介绍
随着智能手机的普及,各类应用程序逐渐进入人们的工作、生活、娱乐,和金融支付相关的应用程序也被广使用。这也带来了安全问题,攻击者可以通过分析应用程序的代码,查找漏洞,制作病毒,窃取用户的信息。对应用程序代码的有效保护可以很好的提高应用程序的安全性,而反调试技术能有效的阻止攻击者对应用程序的调试分析,达到有效保护应用程序的目的。相关反调试技术主要是通过检查进程调试状态,运行环境调试服务的方式确定应用程序是否正在被调试攻击,然后通过结束进程或运行一段错误逻辑的方式结束应用程序,以防止应用程序被调试分析。然而,相关反调试技术不能准确的检测应用程序是否被调试,攻击者能够通过修改内核代码来改变进程调试状态为固定值,或修改调试服务的名称、使用端口号方式来规避应用程序对调试状态的检查,使反调试代码失效。因此,如何实现应用程序的反调试是本领域技术人员目前需要解决的技术问题。
技术实现思路
本申请的目的是提供应用程序反调试的方法、装置、电子设备及计算机可读存储介质,用于实现应用程序的反调试。为解决上述技术问题,本申请提供一种应用程序反调试的方法,该方法包括:在应用程序启动时,启动线程检测所述应用程序所在的内存空间中是否存在断点指令;当所述应用程序所在的内存空间中不存在所述断点指令时,检测所述应用程序的核心代码所在的地址空间中是否存在所述断点指令;当所述应用程序的核心代码所在的地址空间中存在所述断点指令时,调用安全终止流程令所述应用 ...
【技术保护点】
1.一种应用程序反调试的方法,其特征在于,包括:在应用程序启动时,启动线程检测所述应用程序所在的内存空间中是否存在断点指令;当所述应用程序所在的内存空间中不存在所述断点指令时,检测所述应用程序的核心代码所在的地址空间中是否存在所述断点指令;当所述应用程序的核心代码所在的地址空间中存在所述断点指令时,调用安全终止流程令所述应用程序停止运行。
【技术特征摘要】
1.一种应用程序反调试的方法,其特征在于,包括:在应用程序启动时,启动线程检测所述应用程序所在的内存空间中是否存在断点指令;当所述应用程序所在的内存空间中不存在所述断点指令时,检测所述应用程序的核心代码所在的地址空间中是否存在所述断点指令;当所述应用程序的核心代码所在的地址空间中存在所述断点指令时,调用安全终止流程令所述应用程序停止运行。2.根据权利要求1所述的方法,其特征在于,当所述应用程序所在的内存空间中存在所述断点指令时,还包括:调用所述安全终止流程令所述应用程序停止运行。3.根据权利要求1或2所述的方法,其特征在于,调用所述安全终止流程令所述应用程序停止运行,包括:获取所述应用程序进程的栈指针;根据所述栈指针清空栈上函数调用的信息,并向程序计数器赋随机值,以使所述应用程序运行时出现崩溃错误,进而停止运行。4.根据权利要求1所述的方法,其特征在于,检测所述应用程序的核心代码所在的地址空间中是否存在所述断点指令,包括:在所述应用程序运行的逻辑中插入断点检查代码;其中,所述断点检测代码在所述应用程序运行时随着程序逻辑的执行被调用;调用所述断点检测代码检测所述应用程序的核心代码所在的地址空间是否存在所述断点指令。5.一种应用程序反调试的装置,其特征在于,包括:第一检测模块,用于在应用程序启动时,启动线程检测所述应用程序所在的内存空间中是否存在断点指令;第二检测模块,用于当所述应用程序所在的...
【专利技术属性】
技术研发人员:向波,李东,
申请(专利权)人:成都卫士通信息产业股份有限公司,
类型:发明
国别省市:四川,51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。