[发明专利]一种防止软件被反调试的方法和系统在审
申请号: | 201510711176.2 | 申请日: | 2015-10-28 |
公开(公告)号: | CN106650338A | 公开(公告)日: | 2017-05-10 |
发明(设计)人: | 江家仁 | 申请(专利权)人: | 中国电信股份有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 中国国际贸易促进委员会专利商标事务所11038 | 代理人: | 刘剑波 |
地址: | 100033 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 防止 软件 调试 方法 系统 | ||
技术领域
本发明涉及信息安全领域,尤其涉及一种防止软件被反调试的方法和系统。
背景技术
随着计算机和入侵技术的不断发展,软件业在迅速壮大的同时面临的威胁也在与日俱增,软件开发者为了维护自身的利益,保护科研成果、技术和版权不被侵害,必须对软件进行防破解保护。同样,随着公民安全意识的全面提高,软件的使用者也越来越重视所购买的软件在使用过程中产生的涉及到自身的账户信息、交易数据和访问记录等敏感信息的安全性和软件反调试保护的有效性。
现有的软件反调试保护技术主要是通过本地硬件加密锁或加密锁虚拟机技术来实现程序保护,前者是一个具有程序处理和一定存储能力的硬件,使用成本高和便携性差使其应用场景受限,并且由于内置IC(Integrated Circuit,集成电路)指令不兼容X86指令,保护程序需要针对IC编译器单独设计,从而导致开发过程繁琐、可移植性差,对开发者要求也较高;而后者是通过对运行在X86系列计算机上的程序进行虚拟化映射转换来实现保护功能,但这些仍旧基于本地单机的保护方式对有联网通信要求的C/S(Client/Server,客户机/服务器)应用程序起到的保护非常有限。
图1示出了现有技术中实现防止软件反调试的架构的示意图。如图1所示,在单次运行生命周期内,其中,被保护软件进程101和加密锁虚拟机进程102位于客户端的User层(用户层),映射单元103和反映射单元104位于客户端的Kernel层(内核层)。被保护软件进程101将内存数据提交给映射单元103和反映射单元104,将加密 锁虚拟机进程102的output(输出)结果值返回给被保护软件进程101的过程中,由于缺少针对进程钩挂注入和进程寄存器及内存地址的反跟踪保护,导致仍旧可以被反调试工具跟踪调试和捕获、篡改内存数据。并且,由于加密锁虚拟机进程102生命周期小于等于被保护软件进程101,无法保留原始执行结果Hash特征值,导致无法进行再次校检和判定被保护软件进程101的内存是否存在被入侵和篡改的迹象、并且无法及时阻断入侵行为。同时,采用X86虚拟机保护方式导致执行效率降低和系统开销增大。
因此,需要更好的防止逆向调试和跟踪的技术,并不仅对客户端,而且还通过连接服务器的无缺性检查,以便提供更安全的运行环境。
发明内容
本发明提供了一种防止软件被反调试的方法和系统,通过客户端和服务器联动来检测并阻止对软件进行入侵和破解的方法和系统,解决了如何判断客户端上运行的软件正在被调试,并能够阻止继续入侵的安全盲点,从而使攻击者动态反调试目标软件、试图破解其保护壳、篡改程序结构和执行数据的行为无法有效实施。
根据本发明的一个方面,提供了一种防止软件被反调试的方法,包括:
在服务器中的第一防止反调试模块与客户端中的第二防止反调试模块建立联动通道后,第一防止反调试模块通过联动通道周期性的向第二防止反调试模块发送反调试查询请求;
第二防止反调试模块根据反调试查询请求,查询是否存在调试行为,并将查询结果通过联动通道发送给第一防止反调试模块;
第一防止反调试模块根据查询结果,判断被保护软件的运行是否异常;
若判断被保护软件的运行异常,则第一防止反调试模块通过联动通道向第二防止反调试模块发送保护操作指示,以便第二防止反调试模块阻断任何调制行为,从而实现端到端联动安全保护。
在一个实施例中,服务器中的第一Hook拦截模块通过联动通道周期性的向客户端中的第二Hook拦截模块发送Hook查询请求;
第二Hook拦截模块根据Hook查询请求,查询是否存在与被保护软件相关联的Message Hook调用行为,并将查询结果通过联动通道发送给第一Hook拦截模块;
第一Hook拦截模块根据查询结果,判断被保护软件的运行是否异常;
若判断被保护软件的运行异常,则第一Hook拦截模块通过联动通道向第二Hook拦截模块发送保护操作指示,以便第二Hook拦截模块拦截与被保护软件相关联的Message Hook调用行为。
在一个实施例中,服务器中的第一内存入侵拦截模块通过联动通道周期性的向客户端中的第二内存入侵拦截模块发送内存入侵查询请求;
第二内存入侵拦截模块根据内存入侵查询请求,查询是否存在内存入侵行为,并将查询结果通过联动通道发送给第一内存入侵拦截模块;
第一内存入侵拦截模块根据查询结果,判断被保护软件的运行是否异常;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电信股份有限公司,未经中国电信股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510711176.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:对安装包中的脚本文件进行处理的方法和装置
- 下一篇:书架(五层)