[发明专利]一种单步调试的检测方法、装置和计算机可读存储介质有效
申请号: | 202011203473.3 | 申请日: | 2020-11-02 |
公开(公告)号: | CN112199298B | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 胡瀚璋;范渊;黄进 | 申请(专利权)人: | 杭州安恒信息技术股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 史翠 |
地址: | 310000 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 调试 检测 方法 装置 计算机 可读 存储 介质 | ||
本发明实施例公开了一种单步调试的检测方法、装置和介质,在内存的自修改区域上预先存储自修改机器码;在全速调试模式下,先执行应用程序的原始机器码,此时指定地址的数据会被缓存至预设的高速缓存器中;在单步调试模式下,先调用自修改机器码将原始机器码替换为被修改机器码,此时指定地址的数据不会被缓存至所述高速缓存器中。获取加载指定地址的数据所消耗的时钟周期;若时钟周期大于预设阈值,则说明指定地址所对应的数据未被缓存至高速缓存器中,此时可以输出应用程序执行单步调试的检测结果。依据全速调试和单步调试对指定地址所对应的数据执行操作的差异性,可以准确的识别出应用程序是否被执行了单步调试。
技术领域
本发明涉及调试检测技术领域,特别是涉及一种单步调试的检测方法、装置和计算机可读存储介质。
背景技术
单步调试是指程序开发中,为了找到程序的缺陷(bug),通常采用的一种调试手段,一步一步跟踪程序执行的流程,根据变量的值,找到错误的原因。
但是目前在保护个人/公司软件的场景下,存在被人恶意通过单步调试来实现软件破解的问题,该问题不解决可能会带来个人/公司收费软件被免费使用,甚至被人插入恶意代码造成社会范围内恶意软件传播的风险。
常规的反调试方法基于windows官方应用程序编程接口(ApplicationProgramming Interface,API)实现调试检测,但是此方法并不能检测单步调试。
可见,如何识别单步调试,是本领域技术人员需要解决的问题。
发明内容
本发明实施例的目的是提供一种单步调试的检测方法、装置和计算机可读存储介质,可以识别单步调试。
为解决上述技术问题,本发明实施例提供一种单步调试的检测方法,包括:
在内存的自修改区域上预先存储自修改机器码;其中,在全速调试模式下,先执行应用程序的原始机器码,以便于将指定地址的数据缓存至预设的高速缓存器中;在单步调试模式下,先调用所述自修改机器码将所述原始机器码替换为被修改机器码,所述指定地址的数据未被缓存至所述高速缓存器中;
获取加载指定地址的数据所消耗的时钟周期;
判断所述时钟周期是否大于预设阈值;
若所述时钟周期大于预设阈值,则输出所述应用程序执行单步调试的检测结果。
可选地,在所述输出所述应用程序执行单步调试的检测结果之后还包括:
将所述应用程序的原始机器码替换为预设的被修改机器码,并将所述高速缓存器中的数据清除;其中,所述被修改机器码执行时不会将所述指定地址的数据缓存至预设的高速缓存器中。
可选地,在所述输出所述应用程序执行单步调试的检测结果之后还包括:
将所述应用程序删除。
可选地,在所述输出所述应用程序执行单步调试的检测结果之后还包括:
控制所述应用程序退出当前的单步调试流程。
可选地,在所述输出所述应用程序执行单步调试的检测结果之后还包括
向终端设备传输告警信息;其中,所述告警信息中携带有所述应用程序执行单步调试的日志数据。
本发明实施例还提供了一种单步调试的检测装置,包括存储单元、获取单元、判断单元和输出单元;
所述存储单元,用于在内存的自修改区域上预先存储自修改机器码;其中,在全速调试模式下,先执行应用程序的原始机器码,以便于将指定地址的数据缓存至预设的高速缓存器中;在单步调试模式下,先调用所述自修改机器码将所述原始机器码替换为被修改机器码,所述指定地址的数据未被缓存至所述高速缓存器中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州安恒信息技术股份有限公司,未经杭州安恒信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011203473.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种园林绿化树木支撑装置
- 下一篇:一种饲料制粒机及方法