基于动态入口点修改的Android控制流混淆

Xueyi Yang, Lingchen Zhang, Cunqing Ma, Zongbin Liu, Ping Peng
{"title":"基于动态入口点修改的Android控制流混淆","authors":"Xueyi Yang, Lingchen Zhang, Cunqing Ma, Zongbin Liu, Ping Peng","doi":"10.1109/CSCS.2019.00054","DOIUrl":null,"url":null,"abstract":"With over 85% market share, Android remains the most popular mobile device platform and incurs endless attacks to steal application developers' intellectual property. Code obfuscation techniques have been conventionally used to prevent application reverse engineering or tampering, and to protect intellectual property. However, existing control-flow obfuscation techniques are not sufficiently efficient and complex to resist the growing reverse engineering techniques. This paper presents a new control-flow obfuscation scheme for Android apps at the Dalvik bytecode level. Our proposed scheme goes beyond the common control-flow obfuscation schemes and make it nearly impossible for static analysis to determine the actual program control flows. Firstly, our scheme transforms the original Dalvik bytecode to redirect its control flow transfers. The redirection is implemented by replacing the invoked method of an invocation instruction to another method. Then our scheme dynamically recovers the control transfers in the transformed code to the original control transfer targets. Hence the transformed code produces the same execution results with the original code. The recovery is implemented by dynamically modifying the entry points of the Dalvik methods during app running. Those entry points are maintained by Android Runtime system. Our analysis and evaluation show that the scheme can implement effective obfuscation to hinder reverse engineering and code analysis with reasonable size, execution time, and execution memory overheads.","PeriodicalId":352411,"journal":{"name":"2019 22nd International Conference on Control Systems and Computer Science (CSCS)","volume":"33 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"Android Control Flow Obfuscation Based on Dynamic Entry Points Modification\",\"authors\":\"Xueyi Yang, Lingchen Zhang, Cunqing Ma, Zongbin Liu, Ping Peng\",\"doi\":\"10.1109/CSCS.2019.00054\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"With over 85% market share, Android remains the most popular mobile device platform and incurs endless attacks to steal application developers' intellectual property. Code obfuscation techniques have been conventionally used to prevent application reverse engineering or tampering, and to protect intellectual property. However, existing control-flow obfuscation techniques are not sufficiently efficient and complex to resist the growing reverse engineering techniques. This paper presents a new control-flow obfuscation scheme for Android apps at the Dalvik bytecode level. Our proposed scheme goes beyond the common control-flow obfuscation schemes and make it nearly impossible for static analysis to determine the actual program control flows. Firstly, our scheme transforms the original Dalvik bytecode to redirect its control flow transfers. The redirection is implemented by replacing the invoked method of an invocation instruction to another method. Then our scheme dynamically recovers the control transfers in the transformed code to the original control transfer targets. Hence the transformed code produces the same execution results with the original code. The recovery is implemented by dynamically modifying the entry points of the Dalvik methods during app running. Those entry points are maintained by Android Runtime system. Our analysis and evaluation show that the scheme can implement effective obfuscation to hinder reverse engineering and code analysis with reasonable size, execution time, and execution memory overheads.\",\"PeriodicalId\":352411,\"journal\":{\"name\":\"2019 22nd International Conference on Control Systems and Computer Science (CSCS)\",\"volume\":\"33 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2019-05-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2019 22nd International Conference on Control Systems and Computer Science (CSCS)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/CSCS.2019.00054\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2019 22nd International Conference on Control Systems and Computer Science (CSCS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CSCS.2019.00054","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2

摘要

Android拥有超过85%的市场份额,仍然是最受欢迎的移动设备平台,并不断遭受攻击,窃取应用程序开发者的知识产权。代码混淆技术通常用于防止应用程序逆向工程或篡改,以及保护知识产权。然而,现有的控制流混淆技术不够有效和复杂,无法抵御不断发展的逆向工程技术。本文提出了一种新的Dalvik字节码级别的Android应用程序控制流混淆方案。我们提出的方案超越了常见的控制流混淆方案,使静态分析几乎不可能确定实际的程序控制流。首先,我们的方案将原始Dalvik字节码转换为重定向其控制流传输。重定向是通过将调用指令的被调用方法替换为另一个方法来实现的。然后将转换后的代码中的控制转移动态地恢复到原始的控制转移目标。因此,转换后的代码与原始代码产生相同的执行结果。恢复是通过在应用程序运行期间动态修改Dalvik方法的入口点来实现的。这些入口点由Android运行时系统维护。我们的分析和评估表明,该方案可以在合理的大小、执行时间和执行内存开销的情况下实现有效的混淆,以阻碍逆向工程和代码分析。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Android Control Flow Obfuscation Based on Dynamic Entry Points Modification
With over 85% market share, Android remains the most popular mobile device platform and incurs endless attacks to steal application developers' intellectual property. Code obfuscation techniques have been conventionally used to prevent application reverse engineering or tampering, and to protect intellectual property. However, existing control-flow obfuscation techniques are not sufficiently efficient and complex to resist the growing reverse engineering techniques. This paper presents a new control-flow obfuscation scheme for Android apps at the Dalvik bytecode level. Our proposed scheme goes beyond the common control-flow obfuscation schemes and make it nearly impossible for static analysis to determine the actual program control flows. Firstly, our scheme transforms the original Dalvik bytecode to redirect its control flow transfers. The redirection is implemented by replacing the invoked method of an invocation instruction to another method. Then our scheme dynamically recovers the control transfers in the transformed code to the original control transfer targets. Hence the transformed code produces the same execution results with the original code. The recovery is implemented by dynamically modifying the entry points of the Dalvik methods during app running. Those entry points are maintained by Android Runtime system. Our analysis and evaluation show that the scheme can implement effective obfuscation to hinder reverse engineering and code analysis with reasonable size, execution time, and execution memory overheads.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信