Font Size: a A A

The Dalvik Obfuscation Technology For Android Applications

Posted on:2019-03-01Degree:MasterType:Thesis
Country:ChinaCandidate:L WuFull Text:PDF
GTID:2348330563953995Subject:Computer application technology
Abstract/Summary:PDF Full Text Request
As a key player in the development of mobile Internet,mobile applications are adopted by many organizations and industries.Among them,Android applications are very popular and bring a lot of convenience.But unfortuanately,the use of Android applications also bring many security problems,such as software vulnerabilities,application of piracy,malware and so on which also threat the traditional PC.So researchers have take great time and energy on Android applications protection techniques.Considering the stability of programs,some manufacturers refused to use shelling to protect applications.As an alternative,code obfuscation techniques come to help protect software by changing code or data and reducing its readability.Google provides Proguard,an obfuscation tool for source code,but it can only act on identifiers,and attackers can use reverse tools to rename identifiers to help understand the code.Therefore,researchers proposed an obfuscation technique which will analysis Dalvik bytecode with APK only and encrypt the constant strings and adjust the control flow.Based on existing research,this thesis deeply analyzes the Android runtime mechanism and Dalvik bytecode characteristics,and proposes a multidimensional Dalvik bytecode obfuscation method.The method is a combination of layout obfuscation,control flow obfuscation and string obfuscation,separately based on structure recognition,function partition and byte storage.The layout obfuscation can rename the key identifier and prevent it from reverse engineering based on code structure.The control flow obfuscation for function partition can divide the function based on the CFG(control flow graph).It carries out the control flow jump and avoid the treats from guessing attacks.Because it can resolve the problem of CFG obfuscation which limited inside the functions.The string obfuscation for byte storage is mainly to hide the key string in the code.This method can hinder the crack(specially in virtual machine)by reflecting and modifying the key in the native code.This thesis put forward the application protect method with these three dimensions to counter reverse engineering.Relatively,we implementation many features to support this work,including bytecode obfuscation under Android runtime mechanism,component identifiers extracting(for layout obfuscation),solution to solve error component classes,solution to solve error method identifiers,solution to solve conflicts of register type(in CFG search and type inference).Finally,this thesis implements a prototype system according to the proposed method.In testing,the functionality,security and performance overhead of the system are analyzed and evaluated using multiple sets of sample files.The experimental results show that the obfuscation system is feasible and effective for Android application protection.
Keywords/Search Tags:Android software security, Dalvik bytecode, code obfuscation, function partition
PDF Full Text Request
Related items