Browse > Article
http://dx.doi.org/10.13089/JKIISC.2018.28.3.643

A Static Analysis Technique for Android Apps Written with Xamarin  

Lim, Kyeong-hwan (Dept. of Computer Science and Engineering, Dankook University)
Kim, Gyu-sik (Dept. of Computer Science and Engineering, Dankook University)
Shim, Jae-woo (Dept. of Computer Science and Engineering, Dankook University)
Cho, Seong-je (Dept. of Computer Science and Engineering, Dankook University)
Abstract
Xamarin is a representative cross-platform development framework that allows developers to write mobile apps in C# for multiple mobile platforms, such as Android, iOS, or Windows Phone. Using Xamarin, mobile app developers can reuse existing C# code and share significant code across multiple platforms, reducing development time and maintenance costs. Meanwhile, malware authors can also use Xamarin to spread malicious apps on more platforms, minimizing the time and cost of malicious app creation. In order to cope with this problem, it is necessary to analyze and detect malware written with Xamarin. However, little studies have been conducted on static analysis methods of the apps written in Xamarin. In this paper, we examine the structure of Android apps written with Xamarin and propose a static analysis technique for the apps. We also demonstrate how to statically reverse-engineer apps that have been transformed using code obfuscation. Because the Android apps written with Xamarin consists of Java bytecode, C# based DLL libraries, and C/C++ based native libraries, we have studied static reverse engineering techniques for these different types of code.
Keywords
Xamarin framework; Android app; Cross-platform; Static analysis; Intermediate Language;
Citations & Related Records
연도 인용수 순위
  • Reference
1 P. Marius, "Considerations Regarding the Cross-Platform Mobile Application Development Process," Academy of Economic Studies. Economy Informatics Vol. 13, no. 1, 2013.
2 S. M. Pontiroli and F. R. Martinez, "The Tao of .NET and PowerShell Malware Analysis," Virus Bulletin Conference, 2015.
3 de4dot, https://github.com/0xd4d/de4dot
4 M. Willocx, J. Vossaert, and V. Naessens, "A quantitative assessment of performance in mobile app development tools," Mobile Services (MS), 2015 IEEE International Conference on. IEEE, 2015.
5 N. Boushehrinejadmoradi, V. Ganapathy, S. Nagarakatte, and L. Iftode, "Testing cross-platform mobile app development frameworks (t)," In Automated Software Engineering (ASE), 2015 30th IEEE/ACM International Conference on IEEE, pp. 441-451, 2015.
6 M. Martinez, and S. Lecomte, "Towards the quality improvement of crossplatform mobile applications," In Mobile Software Engineering and Systems (MOBILESoft), 2017 IEEE/ACM 4th International Conference on IEEE, pp. 184-188, 2017.
7 jadx, https://github.com/skylot/jadx
8 A. Mylonas, S. Dritsas, B. Tsoumas and D. Gritzalis, "On the feasibility of malware attacks in smartphone platforms," International Conference on E-Business and Telecommunications, 2011.
9 A. Mylonas, S. Dritsas, B. Tsoumas and D. Gritzalis, "Smartphone security evaluation The malware attack case," Security and Cryptography (SECRYPT), 2011 Proceedings of the International Conference on. IEEE, 2011.
10 R. Mark. Xamarin mobile application development for Android. Packt Publishing Ltd, 2014.
11 JEB, https://www.pnfsoftware.com/
12 ILspy, https://sourceforge.net/projects/ilspyportable/
13 .NET Reflector, https://www.red-gate.com/products/dotnet-development/reflector/
14 IDA Pro, https://www.hex-rays.com/products/ida/