删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

基于指令虚拟化的安卓本地代码加固方法

本站小编 Free考研考试/2022-01-03

张晓寒,
张源,
池信坚,
杨珉,
复旦大学计算机学院 上海 201203
基金项目:国家自然科学基金(U1636204, U1836210, U1836213, U1736208, 61972099, 61602123, 61602121),上海市自然科学基金(19ZR1404800),国家“九七三”重点基础研究发展计划(2015CB358800)

详细信息
作者简介:张晓寒:男,1991年生,博士生,研究方向为系统与软件安全
张源:男,1987年生,副教授,研究方向为系统与软件安全
池信坚:男,1994年生,硕士生,研究方向为系统与软件安全
杨珉:男,1979年生,教授,研究方向为系统与软件安全
通讯作者:杨珉 m_yang@fudan.edu.cn
1)受该加固系统商用收费限制,本文只能在少量应用上进行测试
中图分类号:TN915.08; TP309.2

计量

文章访问数:1072
HTML全文浏览量:437
PDF下载量:75
被引次数:0
出版历程

收稿日期:2019-12-24
修回日期:2020-06-29
网络出版日期:2020-07-17
刊出日期:2020-09-27

Protecting Android Native Code Based on Instruction Virtualization

Xiaohan ZHANG,
Yuan ZHANG,
Xinjian CHI,
Min YANG,
School of Computer Science, Fudan University, Shanghai 201203, China
Funds:The National Natural Science Foundation of China (U1636204, U1836210, U1836213, U1736208, 61972099, 61602123, 61602121), The Natural Science Foundation of Shanghai (19ZR1404800), The National Basic Research Program of China (973 Program) (2015CB358800)


摘要
摘要:安卓系统越来越广泛地被应用于各种类型的智能设备,比如智能手机、智能手表、智能电视、智能汽车。与此同时,针对这些平台应用软件的逆向攻击也日益增多,这不仅极大地侵犯了软件开发者的合法权益,也给终端用户带来了潜在的安全风险。如何保护运行在各种类型设备上的安卓应用软件不被逆向攻击成为一个重要的研究问题。然而,现有的安卓软件保护方法比如命名混淆、动态加载、代码隐藏等虽然可在一定程度上增加安卓软件的逆向难度,但是原理相对简单容易被绕过。一种更为有效的方法是基于指令虚拟化的加固方法,但已有的指令虚拟化方法只针对特定架构(x86架构),无法兼容运行于多种架构的安卓设备。该文针对安卓应用软件中的本地代码提出了一种架构无关的指令虚拟化技术,设计并实现了基于虚拟机打包保护(VMPP)的加固系统。该系统包含一套基于寄存器架构的定长虚拟指令集、支持该虚拟指令集的解释器以及可以与现有开发环境集成的工具链。在大量C/C++代码以及真实安卓软件上的测试表明,VMPP在引入较低的运行时开销下,能够显著提升安卓本地代码的防逆向能力,并且可被用于保护不同架构上的安卓本地代码。
关键词:安卓安全/
软件保护/
代码加固/
指令虚拟化
Abstract:Android system is now increasingly used in different kinds of smart devices, such as smart phones, smart watches, smart TVs and smart cars. Unfortunately, reverse attacks against Android applications are also emerging, which not only violates the intellectual right of application developers, but also brings security risks to end users. Existing Android application protection methods such as naming obfuscation, dynamic loading, and code hiding can protect Java code and native (C/C++) code, but are relatively simple and easy to be bypassed. A more promising method is to use instruction virtualization, but previous binary-based methods target specific architecture (x86), and cannot be applied to protect Android devices with different architectures. An architecture-independent instruction virtualization method is proposed, a prototype named Virtual Machine Packing Protection (VMPP) to protect Android native code is designed and implemented. VMPP includes a register-based fix-length instruction set, an interpreter to execute virtualized instructions, and a set of tool-chains for developers to use to protect their code. VMPP is tested on a large number of C/C++ code and real-world Android applications. The results show that VMPP can effectively protect the security of Android native code for different architectures with low overhead.
Key words:Android security/
Software protection/
Android packer/
Instruction virtualization
注释:
1) 1)受该加固系统商用收费限制,本文只能在少量应用上进行测试



PDF全文下载地址:

https://jeit.ac.cn/article/exportPdf?id=74c2f466-e6b8-4528-b6ff-0d830ff5a9b3
相关话题/软件 系统 代码 智能 收费