Font Size: a A A

The Android Software Protection Research Based On Dynamic Loading

Posted on:2015-05-30Degree:MasterType:Thesis
Country:ChinaCandidate:Y Q SuFull Text:PDF
GTID:2308330464964682Subject:Electronics and Communications Engineering
Abstract/Summary:PDF Full Text Request
In recent years, The development of Android is significantly rapid in China. Not only its rich application but also its excellent performance of Android that attract users. With the popularity of Android OS, there are occur many excellent application software. However, with the wide use of application, the problem of software piracy is rampant in Android platform. The source code of a lot of popular applications has been stolen. Through injecting Trojans、viruses、ads into these application software,Hackers make plenty of money. This kind of illegal behavior seriously harmed the benefits of developers, leading to leak of application software code, plagiarism of creativity, damage of finical benefits, even causing decline of users’ experience of the application. This paper focuses on the security of Android application code. To prevent improper use of application software source code, the main content of our work are listed as follows:(1)The dynamic loading mechanism has been studied in Android. Like other Java virtual machine, Dalvik virtual machine needs to load corresponding class into memory when running the program. And in standard Java virtual machine, class loading can be read from the class file, as well as other forms of binary stream. Therefore, we often use this principle to manually load class when the program is running, so as to achieve the goal of dynamic loading execution code. On the process of APP development, the key code is packaged by dx tool, and then dynamic loaded at run time, achieving the goal of code hidden.(2)Android NDK(native development kit) has been studied. By using NDK technology, Android app can be wrote in C/C + + language. The advantages of using NDK are as follow.Firstly, Realizing the protection of code. The apk code of Java layer is easy to be decompiled while the disassembly of C/C + + library is difficult. Secondly,It can conveniently use the existing open source libraries. Most of the existing open source libraries are written in C/C + + code. Thirdly, Improving the execution efficiency of the program. The high performance application logic is required to use C language to develop, so using NDK can improve the execution efficiency of the application. Fourthly,It is easy to transplant. Written in C/C + + library can be conveniently used again in other embeddedplatforms.(3)AES(Advanced Encryption Standard) encryption has been studied. AES Encryption algorithm, also called Rijndael Encryption method, as a kind of block Encryption Standard is adopted by the U.S. federal government. AES algorithm is based on permutation and replacement operation. Permutation is to arrange the data and the replacement is that a data unit is replaced by another one. For code required to be protected, we use AES to encrypt the code, then at the time of dynamic loading to decrypt it, restoring the real code to be loaded.
Keywords/Search Tags:Android, NDK, Software protection
PDF Full Text Request
Related items