[发明专利]一种基于动态虚拟指令变换的Android应用安全保护方法在审
| 申请号: | 201710981989.2 | 申请日: | 2017-10-20 |
| 公开(公告)号: | CN109697339A | 公开(公告)日: | 2019-04-30 |
| 发明(设计)人: | 俞研;胡恒伟;付安民;苏铓;黄婵颖 | 申请(专利权)人: | 南京理工大学 |
| 主分类号: | G06F21/14 | 分类号: | G06F21/14 |
| 代理公司: | 南京理工大学专利中心 32203 | 代理人: | 王玮 |
| 地址: | 210094 *** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | 本发明公开了一种基于动态虚拟指令变换的Android应用安全保护方法。本发明定义了自定义的虚拟指令集和虚拟机解释器,通过指令混淆操作将Dalvik指令集变换为自定义的虚拟指令集,在执行时对指令集之间的映射关系进行动态变换,并由自定义的虚拟机解释器对变换后的指令进行解释和执行,从而实现对Android应用中的关键方法和执行逻辑的保护。同时,基于自定义虚拟指令集的Android应用代码及其对应的虚拟机解释器内嵌在Android应用中,因而无需拥有Root权限或对Android底层系统进行修改。本发明能够对Android应用中的关键方法和执行逻辑提供有效的保护,提高应用程序的混淆程度和不可读性,能够有效提高攻击者实施逆向分析和代码转储攻击的时间与空间复杂度,实现Android应用的安全加固。 | ||
| 搜索关键词: | 自定义 虚拟指令 解释器 虚拟机 动态虚拟 应用安全 指令变换 指令集 应用 混淆 指令 空间复杂度 底层系统 动态变换 应用程序 应用代码 映射关系 攻击 内嵌 转储 可读性 分析 安全 | ||
【主权项】:
1.一种基于动态虚拟指令集的Android应用安全保护方法,其特征在于:步骤一,确定Android应用程序中的待保护方法,一部分方法由开发人员提供,另一部分为应用程序中访问系统敏感资源的方法,将两部分方法生成一个关键方法集合;步骤二,根据步骤一中生成的关键方法集合,从DEX文件中抽取出关键方法的方法指令、参数类型、返回值类型、寄存器个数,即根据对应的偏移量将关键方法的信息从类数据区中抽取出;步骤三,对步骤二中抽取出的关键方法的指令实施混淆操作,包括两部分:第一,对Dalvik虚拟机中所有的指令进行格式长度上的统一;第二,通过分析各应用软件中相伴出现频率较高的指令,将其组合在一起定义为新的虚拟指令;经过混淆操作后生成与原始方法指令不同的虚拟指令;步骤四,动态随机生成程序指令的置换矩阵;步骤五,利用步骤四中生成的置换矩阵对步骤三中混淆后的关键方法指令实施动态变换;置换矩阵中每一行与每一列有且仅有一个非零元素,利用矩阵相乘的原理,将指令操作码所代表的置换矩阵中那一行元素中非零元素所在的列数作为该操作码变换后的结果,并保存原始方法指令与虚拟指令间的映射关系;步骤六,针对步骤三生成的虚拟指令,采用自定义解释器来执行经过混淆与变换后的虚拟指令;步骤七,将步骤五生成的原始方法指令与虚拟指令之间的映射关系、步骤六生成的自定义解释器存储在动态链接库文件中,并将该文件内嵌或集成到Android应用程序中。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京理工大学,未经南京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710981989.2/,转载请声明来源钻瓜专利网。
- 上一篇:一种软件安装拦截方法及相关装置
- 下一篇:一种身份验证方法及装置





