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

山东大学学报(理学版) ›› 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]. 《山东大学学报(理学版)》, 2026, 61(5): 55-64.
[2] 孙迪,郭义童,任超,范海峰,张传雷. 基于多尺度特征融合与改进注意力的锈蚀螺栓螺帽检测[J]. 《山东大学学报(理学版)》, 2026, 61(1): 1-14.
[3] 仲尚,马丽,刘文哲,李雨豪. 融合多尺度注意力机制和改进特征融合的轻量化水面小目标检测模型[J]. 《山东大学学报(理学版)》, 2026, 61(1): 15-25.
[4] 余雷,孙懿,华金铭,李腊全. 基于深度神经网络的重症监护室脓毒症患者死亡风险预测模型分析[J]. 《山东大学学报(理学版)》, 2026, 61(1): 26-35.
[5] 王军涛,黄强. 基于一般重叠函数的模糊数学形态学边缘检测方法[J]. 《山东大学学报(理学版)》, 2026, 61(1): 36-48.
[6] 李文焱,李丽红,王洪欣. 基于知识度量的模糊粗糙c-均值算法[J]. 《山东大学学报(理学版)》, 2026, 61(1): 49-64.
[7] 孙清,叶军,曾广财,宋苏洋,汪一心. 结合蝙蝠算法和紧密度改进的三支K-means算法[J]. 《山东大学学报(理学版)》, 2026, 61(1): 65-75.
[8] 邹峥,雷雨晟,刘石坚,王定一,邱学炜,史雯雯,周校通. 白蚁分区式微方向感知的精确形态识别[J]. 《山东大学学报(理学版)》, 2026, 61(1): 76-84.
[9] 梁霞,郭洁. 基于在线评论的线上教学平台选择方法[J]. 《山东大学学报(理学版)》, 2024, 59(9): 108-118.
[10] 黎超,廖薇. 基于医疗知识驱动的中文疾病文本分类模型[J]. 《山东大学学报(理学版)》, 2024, 59(7): 122-130.
[11] 纪杰,孙承杰,单丽莉,尚伯乐,林磊. 基于提示学习的电信网络诈骗案件分类方法[J]. 《山东大学学报(理学版)》, 2024, 59(7): 113-121.
[12] 罗奇,苟刚. 基于聚类和群组归一化的多模态对话情绪识别[J]. 《山东大学学报(理学版)》, 2024, 59(7): 105-112.
[13] 赵峰叙,王健,林原,林鸿飞. 面向排序学习的概率分布优化模型[J]. 《山东大学学报(理学版)》, 2024, 59(7): 95-104.
[14] 黄兴宇,赵明宇,吕子钰. 面向图神经网络表征学习的类别知识探针[J]. 《山东大学学报(理学版)》, 2024, 59(7): 85-94.
[15] 桂梁,徐遥,何世柱,张元哲,刘康,赵军. 基于动态邻居选择的知识图谱事实错误检测方法[J]. 《山东大学学报(理学版)》, 2024, 59(7): 76-84.
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
No Suggested Reading articles found!