[发明专利]一种对递归下降式分析器反编译的干扰方法及装置有效
申请号: | 201710041552.0 | 申请日: | 2017-01-20 |
公开(公告)号: | CN108334756B | 公开(公告)日: | 2020-05-12 |
发明(设计)人: | 胡卫谊 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 刘杰 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 递归 下降 分析器 反编译 干扰 方法 装置 | ||
本发明公开一种对递归下降式分析器反编译的干扰方法及装置,该方法包括:设置中央处理器为ARM状态;获取程序计数寄存器的初始地址和目标函数相对于所述程序计数寄存器的相对地址;根据所述相对地址和所述初始地址,确定所述目标函数的绝对地址;根据所述绝对地址,按预设规则向所述目标函数中插入BLX指令,以误导所述分析器判断函数边界;恢复所述中央处理器为Thumb状态,以使所述目标函数能运行。本申请提供的方法和装置可以解决现有技术中的软件产品存在的较大的被反编译、被盗用的风险的技术问题。实现了有效增加反编译的难度和逆向提取函数的成本,减少了软件产品被反编译、被盗用的风险的技术效果。
技术领域
本发明涉及计算机技术领域,尤其涉及一种对递归下降式分析器反编译的干扰方法及装置。
背景技术
当前,随着网络技术的发展,各种不同类型及风格的软件产品层出不穷,软件产品在发布到公众领域后即面临着被逆向分析和攻击的风险,核心算法甚至可能直接被从软件镜像中剥离和进行未授权的再使用。
一般情况下,算法的剥离和再使用依赖于对原始二进制文件的反汇编和高级语言代码重建工作。在现代智能镜像分析工具的协助下,反汇编和代码重建能够自动进行且具有极高的还原度。甚至在大多数情况下工具自动重建的高级语言(如C语言)代码可以直接使用C编译器进行编译和运行。
可见,现有技术中的软件产品存在较大的被反编译、被盗用的风险,故为了维护软件开发人员及公司的利益,当前急需能保护软件产品被反编译的方法。
发明内容
本发明提供一种对递归下降式分析器反编译的干扰方法及装置,用以解决现有技术中的软件产品存在较大的被反编译、被盗用的风险的技术问题。
第一方面,本发明提供了一种对递归下降式分析器反编译的干扰方法,包括:
设置中央处理器为ARM状态;
获取程序计数寄存器的初始地址和目标函数相对于所述程序计数寄存器的相对地址;
根据所述相对地址和所述初始地址,确定所述目标函数的绝对地址;
根据所述绝对地址,按预设规则向所述目标函数中插入BLX指令,以误导所述分析器判断函数边界;
恢复所述中央处理器为Thumb状态,以使所述目标函数能运行。
可选的,所述方法应用于ARMv7架构的中央处理器。
可选的,所述设置中央处理器为ARM状态,包括:判断所述中央处理器是否为ARM状态;如果所述中央处理器为ARM状态,则保持所述中央处理器为ARM状态;如果所述中央处理器不为ARM状态,则在准备环境的Thumb指令的前后,分别使用伪操作指令.code 16和.code32引导编译器在生成机器码序列时自动插入对齐指令来实现地址对齐,以使所述中央处理器为ARM状态。
可选的,所述按预设规则向所述目标函数中插入BLX指令,包括:向所述目标函数中插入N个BLX指令,其中,所述N个BLX指令中的第一BLX指令的跳转地址指向所述N个BLX指令中的第二BLX指令,N为大于2的整数。
可选的,所述按预设规则向所述目标函数中插入BLX指令,包括:向所述目标函数中插入BLX指令,其中,所述BLX指令的跳转地址指向另一函数中插入的另一BLX指令;所述另一函数位于所述目标函数之前或之后。
可选的,所述恢复所述中央处理器为Thumb状态,包括:使用.code 16伪指令引导编译器,以恢复所述中央处理器为Thumb状态。
第二方面,本发明提供一种对递归下降式分析器反编译的干扰装置,包括:
准备模块,用于设置中央处理器为ARM状态;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710041552.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:隐私空间创建方法和装置、存储介质、电子设备
- 下一篇:一种账户管理系统