• English
    • français
    • Deutsch
    • español
    • português (Brasil)
    • Bahasa Indonesia
    • русский
    • العربية
    • 中文
  • English 
    • English
    • français
    • Deutsch
    • español
    • português (Brasil)
    • Bahasa Indonesia
    • русский
    • العربية
    • 中文
  • Login
View Item 
  •   Home
  • OAI Data Pool
  • OAI Harvested Content
  • View Item
  •   Home
  • OAI Data Pool
  • OAI Harvested Content
  • View Item
JavaScript is disabled for your browser. Some features of this site may not work without it.

Browse

All of the LibraryCommunitiesPublication DateTitlesSubjectsAuthorsThis CollectionPublication DateTitlesSubjectsAuthorsProfilesView

My Account

LoginRegister

The Library

AboutNew SubmissionSubmission GuideSearch GuideRepository PolicyContact

Methods for Improving the Quality of Software Obfuscation for Android Applications

  • CSV
  • RefMan
  • EndNote
  • BibTex
  • RefWorks
Author(s)
Zhuang, Yan
Keywords
IT Security
Software Quality
Software Security
ddc:000
Department Informatik

Full record
Show full item record
URI
http://hdl.handle.net/20.500.12424/1632955
Online Access
https://opus4.kobv.de/opus4-fau/frontdoor/index/index/docId/8817
http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:bvb:29-opus4-88179
https://opus4.kobv.de/opus4-fau/files/8817/YanZhuangDissertation.pdf
Abstract
Obfuscation technique provides the semantically identical but syntactically distinguished transformation, so that to obscure the source code to hide the critical information while preserving the functionality. In that way software authors are able to prevail the resources e.g. computing power, time, toolset, detection algorithms, or experience etc., the revere engineer could afford. Because the Android bytecode is practically easier to decompile, and therefore to reverse engineer, than native machine code, obfuscation is a prominent criteria for Android software copyright protection. However, due to the limited computing resources of the mobile platform, different degree of obfuscation will lead to different level of performance penalty, which might not be tolerable for the end-user.
 In this thesis, we optimize the Android obfuscation transformation process that brings in as much "difficulty" as possible meanwhile constrains the performance loss to a tolerable level. We implement software complexity metrics to automatically and quantitatively evaluate the "difficulty" of the obfuscation results. We firstly investigate the properties of the 7 obfuscation methods from the obfuscation engine Pandora. We evaluate their obfuscation effect with 9 different software complexity metrics, when iteratively apply each obfuscation method multiple times to more than 240 Android applications. We show from the result pictures that the obfuscation methods can exhibit two types of properties: monotonicity or idempotency. For most of the monotonicity obfuscation methods, their variants of the complexity values are constant and stable, which are the foundation for our statistic based algorithm to optimize the complexity results.
 To reach the desired complexity, we then design and implement our obfuscation framework which can select the optimum obfuscation techniques for the target complexity and apply them to Android applications, while measure the performance cost. The optimization process in our framework is controlled by the Obfuscation Management Layer, which implements the Naïve Bayesian Classifier algorithm to select the obfuscation techniques.
 Our obfuscation framework can transform the result APKs to arbitrary target complexity. Meanwhile, the unpredicted performance loss will be caused by the obfuscation. We compare the discrepancies of CPU cycles of original APKs to their obfuscated versions by dynamic testing, and define them as the performance penalty generated by obfuscation. We evaluate the performance penalty of different obfuscation methods. We find out that some of the obfuscation methods consume significantly more performance at the same time have minimum impact on complexities.
 Finally, we statistically measure performance losses of different methods, and calculate them as a special metric in the Naïve Bayesian Classifier algorithm. We therefore can optimize the performance cost of the obfuscation to target a tolerable level. Meanwhile, to maximize the code coverage, we develop an automatic testing tool which are used to generate the testing cases.
