[发明专利]一种基于动态虚拟指令变换的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应用的安全加固。
技术领域
本发明涉及一种Android应用软件安全保护方法,特别是基于动态虚拟指令变换的Android应用保护的方法,结合虚拟指令与自定义解释器两方面的优势充分保护Android应用软件的安全性。
背景技术
Google公司于2007年推出Android系统,在短短几年内迅速占领移动智能手机的市场,成为目前最流行的手机操作系统,根据通讯流量监测机构Statcounter提供的数据显示,2017年3月Android首次超过Windows成为全球第一大操作系统,占比37.93%,超过了微软的Windows系统的37.91%。
虽然Android系统的源码开源特性在一定程度上给开发人员带来了一定的便利,但是该特性也给Android应用带来了安全隐患。Android系统本身的安全机制是一种粒度较粗的安全机制,攻击者可以通过反编译、静态分析、动态分析、重打包等技术对应用程序进行恶意修改,同时,Android应用市场良莠不齐,难以管理,导致Android应用成为恶意软件泛滥的重灾区,严重损害了用户的利益。
目前攻击者针对Android应用实施攻击的主要手段是静态分析与动态分析。静态分析是攻击者在不运行程序的前提下对应用程序进行分析以获得程序的核心代码与执行逻辑,从而对应用程序进行恶意的篡改。目前,主要的静态分析工具有dex2jar、jd-gui、jadx、enjarify、Apktool等,利用这些工具对应用程序中的DEX文件进行分析后可以获得应用程序的源码,而Android应用程序绝大部分是由Java语言编写,由于Java语言具有丰富的语义信息,很容易被攻击者理解,导致应用程序核心代码的暴露。动态分析则需要攻击者运行应用程序,并通过追踪程序的执行过程来获得其期望得到的信息。一般来说,动态分析的主要方式是内存Dump,可以在程序运行时将映射到内存空间的程序原始的明文代码和数据转储起来。
目前,已有的针对Android应用的保护方法主要有代码混淆、完整性校验、DEX加壳等,这些方法虽然能够在一定程度上对Android应用起到保护作用,但是并不能完全抵御攻击者的静态分析与动态分析。另外,这些安全加固方法的原理比较固定,攻击者一旦了解其原理即可对其进行相应的破解。更为严重的是,这些方法并不能有效解决程序运行时的内存Dump问题,致使内存中保留的明文文件容易被攻击者通过内存转储技术获得,进而对明文文件进行分析。
发明内容
本发明的目的在于提供一种基于动态虚拟指令集的Android应用安全保护方法,通过抽取Android应用程序中DEX文件中的关键方法指令,并对其进行混淆和动态变换,进而利用自定义的虚拟机解释器进行解释执行,从而绕过原始Dalvik虚拟机的解释执行过程,以达到保护Android应用程序的目的。
实现本发明目的的技术方案是:一种基于动态虚拟指令集的Android应用安全保护方法,包括以下步骤:
步骤一,确定Android应用程序中的待保护方法,一部分方法由开发人员提供,另一部分为应用程序中访问系统敏感资源的方法,将两部分方法生成一个关键方法集合;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京理工大学,未经南京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710981989.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种软件安装拦截方法及相关装置
- 下一篇:一种身份验证方法及装置





