您的位置:山东大学 -> 科技期刊社 -> 《山东大学学报(理学版)》

山东大学学报(理学版) ›› 2017, Vol. 52 ›› Issue (3): 44-50.doi: 10.6040/j.issn.1671-9352.2.2016.120

• • 上一篇    下一篇

基于smali代码混淆的Android应用保护方法Symbol`@@

刘方圆,孟宪佳*,汤战勇,房鼎益,龚晓庆   

  1. 西北大学信息科学与技术学院, 陕西 西安 710127
  • 收稿日期:2016-08-18 出版日期:2017-03-20 发布日期:2017-03-20
  • 通讯作者: 孟宪佳(1985— ),男,博士,研究方向为网络与信息安全. E-mail:xianjiam@nwu.edu.cn E-mail:liu_nisl@stumail.nwu.edu.cn
  • 作者简介:刘方圆(1990— ),女,硕士研究生,研究方向为Android应用的安全与保护. E-mail:liu_nisl@stumail.nwu.edu.cn
  • 基金资助:
    国家自然科学基金资助项目(61572402,61373177);陕西省国际科技合作与交流计划项目(2013KW01-02,2015KW-003,2016KW-034);中国博士后科学基金资助项目(2012M521797)

Android application protection based on smali code obfuscation

LIU Fang-yuan, MENG Xian-jia*, TANG Zhan-yong, FANG Ding-yi, GONG Xiao-qing   

  1. Department of Computer Science and Technology, Northwest University, Xian 710127, Shaanxi, China
  • Received:2016-08-18 Online:2017-03-20 Published:2017-03-20

摘要: 提出了一种基于smali代码混淆的Android应用保护方法,其基本思想是利用Dalvik VM基于寄存器这一特点,对寄存器中值的存取进行数据流混淆,并结合不透明谓词技术对其控制流进行混淆,最终目的是让攻击者在反编译时出现异常。对该混淆方法从强度、弹性和开销3个指标进行了技术评价。实验结果表明,该混淆方法能够抵抗现在广泛使用的逆向工具jeb、dex2jar、dexdump和IDA pro的逆向分析。

关键词: 逆向工程, 反编译, smali代码混淆

Abstract: An Android application protection method that is based on code obfuscation of smali code is proposed. The basic idea is that confuses the data flow for the access procedure of register data, and combines opaque predicates technology to confuse the control flow, thus when the attacker reversely analyze the application, the decompiling results will be wrong. The obfuscation method is evaluated from strength, resilience and overhead. The experiment results show that ourcan resist the reverse analysis of current popular reverse tools, such as jeb, dex2jar, dexdump and IDA pro.

Key words: smali code obfuscation, decompiling, reverse engineering

中图分类号: 

  • TP391
[1] 飞向网. 2016年Q1中国Android市场份额[EB/OL].[2016]. http://www.ebrun.com/20160419/172891.shtml.
[2] 中国新闻网. Fake payment APP[EB/OL].[2015]. http://www.thethirdmedia.com/Article/201511/show363-034c77p1. html.
[3] JESUSFREKEJ. smali/backsmali: An assembler/ disassembler for Android's dex format[EB/OL]. [2011]. http://code.google. com /p/samli.
[4] XU J, LI S, ZHANG T. Security Analysis and Protection Based on Smali Injection for Android Applications[M] //Algorithms and Architectures for Parallel Processing. Berlin: Springer International Publishing, 2014:577-586.
[5] BARAK B, GOLDREICH O, IMOAGLIAZZO R, et al. On the(im)possibility of obfuscating programs[C] //Advances in cryptology—CRYPTO 2001. Springer Berlin Heidelberg, 2001:1-18.
[6] 郑琪,徐爱国. 面向Android移动应用的控制流混淆[EB/OL].中国科技论文在线. 2014. http://www.paper.edu.cn/releasepaper/content/201412-783. ZHENG Qi, XU Aiguo. The control flow of confusion for Android mobile application[EB/OL]. Chinas scientific and technical papers online. 2014. http://www.paper.edu.cn/releasepaper/content/201412-783.
[7] 刘金梁. Android平台软件安全防护技术的研究与实现[D]. 北京:北京邮电大学, 2015. LIU Jinliang. The research of the software security protection technology and implementation for Android platform[D]. Beijing:Beijing University of Posts and Telecommunications, 2015.
[8] 郑琪. 面向Android智能手机终端应用程序的代码混淆算法研究与实现[D]. 北京:北京邮电大学,2015. ZHENG Qi. Research and implementation of code obfuscation algorithms for applications of android smartphone terminal[D]. Beijing:Beijing University of Posts and Telecommunications, 2015.
[9] Eric P.F. ProGuard[EB/OL].[2002].http://proguard.sourceforge.net/.
[10] SHU J, LI J, ZHANG Y, et al. Android app protection via interpretation obfuscation[C] // Dependable, Autonomic and Secure Computing(DASC), 2014 IEEE 12th International Conference on. IEEE, 2014:63-68.
[11] 汪德嘉, 宋超, 刘家郡. 一种Android系统应用的深度代码混淆方法[P].中国专利:103544414.A,2014. WANG Dejia, SONG Chao, LIU Jiajun. A method of the depth of the Android application code confusion[P]. CN: 103544414.A, 2014.
[12] PREDA M D, GIACOBAZZI R. Semantic-Based Code Obfuscation by Abstract Interpretation[J]. Lecture Notes in Computer Science, 2005, 17(17):1325-1336.
[13] YANG Y, FAN W, HUANG W, et al. The research of multi-point function opaque predicates obfuscation algorithm[J]. Applied Mathematics & Information Sciences, 2014, 8(6):3063-3070.
[14] Romin Irani. Android Application Class[EB/OL].[2010]. http://www.xoriant.com/blog/mobile-application-development/ android-application-class.html
[15] WIKIPEDIA. Java Native Interface[EB/OL].[2016]. https://en.wikipedia.org/wiki/Java_Native_Interface.
[16] COLLERG C, THOMBORSON C, LOW D. A taxonomy of obfuscating transformations[D]. New Zealand, Auckland: The University of Auckland, 1997.
[1] 龚双双,陈钰枫,徐金安,张玉洁. 基于网络文本的汉语多词表达抽取方法[J]. 山东大学学报(理学版), 2018, 53(9): 40-48.
[2] 余传明,左宇恒,郭亚静,安璐. 基于复合主题演化模型的作者研究兴趣动态发现[J]. 山东大学学报(理学版), 2018, 53(9): 23-34.
[3] 严倩,王礼敏,李寿山,周国栋. 结合新闻和评论文本的读者情绪分类方法[J]. 山东大学学报(理学版), 2018, 53(9): 35-39.
[4] 原伟,唐亮,易绵竹. 基于本体的俄文新闻话题检测设计与实现[J]. 山东大学学报(理学版), 2018, 53(9): 49-54.
[5] 廖祥文,张凌鹰,魏晶晶,桂林,程学旗,陈国龙. 融合时间特征的社交媒介用户影响力分析[J]. 山东大学学报(理学版), 2018, 53(3): 1-12.
[6] 余传明,冯博琳,田鑫,安璐. 基于深度表示学习的多语言文本情感分析[J]. 山东大学学报(理学版), 2018, 53(3): 13-23.
[7] 张军,李竞飞,张瑞,阮兴茂,张烁. 基于网络有效阻抗的社区发现算法[J]. 山东大学学报(理学版), 2018, 53(3): 24-29.
[8] 庞博,刘远超. 融合pointwise及深度学习方法的篇章排序[J]. 山东大学学报(理学版), 2018, 53(3): 30-35.
[9] 陈鑫,薛云,卢昕,李万理,赵洪雅,胡晓晖. 基于保序子矩阵和频繁序列模式挖掘的文本情感特征提取方法[J]. 山东大学学报(理学版), 2018, 53(3): 36-45.
[10] 王彤,马延周,易绵竹. 基于DTW的俄语短指令语音识别[J]. 山东大学学报(理学版), 2017, 52(11): 29-36.
[11] 张晓东,董唯光,汤旻安,郭俊锋,梁金平. 压缩感知中基于广义Jaccard系数的gOMP重构算法[J]. 山东大学学报(理学版), 2017, 52(11): 23-28.
[12] 孙建东,顾秀森,李彦,徐蔚然. 基于COAE2016数据集的中文实体关系抽取算法研究[J]. 山东大学学报(理学版), 2017, 52(9): 7-12.
[13] 王凯,洪宇,邱盈盈,王剑,姚建民,周国栋. 一种查询意图边界检测方法研究[J]. 山东大学学报(理学版), 2017, 52(9): 13-18.
[14] 张帆,罗成,刘奕群,张敏,马少平. 异质搜索环境下的用户偏好性预测方法研究[J]. 山东大学学报(理学版), 2017, 52(9): 26-34.
[15] 杨艳,徐冰,杨沐昀,赵晶晶. 一种基于联合深度学习模型的情感分类方法[J]. 山东大学学报(理学版), 2017, 52(9): 19-25.
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
No Suggested Reading articles found!