[发明专利]一种对递归下降式分析器反编译的干扰方法及装置有效
申请号: | 201710041552.0 | 申请日: | 2017-01-20 |
公开(公告)号: | CN108334756B | 公开(公告)日: | 2020-05-12 |
发明(设计)人: | 胡卫谊 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 刘杰 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 递归 下降 分析器 反编译 干扰 方法 装置 | ||
1.一种对递归下降式分析器反编译的干扰方法,其特征在于,包括:
设置中央处理器的工作状态为ARM状态;
获取程序计数寄存器的初始地址和目标函数相对于所述程序计数寄存器的相对地址;
根据所述相对地址和所述初始地址,确定所述目标函数的绝对地址;
根据所述绝对地址,按预设规则向所述目标函数中插入在不同位置的多个BLX指令,以使所述分析器以插入所述BLX指令的位置作为所述目标函数的边界,将BLX指令前后的指令切割成两个函数;
恢复所述中央处理器为Thumb状态,以使所述目标函数能运行。
2.如权利要求1所述的方法,其特征在于,所述方法应用于ARMv7架构的中央处理器。
3.如权利要求1所述的方法,其特征在于,所述设置中央处理器为ARM状态,包括:
判断所述中央处理器是否为ARM状态;
如果所述中央处理器为ARM状态,则保持所述中央处理器为ARM状态;
如果所述中央处理器不为ARM状态,则在准备环境的Thumb指令的前后,分别使用伪操作指令.code 16和.code 32引导编译器在生成机器码序列时自动插入对齐指令来实现地址对齐,以使所述中央处理器为ARM状态。
4.如权利要求1所述的方法,其特征在于,所述按预设规则向所述目标函数中插入BLX指令,包括:
按预设规则向所述目标函数中插入N个BLX指令,其中,所述预设规则为满足所述N个BLX指令中的第一BLX指令的跳转地址指向所述N个BLX指令中的第二BLX指令的规则,N为大于2的整数。
5.如权利要求1所述的方法,其特征在于,所述按预设规则向所述目标函数中插入BLX指令,包括:
按预设规则向所述目标函数中插入BLX指令,其中,所述预设规则为满足所述BLX指令的跳转地址指向另一函数中插入的另一BLX指令的规则;所述另一函数位于所述目标函数之前或之后。
6.如权利要求1所述的方法,其特征在于,所述恢复所述中央处理器为Thumb状态,包括:
使用.code 16伪指令引导编译器,以恢复所述中央处理器为Thumb状态。
7.一种对递归下降式分析器反编译的干扰装置,其特征在于,包括:
准备模块,用于设置中央处理器的工作状态为ARM状态;
获取模块,用于获取程序计数寄存器的初始地址和目标函数相对于所述程序计数寄存器的相对地址;
确定模块,用于根据所述相对地址和所述初始地址,确定所述目标函数的绝对地址;
插入模块,用于根据所述绝对地址,按预设规则向所述目标函数中插入在不同位置的多个BLX指令,以误导所述分析器判断函数边界,将BLX指令前后的指令切割成两个函数;
恢复模块,用于恢复所述中央处理器为Thumb状态,以使所述目标函数能运行。
8.如权利要求7所述的装置,其特征在于,所述中央处理器为ARMv7架构的中央处理器。
9.如权利要求7所述的装置,其特征在于,所述插入模块还用于:
向所述目标函数中插入N个BLX指令,其中,所述N个BLX指令中的第一BLX指令的跳转地址指向所述N个BLX指令中的第二BLX指令,N为大于2的整数。
10.如权利要求7所述的装置,其特征在于,所述插入模块还用于:
向所述目标函数中插入BLX指令,其中,所述BLX指令的跳转地址指向另一函数中插入的另一BLX指令;所述另一函数位于所述目标函数之前或之后。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710041552.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:隐私空间创建方法和装置、存储介质、电子设备
- 下一篇:一种账户管理系统