一种单步调试的检测方法、装置和计算机可读存储介质制造方法及图纸

技术编号:27006159 阅读:29 留言:0更新日期:2021-01-08 17:09
本发明专利技术实施例公开了一种单步调试的检测方法、装置和介质,在内存的自修改区域上预先存储自修改机器码;在全速调试模式下,先执行应用程序的原始机器码,此时指定地址的数据会被缓存至预设的高速缓存器中;在单步调试模式下,先调用自修改机器码将原始机器码替换为被修改机器码,此时指定地址的数据不会被缓存至所述高速缓存器中。获取加载指定地址的数据所消耗的时钟周期;若时钟周期大于预设阈值,则说明指定地址所对应的数据未被缓存至高速缓存器中,此时可以输出应用程序执行单步调试的检测结果。依据全速调试和单步调试对指定地址所对应的数据执行操作的差异性,可以准确的识别出应用程序是否被执行了单步调试。

【技术实现步骤摘要】
一种单步调试的检测方法、装置和计算机可读存储介质
本专利技术涉及调试检测
,特别是涉及一种单步调试的检测方法、装置和计算机可读存储介质。
技术介绍
单步调试是指程序开发中,为了找到程序的缺陷(bug),通常采用的一种调试手段,一步一步跟踪程序执行的流程,根据变量的值,找到错误的原因。但是目前在保护个人/公司软件的场景下,存在被人恶意通过单步调试来实现软件破解的问题,该问题不解决可能会带来个人/公司收费软件被免费使用,甚至被人插入恶意代码造成社会范围内恶意软件传播的风险。常规的反调试方法基于windows官方应用程序编程接口(ApplicationProgrammingInterface,API)实现调试检测,但是此方法并不能检测单步调试。可见,如何识别单步调试,是本领域技术人员需要解决的问题。
技术实现思路
本专利技术实施例的目的是提供一种单步调试的检测方法、装置和计算机可读存储介质,可以识别单步调试。为解决上述技术问题,本专利技术实施例提供一种单步调试的检测方法,包括:在内存的自修改区域上预先存储自修改机器码;其中,在全速调试模式下,先执行应用程序的原始机器码,以便于将指定地址的数据缓存至预设的高速缓存器中;在单步调试模式下,先调用所述自修改机器码将所述原始机器码替换为被修改机器码,所述指定地址的数据未被缓存至所述高速缓存器中;获取加载指定地址的数据所消耗的时钟周期;判断所述时钟周期是否大于预设阈值;若所述时钟周期大于预设阈值,则输出所述应用程序执行单步调试的检测结果。可选地,在所述输出所述应用程序执行单步调试的检测结果之后还包括:将所述应用程序的原始机器码替换为预设的被修改机器码,并将所述高速缓存器中的数据清除;其中,所述被修改机器码执行时不会将所述指定地址的数据缓存至预设的高速缓存器中。可选地,在所述输出所述应用程序执行单步调试的检测结果之后还包括:将所述应用程序删除。可选地,在所述输出所述应用程序执行单步调试的检测结果之后还包括:控制所述应用程序退出当前的单步调试流程。可选地,在所述输出所述应用程序执行单步调试的检测结果之后还包括向终端设备传输告警信息;其中,所述告警信息中携带有所述应用程序执行单步调试的日志数据。本专利技术实施例还提供了一种单步调试的检测装置,包括存储单元、获取单元、判断单元和输出单元;所述存储单元,用于在内存的自修改区域上预先存储自修改机器码;其中,在全速调试模式下,先执行应用程序的原始机器码,以便于将指定地址的数据缓存至预设的高速缓存器中;在单步调试模式下,先调用所述自修改机器码将所述原始机器码替换为被修改机器码,所述指定地址的数据未被缓存至所述高速缓存器中;所述获取单元,用于获取加载指定地址的数据所消耗的时钟周期;所述判断单元,用于判断所述时钟周期是否大于预设阈值;所述输出单元,用于若所述时钟周期大于预设阈值,则输出所述应用程序执行单步调试的检测结果。可选地,还包括替换单元和清除单元;所述替换单元,用于在所述输出所述应用程序执行单步调试的检测结果之后,将所述应用程序的原始机器码替换为预设的被修改机器码;其中,所述被修改机器码执行时不会将所述指定地址的数据缓存至预设的高速缓存器中;所述清除单元,用于将所述高速缓存器中的数据清除。可选地,还包括删除单元;所述删除单元,用于在所述输出所述应用程序执行单步调试的检测结果之后,将所述应用程序删除。可选地,还包括退出单元;所述退出单元,用于在所述输出所述应用程序执行单步调试的检测结果之后,控制所述应用程序退出当前的单步调试流程。可选地,还包括传输单元;所述传输单元,用于在所述输出所述应用程序执行单步调试的检测结果之后,向终端设备传输告警信息;其中,所述告警信息中携带有所述应用程序执行单步调试的日志数据。本专利技术实施例还提供了一种单步调试的检测装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序以实现如上述任意一项所述单步调试的检测方法的步骤。本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述单步调试的检测方法的步骤。由上述技术方案可以看出,在内存的自修改区域上预先存储自修改机器码;其中,在全速调试模式下,先执行应用程序的原始机器码,以便于将指定地址的数据缓存至预设的高速缓存器中;在单步调试模式下,先调用自修改机器码将原始机器码替换为被修改机器码,此时指定地址的数据不会被缓存至所述高速缓存器中。因此,在该技术方案中,可以获取加载指定地址的数据所消耗的时钟周期;判断时钟周期是否大于预设阈值。若时钟周期大于预设阈值,则说明指定地址所对应的数据未被缓存至高速缓存器中,此时可以输出应用程序执行单步调试的检测结果。依据全速调试和单步调试对指定地址所对应的数据执行操作的差异性,可以准确的识别出应用程序是否被执行了单步调试,解决了现有技术中无法实现单步调试检测的问题。附图说明为了更清楚地说明本专利技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种单步调试的检测方法的流程图;图2为本专利技术实施例提供的一种单步调试的检测装置的结构示意图;图3为本专利技术实施例提供的一种单步调试的检测装置的硬件结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本专利技术保护范围。为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。接下来,详细介绍本专利技术实施例所提供的一种单步调试的检测方法。图1为本专利技术实施例提供的一种单步调试的检测方法的流程图,该方法包括:S101:在内存的自修改区域上预先存储自修改机器码。在全速调试模式下,对应用程序进行调试时,首先执行的第一步操作是执行应用程序的原始机器码,从而将指定地址的数据缓存至预设的高速缓存器中。而在单步调试模式下,由于在内存的自修改区域上存储了自修改机器码,因此CPU会先执行自修改区域上的自修改机器码,自修改机器码的作用是将原始机器码替换为被修改机器码,因此指定地址的数据不会被缓存至高速缓存器中。以软件场景为例,在实际应用中,当个人或公司开发了收费软件时,在对该软件对应的应用程序进行检测时,往往采用的是全速调试模式。当有人员想要恶意破解软件,从而免费使用该款软本文档来自技高网
...

