[发明专利]基于LLVM的Android应用程序虚拟化保护方法有效
| 申请号: | 202011351267.7 | 申请日: | 2020-11-27 |
| 公开(公告)号: | CN112395614B | 公开(公告)日: | 2023-07-28 |
| 发明(设计)人: | 俞研;吴超;邓芳伟;付安民;苏铓 | 申请(专利权)人: | 南京理工大学 |
| 主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F8/30;G06F8/41;G06F8/73 |
| 代理公司: | 南京理工大学专利中心 32203 | 代理人: | 陈鹏 |
| 地址: | 210094 *** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 llvm android 应用程序 虚拟 保护 方法 | ||
本发明公开了一种基于LLVM的Android应用程序虚拟化保护方法,具体步骤为:步骤1、将待保护的函数加入到分级保护列表中;步骤2、将分级保护列表中的函数Native化;步骤3、将Native化的函数通过Clang编译器编译为LLVM IR,然后定制Pass抽取IR指令;步骤4、自定义指令集并且通过虚拟指令动态映射方法实现LLVM IR到自定义指令集的动态映射;步骤5、定制Pass进行自定义指令解释,并且将所有逻辑封装为动态链接库文件,打包到APK中。本发明解决了传统基于Dex文件虚拟化保护方法存在的安全性不足和运行性能较低的难题。
技术领域
本发明涉及Android应用程序虚拟化保护技术领域,具体涉及到一种基于LLVM的Android应用程序虚拟化保护方法。
背景技术
近年来,Android应用市场蓬勃发展,据有关数据统计,Android应用程序的发布呈现指数增长。越来越多的恶意攻击人员通过破解Android应用程序或者向Android应用程序注入恶意代码实现二次打包来牟利。因此,为了避免Android应用程序被窃取、信息被泄漏,程序开发人员需要投入大量的精力来考虑程序的安全性问题。Android应用程序主要分为Java层和Native层,其中,Java层代码在编译过程中生成Dex文件,Native层代码在编译过程中生成so文件。由于Dex文件自身的特性,使之在反编译后具有较高的可读性,而so文件反编译之后通常会丢失真实的语义,使得还原其原始的程序逻辑较为困难。所以,可以将Android应用程序中的关键函数通过Native层代码进行编写,并通过Java本地接口(JavaNative Interface,JNI)和Java层代码进行交互。
Android应用程序的虚拟化保护技术是Android安全防护的一种有力手段,通过自定义指令集并且实现从Dalvik指令集到自定义指令集的映射来实现虚拟化保护。然而,由于Android系统固有的开源特性和公开的语法语义,使得恶意攻击人员也可以利用公开的Dex文件的语法和数据结构,对Android应用程序进行分析,然后通过反编译工具还原其内部的实现逻辑。
发明内容
本发明的目的在于提供一种基于LLVM的Android应用程序虚拟化保护方法,能够实现基于Native层的Android应用程序虚拟化保护,效抵制针对Android应用程序的静态攻击和动态攻击。
实现本发明目的的技术方案为:一种基于LLVM的Android应用程序虚拟化保护方法,包括如下步骤:
步骤1、将待保护的函数加入到分级保护列表中;
步骤2、将分级保护列表中的函数Native化;
步骤3、将Native化的函数通过Clang编译器编译为LLVM IR,然后定制Pass抽取IR指令;
步骤4、自定义指令集并且通过虚拟指令动态映射方法实现LLVM IR到自定义指令集的动态映射;
步骤5、定制Pass进行自定义指令解释,并将所有逻辑封装为动态链接库文件,打包到APK中。
进一步的,所述步骤1中待保护的函数包括:需要敏感权限授权的函数、用户提供的待保护函数、涉及Activity组件的回调函数以及Android应用程序中函数执行时间占比高于设定的门限值的函数。
进一步的,所述步骤2中Dex文件转换采用开源工具DCC转换,步骤为:
步骤2-1、通过开源工具Androguard构建Dex文件的控制流图;
步骤2-2、基于控制流图直接从抽象语法树中直接构建基于SSA的IR;
步骤2-3、将SSA IR中的变量按照Dalvik指令进行类型推导;
步骤2-4、消除IR中的PHI节点并进行C/C++代码生成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京理工大学,未经南京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011351267.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:成像检测条包烟分离方法
- 下一篇:一种油莎豆翻晒机





