CN109684795B - 应用程序反调试的方法、装置及电子设备 - Google Patents
应用程序反调试的方法、装置及电子设备 Download PDFInfo
- Publication number
- CN109684795B CN109684795B CN201811595266.XA CN201811595266A CN109684795B CN 109684795 B CN109684795 B CN 109684795B CN 201811595266 A CN201811595266 A CN 201811595266A CN 109684795 B CN109684795 B CN 109684795B
- Authority
- CN
- China
- Prior art keywords
- application program
- breakpoint
- application
- debugging
- breakpoint instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000001514 detection method Methods 0.000 claims abstract description 29
- 230000008569 process Effects 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
Abstract
本申请公开了一种应用程序反调试的方法,包括:在应用程序启动时,启动线程检测应用程序所在的内存空间中是否存在断点指令;若否,则检测应用程序的核心代码所在的地址空间中是否存在断点指令;当应用程序的核心代码所在的地址空间中存在断点指令时,调用安全终止流程令应用程序停止运行。本申请所提供的技术方案,能够准确的检测应用程序被调试的状态,使得攻击者无法通过修改运行环境来避开调试检测,检测到被调试后终止应用程序的运行,能很好的保护反调试代码,进而保护应用程序的代码安全。本申请同时还提供了一种应用程序反调试的装置、电子设备及计算机可读存储介质,具有上述有益效果。
Description
技术领域
本申请涉及应用程序调试领域,具体地,涉及一种应用程序反调试的方法、装置、电子设备及计算机可读存储介质。
背景技术
随着智能手机的普及,各类应用程序逐渐进入人们的工作、生活、娱乐,和金融支付相关的应用程序也被广使用。这也带来了安全问题,攻击者可以通过分析应用程序的代码,查找漏洞,制作病毒,窃取用户的信息。对应用程序代码的有效保护可以很好的提高应用程序的安全性,而反调试技术能有效的阻止攻击者对应用程序的调试分析,达到有效保护应用程序的目的。
相关反调试技术主要是通过检查进程调试状态,运行环境调试服务的方式确定应用程序是否正在被调试攻击,然后通过结束进程或运行一段错误逻辑的方式结束应用程序,以防止应用程序被调试分析。
然而,相关反调试技术不能准确的检测应用程序是否被调试,攻击者能够通过修改内核代码来改变进程调试状态为固定值,或修改调试服务的名称、使用端口号方式来规避应用程序对调试状态的检查,使反调试代码失效。
因此,如何实现应用程序的反调试是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供应用程序反调试的方法、装置、电子设备及计算机可读存储介质,用于实现应用程序的反调试。
为解决上述技术问题,本申请提供一种应用程序反调试的方法,该方法包括:
在应用程序启动时,启动线程检测所述应用程序所在的内存空间中是否存在断点指令;
当所述应用程序所在的内存空间中不存在所述断点指令时,检测所述应用程序的核心代码所在的地址空间中是否存在所述断点指令;
当所述应用程序的核心代码所在的地址空间中存在所述断点指令时,调用安全终止流程令所述应用程序停止运行。
可选的,当所述应用程序所在的内存空间中存在所述断点指令时,还包括:
调用所述安全终止流程令所述应用程序停止运行。
可选的,调用所述安全终止流程令所述应用程序停止运行,包括:
获取所述应用程序进程的栈指针;
根据所述栈指针清空栈上函数调用的信息,并向程序计数器赋随机值,以使所述应用程序运行时出现崩溃错误,进而停止运行。
可选的,检测所述应用程序的核心代码所在的地址空间中是否存在所述断点指令,包括:
在所述应用程序运行的逻辑中插入断点检查代码;其中,所述断点检测代码在所述应用程序运行时随着程序逻辑的执行被调用;
调用所述断点检测代码检测所述应用程序的核心代码所在的地址空间是否存在所述断点指令。
本申请还提供一种应用程序反调试的装置,该装置包括:
第一检测模块,用于在应用程序启动时,启动线程检测所述应用程序所在的内存空间中是否存在断点指令;
第二检测模块,用于当所述应用程序所在的内存空间中不存在所述断点指令时,检测所述应用程序的核心代码所在的地址空间中是否存在所述断点指令;
调用模块,用于当所述应用程序的核心代码所在的地址空间中存在所述断点指令时,调用安全终止流程令所述应用程序停止运行。
可选的,所述调用模块还用于当所述应用程序所在的内存空间中存在所述断点指令时,调用所述安全终止流程令所述应用程序停止运行。
可选的,所述调用模块包括:
获取子模块,用于获取所述应用程序进程的栈指针;
赋值子模块,用于根据所述栈指针清空栈上函数调用的信息,并向程序计数器赋随机值,以使所述应用程序运行时出现崩溃错误,进而停止运行。
可选的,所述第二检测模块包括:
插入子模块,用于在所述应用程序运行的逻辑中插入断点检查代码;其中,所述断点检测代码在所述应用程序运行时随着程序逻辑的执行被调用;
调用子模块,用于调用所述断点检测代码检测所述应用程序的核心代码所在的地址空间是否存在所述断点指令。
本申请还提供一种电子设备,该电子设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述应用程序反调试的方法的步骤。
本申请还提供一种计算机可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述应用程序反调试的方法的步骤。
本申请所提供应用程序反调试的方法,包括:在应用程序启动时,启动线程检测应用程序所在的内存空间中是否存在断点指令;当应用程序所在的内存空间中不存在断点指令时,检测应用程序的核心代码所在的地址空间中是否存在断点指令;当应用程序的核心代码所在的地址空间中存在断点指令时,调用安全终止流程令应用程序停止运行。
本申请所提供的技术方案,通过在应用程序启动时,启动线程检测应用程序所在的内存空间中是否存在断点指令;若不存在,则检测应用程序的核心代码所在的地址空间中是否存在断点指令;当应用程序的核心代码所在的地址空间中存在断点指令时,调用安全终止流程令应用程序停止运行,该方法能够准确的检测应用程序被调试的状态,使得攻击者无法通过修改运行环境来避开调试检测,检测到被调试后终止应用程序的运行,能很好的保护反调试代码,进而保护应用程序的代码安全。本申请同时还提供了一种应用程序反调试的装置、电子设备及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种应用程序反调试的方法的流程图;
图2为本申请实施例所提供的一种断点检查代码在应用进程空间中的位置示意图;
图3为图1所提供的一种应用程序反调试的方法中S103的一种实际表现方式的流程图;
图4为本申请实施例所提供的一种应用程序反调试的装置400的结构图;
图5为本申请实施例所提供的另一种应用程序反调试的装置400的结构图;
图6为本申请根据一示例性实施例示出的一种电子设备600的框图。
具体实施方式
本申请的核心是提供一种应用程序反调试的方法、装置、电子设备及计算机可读存储介质,用于实现应用程序的反调试。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种应用程序反调试的方法的流程图。
其具体包括如下步骤:
在步骤S101中,在应用程序启动时,启动线程检测应用程序所在的内存空间中是否存在断点指令。
基于相关反调试技术不能准确的检测应用程序是否被调试,攻击者能够通过修改内核代码来改变进程调试状态为固定值,或修改调试服务的名称、使用端口号方式来规避应用程序对调试状态的检查,使反调试代码失效,本申请提供了一种应用程序反调试的方法,用于解决上述问题;
断点,调试器的功能之一,可以让应用程序中断在需要的地方,从而方便其分析;当应用程序被调试时,调试器会往应用程序所在的内存空间或应用程序的核心代码所在的地址空间写入断点指令,故本申请在应用程序启动时,启动线程检测应用程序所在的内存空间中是否存在断点指令;
若应用程序所在的内存空间中不存在断点指令,则进入步骤S102;
可选的,当该应用程序所在的内存空间中存在断点指令时,则证明应用程序已经被调试或正在被调试,此时还可以调用安全终止流程令应用程序停止运行,进而实现应用程序的反调试。
在步骤S102中,当应用程序所在的内存空间中不存在断点指令时,检测应用程序的核心代码所在的地址空间中是否存在断点指令。
这里提到的应用程序的核心代码,其具体为完成基本输入输出或者软件基本功能的一整套代码,可以由若干个子程序组成,软件运行时被调用的几率非常高;
基于应用程序被调试存在着两种情况:一种是在应用程序未启动时提前将断点指令插入应用程序所在的内存空间中;另一种是在应用程序运行过程中将断点指令插入应用程序的代码中;而由于应用程序的代码中只有核心代码具有较高的调用率,因此为降低反调试工作对应用程序的影响,本申请在应用程序所在的内存空间中不存在断点指令时,只检测应用程序的核心代码所在的地址空间中是否存在断点指令;
可选的,为进一步提高应用程序的安全性,更好的保护用户的信息,在应用程序的核心代码所在的地址空间中不存在断点指令时,还可以返回执行步骤S101进行重复检测;
可选的,如图2所示,图2为本申请实施例所提供的一种断点检查代码在应用进程空间中的位置示意图,这里提到的检测应用程序的核心代码所在的地址空间中是否存在断点指令,可以通过断点检查代码进行实现,具体为:
在应用程序运行的逻辑中插入断点检查代码;其中,断点检测代码在应用程序运行时随着程序逻辑的执行被调用;
调用断点检测代码检测应用程序的核心代码所在的地址空间是否存在断点指令。
在步骤S103中,当应用程序的核心代码所在的地址空间中存在断点指令时,调用安全终止流程令应用程序停止运行。
当应用程序的核心代码所在的地址空间中存在断点指令时,则证明应用程序已经被调试或正在被调试,此时调用安全终止流程令应用程序停止运行;
可选的,在调用安全终止流程令应用程序停止运行之后,还可以发送相关问题描述报告或断点指令的相关信息至用户,以使用户能够锁定攻击者身份,进而修改攻击者的权限或者对其进行卸载。
基于上述技术方案,本申请所提供的一种应用程序反调试的方法,通过在应用程序启动时,启动线程检测应用程序所在的内存空间中是否存在断点指令;若不存在,则检测应用程序的核心代码所在的地址空间中是否存在断点指令;当应用程序的核心代码所在的地址空间中存在断点指令时,调用安全终止流程令应用程序停止运行,该方法能够准确的检测应用程序被调试的状态,使得攻击者无法通过修改运行环境来避开调试检测,检测到被调试后终止应用程序的运行,能很好的保护反调试代码,进而保护应用程序的代码安全。
针对于上一实施例中的步骤S103,其中提到的调用安全终止流程令应用程序停止运行,其具体可以包括如图3所示的步骤,请参考图3,图3为图1所提供的一种应用程序反调试的方法中S103的一种实际表现方式的流程图,其具体包括以下步骤:
在步骤S301中,获取应用程序进程的栈指针。
在步骤S302中,根据栈指针清空栈上函数调用的信息,并向程序计数器赋随机值,以使应用程序运行时出现崩溃错误,进而停止运行。
当检测到存在断点指令时,本申请实施例获取应用程序进程的栈指针,然后根据栈指针清空栈上函数调用的信息,并向程序计数器赋随机值,以使应用程序运行时出现崩溃错误,进而停止运行,能够很好的隐藏反调试代码的位置,阻止攻击者通过栈信息定位反调试代码位置,从而很好的保护应用程序的代码安全。
请参考图4,图4为本申请实施例所提供的一种应用程序反调试的装置400的结构图。
该装置可以包括:
第一检测模块410,用于在应用程序启动时,启动线程检测应用程序所在的内存空间中是否存在断点指令;
第二检测模块420,用于当应用程序所在的内存空间中不存在断点指令时,检测应用程序的核心代码所在的地址空间中是否存在断点指令;
调用模块430,用于当应用程序的核心代码所在的地址空间中存在断点指令时,调用安全终止流程令应用程序停止运行。
请参考图5,图5为本申请实施例所提供的另一种应用程序反调试的装置400的结构图。
该调用模块300还可以用于当应用程序所在的内存空间中存在断点指令时,调用安全终止流程令应用程序停止运行。
该调用模块300可以包括:
获取子模块,用于获取应用程序进程的栈指针;
赋值子模块,用于根据栈指针清空栈上函数调用的信息,并向程序计数器赋随机值,以使应用程序运行时出现崩溃错误,进而停止运行。
该第二检测模块200可以包括:
插入子模块,用于在应用程序运行的逻辑中插入断点检查代码;其中,断点检测代码在应用程序运行时随着程序逻辑的执行被调用;
检测子模块,用于断点检测代码检测应用程序的核心代码所在的地址空间是否存在断点指令。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
请参考图6,图6为本申请根据一示例性实施例示出的一种电子设备600的框图。
如图6所示,该电子设备600可以包括:处理器601,存储器602。该电子设备600还可以包括多媒体组件603,输入/输出(I/O)接口604,以及通信组件605中的一者或多者。
其中,处理器601用于控制该电子设备600的整体操作,以完成上述的应用程序反调试的方法中的全部或部分步骤。存储器602用于存储各种类型的数据以支持在该电子设备600的操作,这些数据例如可以包括用于在该电子设备600上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器602可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件603可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器602或通过通信组件605发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口604为处理器601和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件605用于该电子设备600与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件605可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的应用程序反调试的方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的应用程序反调试的方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器602,上述程序指令可由电子设备600的处理器601执行以完成上述的应用程序反调试的方法。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上对本申请所提供的一种应用程序反调试的方法、装置、电子设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种应用程序反调试的方法,其特征在于,包括:
在应用程序启动时,启动线程检测所述应用程序所在的内存空间中是否存在断点指令;
当所述应用程序所在的内存空间中不存在所述断点指令时,检测所述应用程序的核心代码所在的地址空间中是否存在所述断点指令;
当所述应用程序的核心代码所在的地址空间中存在所述断点指令时,调用安全终止流程令所述应用程序停止运行。
2.根据权利要求1所述的方法,其特征在于,当所述应用程序所在的内存空间中存在所述断点指令时,还包括:
调用所述安全终止流程令所述应用程序停止运行。
3.根据权利要求1或2所述的方法,其特征在于,调用所述安全终止流程令所述应用程序停止运行,包括:
获取所述应用程序进程的栈指针;
根据所述栈指针清空栈上函数调用的信息,并向程序计数器赋随机值,以使所述应用程序运行时出现崩溃错误,进而停止运行。
4.根据权利要求1所述的方法,其特征在于,检测所述应用程序的核心代码所在的地址空间中是否存在所述断点指令,包括:
在所述应用程序运行的逻辑中插入断点检测 代码;其中,所述断点检测代码在所述应用程序运行时随着程序逻辑的执行被调用;
调用所述断点检测代码检测所述应用程序的核心代码所在的地址空间是否存在所述断点指令。
5.一种应用程序反调试的装置,其特征在于,包括:
第一检测模块,用于在应用程序启动时,启动线程检测所述应用程序所在的内存空间中是否存在断点指令;
第二检测模块,用于当所述应用程序所在的内存空间中不存在所述断点指令时,检测所述应用程序的核心代码所在的地址空间中是否存在所述断点指令;
调用模块,用于当所述应用程序的核心代码所在的地址空间中存在所述断点指令时,调用安全终止流程令所述应用程序停止运行。
6.根据权利要求5所述的装置,其特征在于,所述调用模块还用于当所述应用程序所在的内存空间中存在所述断点指令时,调用所述安全终止流程令所述应用程序停止运行。
7.根据权利要求5或6所述的装置,其特征在于,所述调用模块包括:
获取子模块,用于获取所述应用程序进程的栈指针;
赋值子模块,用于根据所述栈指针清空栈上函数调用的信息,并向程序计数器赋随机值,以使所述应用程序运行时出现崩溃错误,进而停止运行。
8.根据权利要求5所述的装置,其特征在于,所述第二检测模块包括:
插入子模块,用于在所述应用程序运行的逻辑中插入断点检测 代码;其中,所述断点检测代码在所述应用程序运行时随着程序逻辑的执行被调用;
调用子模块,用于调用所述断点检测代码检测所述应用程序的核心代码所在的地址空间是否存在所述断点指令。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述应用程序反调试的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述应用程序反调试的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811595266.XA CN109684795B (zh) | 2018-12-25 | 2018-12-25 | 应用程序反调试的方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811595266.XA CN109684795B (zh) | 2018-12-25 | 2018-12-25 | 应用程序反调试的方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109684795A CN109684795A (zh) | 2019-04-26 |
CN109684795B true CN109684795B (zh) | 2023-01-24 |
Family
ID=66189444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811595266.XA Active CN109684795B (zh) | 2018-12-25 | 2018-12-25 | 应用程序反调试的方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684795B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231702A (zh) * | 2020-10-14 | 2021-01-15 | 深圳市百富智能新技术有限公司 | 应用保护方法、装置、设备及介质 |
CN112199298B (zh) * | 2020-11-02 | 2022-05-13 | 杭州安恒信息技术股份有限公司 | 一种单步调试的检测方法、装置和计算机可读存储介质 |
CN112527677B (zh) * | 2020-12-23 | 2021-09-24 | 北京深思数盾科技股份有限公司 | 应用程序的保护方法及电子设备 |
CN113886774B (zh) * | 2021-12-07 | 2022-02-11 | 北京微步在线科技有限公司 | 一种反调试方法及装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959652A (zh) * | 2005-11-03 | 2007-05-09 | 国际商业机器公司 | 在分布式调试器中调试计算机程序的方法和装置 |
CN101625644A (zh) * | 2009-08-04 | 2010-01-13 | 大唐微电子技术有限公司 | 闪存芯片操作方法、在线仿真器和闪存芯片操作系统 |
US8112636B1 (en) * | 2007-11-06 | 2012-02-07 | Lockheed Martin Corporation | Protection of code or data from exposure by use of code injection service |
CN102422274A (zh) * | 2009-05-06 | 2012-04-18 | 微软公司 | 低特权调试信道 |
CN103019941A (zh) * | 2012-12-28 | 2013-04-03 | 大唐微电子技术有限公司 | 程序调试方法和装置 |
CN105117253A (zh) * | 2015-08-27 | 2015-12-02 | 常州大学 | 一种基于BootLoader的UV LED固化系统远程升级方法 |
CN106778104A (zh) * | 2017-01-20 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | 一种应用程序的反调试方法和系统 |
CN107103214A (zh) * | 2017-04-06 | 2017-08-29 | 海信集团有限公司 | 一种应用于Android系统的应用程序反调试方法及装置 |
CN107992724A (zh) * | 2017-12-14 | 2018-05-04 | 四川大学 | 一种软件安全加固方法 |
CN108388778A (zh) * | 2018-03-21 | 2018-08-10 | 北京理工大学 | Android平台融合多特征的APP反调试方法 |
CN108804937A (zh) * | 2018-06-12 | 2018-11-13 | 广州华多网络科技有限公司 | 系统函数调用方法及相关装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9619346B2 (en) * | 2013-10-31 | 2017-04-11 | Assured Information Security, Inc. | Virtual machine introspection facilities |
-
2018
- 2018-12-25 CN CN201811595266.XA patent/CN109684795B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959652A (zh) * | 2005-11-03 | 2007-05-09 | 国际商业机器公司 | 在分布式调试器中调试计算机程序的方法和装置 |
US8112636B1 (en) * | 2007-11-06 | 2012-02-07 | Lockheed Martin Corporation | Protection of code or data from exposure by use of code injection service |
CN102422274A (zh) * | 2009-05-06 | 2012-04-18 | 微软公司 | 低特权调试信道 |
CN101625644A (zh) * | 2009-08-04 | 2010-01-13 | 大唐微电子技术有限公司 | 闪存芯片操作方法、在线仿真器和闪存芯片操作系统 |
CN103019941A (zh) * | 2012-12-28 | 2013-04-03 | 大唐微电子技术有限公司 | 程序调试方法和装置 |
CN105117253A (zh) * | 2015-08-27 | 2015-12-02 | 常州大学 | 一种基于BootLoader的UV LED固化系统远程升级方法 |
CN106778104A (zh) * | 2017-01-20 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | 一种应用程序的反调试方法和系统 |
CN107103214A (zh) * | 2017-04-06 | 2017-08-29 | 海信集团有限公司 | 一种应用于Android系统的应用程序反调试方法及装置 |
CN107992724A (zh) * | 2017-12-14 | 2018-05-04 | 四川大学 | 一种软件安全加固方法 |
CN108388778A (zh) * | 2018-03-21 | 2018-08-10 | 北京理工大学 | Android平台融合多特征的APP反调试方法 |
CN108804937A (zh) * | 2018-06-12 | 2018-11-13 | 广州华多网络科技有限公司 | 系统函数调用方法及相关装置 |
Non-Patent Citations (2)
Title |
---|
利用操作系统异常处理保护进行反调试;徐蕾;《科技资讯》;20080303(第07期);全文 * |
软件保护中的反跟踪技术;郑大公;《现代企业教育》;20071223(第24期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109684795A (zh) | 2019-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684795B (zh) | 应用程序反调试的方法、装置及电子设备 | |
US9141801B2 (en) | Apparatus and method for analyzing permission of application for mobile devices and detecting risk | |
US8225189B2 (en) | Data error detection | |
CN105550585B (zh) | 一种应用程序安全性测试方法、装置和系统 | |
US11055168B2 (en) | Unexpected event detection during execution of an application | |
EP3270319A1 (en) | Method and apparatus for generating dynamic security module | |
CN108021791B (zh) | 数据保护方法及装置 | |
CN112541178A (zh) | 控制流完整性实施的设备和方法 | |
CN113467981A (zh) | 异常处理的方法和装置 | |
CN112231198B (zh) | 一种恶意进程调试方法、装置、电子设备及介质 | |
CN110414218B (zh) | 内核检测方法、装置、电子设备及存储介质 | |
CN105809027B (zh) | 应用程序的权限控制方法及装置 | |
CN107368738B (zh) | 一种智能设备的防Root方法及装置 | |
CN110443043B (zh) | 一种对安卓应用程序的漏洞检测方法以及设备 | |
CN114238943A (zh) | 应用程序防护方法、装置、设备及存储介质 | |
US8925077B2 (en) | Mobile devices with inhibited application debugging and methods of operation | |
CN109815650B (zh) | 基于iOS调用framework的方法、装置及介质 | |
KR102324950B1 (ko) | 취약점을 효율적으로 탐지할 수 있는 아키텍처로 구성된 힙 영역 메모리 관리 방법 및 그 장치 | |
CN111382416B (zh) | 应用程序的运行识别方法、装置,终端设备及存储介质 | |
KR102623022B1 (ko) | 프로그램 보호를 위한 디버거 차단 방법 및 시스템 | |
CN112948241B (zh) | 应用程序的反调试方法、装置、电子设备及存储介质 | |
CN112883370A (zh) | 应用程序状态检测方法和装置、存储介质和电子设备 | |
CN109635589B (zh) | So文件调用的方法及装置 | |
CN111625784B (zh) | 一种应用的反调试方法、相关装置及存储介质 | |
CN111523115B (zh) | 信息确定方法、函数调用方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041 Patentee after: China Electronics Technology Network Security Technology Co.,Ltd. Address before: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041 Patentee before: CHENGDU WESTONE INFORMATION INDUSTRY Inc. |
|
CP01 | Change in the name or title of a patent holder |