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