Obfuskierungstechniken liefern eine semantisch identische aber syntaktisch unterschiedliche Transformation, in welcher der Qüllcode versteckt wird um kritischen Informationen unter Beibehaltung der Funktionalität zu verbergen. Auf diese Weise können Software-Entwickler mehr Ressourcen von Reverse-Ingenieuren einfordern, z.B. Rechenleistung, Zeit, Toolset, Erkennungsalgorithmen oder Erfahrung etc. Da der Android-Bytecode praktisch relativ einfach zu dekompilieren und damit zu Reverse Engineeringen ist, im Vergleich zu nativen Maschinencode, bietet Obfuskierung ist eine herausragende Möglichkeit zur Umsetzung von Urheberrechtsschutz bei Android-Software. Aufgrund der begrenzten Rechenressourcen mobiler Plattformen wird jedoch ein unterschiedlicher Grad an Obfuskierung zu einem unterschiedlichen Leistungsniveau führen, was möglicherweise für den Endbenutzer nicht tolerierbar ist.
 In dieser Arbeit optimieren wir den Android-Obfuskierung-Transformationsprozess, der die „Schwierigkeit“ erhöht, während er den Leistungsverlust auf einem tolerierbaren Niveau hält. Wir implementieren Softwarekomplexitätsmetriken, um die "Schwierigkeit" der Obfuskationsergebnisse automatisch und quantitativ zu bewerten. Zunächst untersuchen wir die Eigenschaften der 7 Obfuskationsmethoden der Obfuskierungsengine Pandora. Wir bewerten ihre Obfuskierungswirkung mit 9 verschiedenen Softwarekomplexitätsmetriken, jeweils als iterative Anwendung der Obfuskierungsmethode mehrfach auf über 240 Android-Anwendungen. Aus den Ergebnisbildern leiten wir ab, dass die Obfuskierungsmethoden zwei Arten von Eigenschaften aufweisen können: Monotonie oder Idostose. Für die meisten der Monotonie-Obfuskationsmethoden sind die Varianten der Komplexitätswerte konstant und stabil, was die Grundlage für unseren Statistik-basierten Algorithmus zur Optimierung der Komplexitätsergebnisse bildet.
 Um die gewünschte Komplexität zu erreichen, konzipieren und implementieren wir dann unser Obfuskierungsframework, das die optimalen Obfuskierungstechniken für die Zielkomplexität auswählen und auf Android-Anwendungen anwenden kann, während die Performanzkosten gemessen werden. Der Optimierungsprozess in unserem Framework wird durch die Obfuskierungsverwaltungsschicht (Obfuscation Management Layer) gesteürt, welche den Naïve Bayesian Classifier implementiert, um die Obfuskationstechniken auszuwählen.
 Unser Obfuskierungsframework kann die Ergebnis-APKs in eine beliebige Zielkomplexität transformieren. Dabei wird ein unvorhergesehener Leistungsverlust durch die Obfuskierung verursacht. Wir vergleichen die Diskrepanzen von CPU-Zyklen der ursprünglichen APKs mit ihren obfuskierten Versionen durch dynamische Tests und definieren sie als Performanzstrafe, welche durch die Obfuskierung ensteht. Wir werten die Performanzstrafe für verschiedenen Obfuskierungsmethoden aus. Unser Ergebnis zeigt, dass einige der Obfuskierungsmethoden deutlich mehr Leistung kosten und zur gleichen Zeit nur minimale Auswirkungen auf die Komplexität haben.
 Schließlich analysieren wir die Leistungsverluste verschiedener Methoden statistisch und berechnen sie als spezielle Metrik der Naïve-Bayessche Klassifikation. Wir können daher den Leistungsverbrauch der Obfuskierung optimieren, um ein tolerierbares Niveau zu erreichen. Um die Code-Abdeckung zu maximieren, entwickeln wir gleichzeitig ein automatisches Test-Tool, dass zur Generierung von Testfälle verwendet werden kann.
Date
2017
Type
doctoralthesis
Identifier
oai:ub.uni-erlangen.de-opus:8817
https://opus4.kobv.de/opus4-fau/frontdoor/index/index/docId/8817
urn:nbn:de:bvb:29-opus4-88179
http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:bvb:29-opus4-88179
https://opus4.kobv.de/opus4-fau/files/8817/YanZhuangDissertation.pdf
Copyright/License
https://creativecommons.org/licenses/by-nc-nd/3.0/de/deed.de
Collections
OAI Harvested Content

entitlement

 
DSpace software (copyright © 2002 - 2021)  DuraSpace
Quick Guide | Contact Us
Open Repository is a service operated by 
Atmire NV
 

Export search results

The export option will allow you to export the current search results of the entered query to a file. Different formats are available for download. To export the items, click on the button corresponding with the preferred download format.

By default, clicking on the export buttons will result in a download of the allowed maximum amount of items.

To select a subset of the search results, click "Selective Export" button and make a selection of the items you want to export. The amount of items that can be exported at once is similarly restricted as the full export.

After making a selection, click one of the export format buttons. The amount of items that will be exported is indicated in the bubble next to export format.