A Comparison of Android Reverse Engineering Tools via Program Behaviors Validation Based on Intermediate Languages Transformation

被引:23
作者
Arnatovi, Yauhen Leanidavich [1 ]
Wang, Lipo [1 ]
Ngoc Minh Ngo [2 ]
Soh, Charlie [1 ]
机构
[1] Nanyang Technol Univ, Sch Elect & Elect Engn, Singapore 639798, Singapore
[2] Arizona State Univ, Global Outreach & Extended Educ, Ho Chi Minh City, Vietnam
关键词
Event-based testing; intermediate languages; program behaviours; reliability; reverse engineering; statistics;
D O I
10.1109/ACCESS.2018.2808340
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
In Android, performing a program analysis directly on an executable source is usually inconvenient. Therefore, a reverse engineering technique has been adapted to enable a user to perform a program analysis on a textual form of the executable source which is represented by an intermediate language (IL). For Android, Smali, Jasmin, and Jimple ILs have been introduced to represent applications executable Dalvik bytecode in a human-readable form. To use these ILs, we downloaded three of the most popular Android reversing tools, including Apktool, dex2jar, and Soot, which perform transformation of the executable source into Smali, Jasmin, and Jimple ILs, respectively. However, the main concern here is that inaccurate transformation of the executable source may severely degrade the program analysis performance, and obscure the results. To the best of our knowledge, it is still unknown which tool most accurately performs a transformation of the executable source so that the re-assembled Android applications can be executed, and their original behaviors remain intact. Therefore, in this paper, we conduct an experiment to identify the tool which most accurately performs the transformation. We designed a statistical event-based comparative scheme, and conducted a comprehensive empirical study on a set of 1,300 Android applications. Using the designed scheme, we compare Apktool, dex2jar, and Soot via random-event-based and statistical tests to determine the tool which allows the re-assembled applications to be executed, and evaluate how closely they preserve their original behaviors. Our experimental results show that Apktool, using Smali IL, perform the most accurate transformation of the executable source since the applications, which are assembled from Smali, exhibit their behaviours closest to the original ones.
引用
收藏
页码:12382 / 12394
页数:13
相关论文
共 50 条
[1]   A comparison of reverse engineering tools based on design pattern decomposition [J].
Arcelli, F ;
Masiero, S ;
Raibulet, C ;
Tisato, F .
2005 AUSTRALIAN SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2005, :262-269
[2]   Evaluating architectural extractors [J].
Armstrong, MN ;
Trudeau, C .
FIFTH WORKING CONFERENCE ON REVERSE ENGINEERING, PROCEEDINGS, 1998, :30-39
[3]  
Arnatovich Y., 2014, SEKE, P205
[4]  
Batyuk L., 2011, 2011 6th International Conference on Malicious and Unwanted Software, P66, DOI 10.1109/MALWARE.2011.6112328
[5]   A comparison of four reverse engineering tools [J].
Bellay, B ;
Gall, H .
PROCEEDINGS OF THE FOURTH WORKING CONFERENCE ON REVERSE ENGINEERING, 1997, :2-11
[6]  
Benoit K., 2011, LINEAR REGRESSION MO
[7]  
Bornstein Dan., 2008, Google I/O Developer Conference, V23, P17
[8]   REVERSE ENGINEERING AND DESIGN RECOVERY - A TAXONOMY [J].
CHIKOFSKY, EJ ;
CROSS, JH .
IEEE SOFTWARE, 1990, 7 (01) :13-17
[9]   The Challenge of Cross-Language Interoperability [J].
Chisnall, David .
COMMUNICATIONS OF THE ACM, 2013, 56 (12) :50-56
[10]   Automated Test Input Generation for Android: Are We There Yet? [J].
Choudhary, Shauvik Roy ;
Gorla, Alessandra ;
Orso, Alessandro .
2015 30TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2015, :429-440