【技术保护点】
1.一种单步调试的检测方法,其特征在于,包括:/n在内存的自修改区域上预先存储自修改机器码;其中,在全速调试模式下,先执行应用程序的原始机器码,以便于将指定地址的数据缓存至预设的高速缓存器中;在单步调试模式下,先调用所述自修改机器码将所述原始机器码替换为被修改机器码,所述指定地址的数据未被缓存至所述高速缓存器中;/n获取加载指定地址的数据所消耗的时钟周期;/n判断所述时钟周期是否大于预设阈值;/n若所述时钟周期大于预设阈值,则输出所述应用程序执行单步调试的检测结果。/n

【技术特征摘要】
1.一种单步调试的检测方法,其特征在于,包括:
在内存的自修改区域上预先存储自修改机器码;其中,在全速调试模式下,先执行应用程序的原始机器码,以便于将指定地址的数据缓存至预设的高速缓存器中;在单步调试模式下,先调用所述自修改机器码将所述原始机器码替换为被修改机器码,所述指定地址的数据未被缓存至所述高速缓存器中;
获取加载指定地址的数据所消耗的时钟周期;
判断所述时钟周期是否大于预设阈值;
若所述时钟周期大于预设阈值,则输出所述应用程序执行单步调试的检测结果。


2.根据权利要求1所述的单步调试的检测方法,其特征在于,在所述输出所述应用程序执行单步调试的检测结果之后还包括:
将所述应用程序的原始机器码替换为预设的被修改机器码,并将所述高速缓存器中的数据清除;其中,所述被修改机器码执行时不会将所述指定地址的数据缓存至预设的高速缓存器中。


3.根据权利要求1所述的单步调试的检测方法,其特征在于,在所述输出所述应用程序执行单步调试的检测结果之后还包括:
将所述应用程序删除。


4.根据权利要求1所述的单步调试的检测方法,其特征在于,在所述输出所述应用程序执行单步调试的检测结果之后还包括:
控制所述应用程序退出当前的单步调试流程。


5.根据权利要求1-4任意一项所述的单步调试的检测方法,其特征在于,在所述输出所述应用程序执行单步调试的检测结果之后还包括
向终端设备传输告警信息;其中,所述告警信息中携带有所述应用程序执行单步调试的日志数据。


6.一种单步调试的检测装置,其特征在于,包括存储单元、获取单元、判断单元和...

【专利技术属性】
技术研发人员:胡瀚璋范渊黄进
申请(专利权)人:杭州安恒信息技术股份有限公司
类型:发明
国别省市:浙江;33

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

1