返回
Compile-time code virtualization for android applications
DOI:10.1016/j.cose.2020.101821.png)
摘要
En 中文
Infringing intellectual property by reverse analysis is a severe threat to Android applications. By replacing the program instructions with virtual instructions that an adversary is unfamiliar with, code obfuscation based on virtualization is a promising way of protecting Android applications against reverse engineering. However, the current code virtualization approaches for Android only target at the DEX bytecode level. The DEX file with the open file format and more semantic information makes the decode-dispatch pattern easier to expose, which has been identified as a severe vulnerability of security and can be exploited by various attacks. Further, decode-dispatch interpretation frequently uses indirect branches in this structure to introduce extra overhead. This paper presents a novel approach to transfer code virtualization from DEX level to native level, which possesses strong security strength and good stealth, with only modest cost. Our approach contains two components: pre-compilation and compile-time virtualization. Pre-compilation is designed for performance improvement by identifying and decompiling the critical functions which consume a significant fraction of execution time. Compile-time virtualization builds upon the widely used LLVM compiler framework. It automatically translates the DEX bytecode into the common LLVM intermediate representations where a unified code virtualization pass can be applied for DEX code. We have implemented a working prototype Dex2VM of our technique and applied it to eight representative Android applications. Our experimental results show that the proposed approach can effectively protect the target code against a state-of-the-art code reverse engineering tool that is specifically designed for code virtualization, and it achieves good stealth with only modest cost. (C) 2020 Elsevier Ltd. All rights reserved.
Keyword:
Android packer
Code virtualization
Compiler
LLVM
AI总结
对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。
期刊
C
IF:
5.4
论文数:
4.6K
被引数:
1.4W
机构
引用论文
A Comparison of Android Reverse Engineering Tools via Program Behaviors Validation Based on Intermediate Languages Transformation
IEEE ACCESS
IF3.6
Enhance virtual-machine-based code obfuscation security through dynamic bytecode scheduling通过动态字节码调度增强基于虚拟机的代码混淆安全性
COMPUTERS & SECURITY
IF5.4
Exploiting Binary-Level Code Virtualization to Protect Android Applications Against App Repackaging利用二进制级代码虚拟化保护Android应用程序免受应用程序重新打包
IEEE ACCESS
IF3.6
没有更多内容

