1 / 29

Android Applications Reverse Engineering

Amel LIMAM Wafa BEN ALI Olivier MARTY Sahar SOULAIH Benjamin BRUSA Imededdine HOSNI. Supervisors Jean-Rémy FALLERI Xavier BLANC. Android Applications Reverse Engineering. AndroCheck. Outline. Overview. 1. Specifications. 2. Tools. 3. Application’s architecture. 4.

bracha
Download Presentation

Android Applications Reverse Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Amel LIMAM • Wafa BEN ALI • Olivier MARTY • Sahar SOULAIH • Benjamin BRUSA • Imededdine HOSNI Supervisors Jean-Rémy FALLERI Xavier BLANC Android Applications Reverse Engineering AndroCheck

  2. Outline Overview 1 Specifications 2 Tools 3 Application’s architecture 4 Implementation 5 Results 6 Project management 7

  3. Overview • Increasingnumber of applications available in AndroidMarkets • There is no assumption about the developer’sprogrammingskills • Android applications contain more and more differentartifacts and coherenceisneeded

  4. Specifications Main objectives • Static code analyzer to check requirements • Modular software to easeevolution and addingfeatures • Software compatible with Eclipse environment and ADT

  5. Android Platform

  6. Android Platform Generatedat compilation R.java Java Resources XML descriptors

  7. Android Platform myActivity.java setContentView(R.layout.myLayout); ObjectTypeobj = (ObjectType)findViewById(R.id.ObjectId) myLayout.xml <ObjectTypeandroid:id="@+id/ObjectId"> </ObjectType>

  8. Specifications • First requirement • A Java object instantiated in the main code must be declared in its corresponding XML layout. • Second requirement • The cast type of a Java object at its instantiation must be compatible with the type of the object declared in the XML layout. • Thirdrequirement • Any useless XML layout must be reported to the developer

  9. Eclipse Modeling Framework Modeling framework and code generation facility • To develop and manage the whole application life cycle • To focus on the model. • The model itself is described in a meta-model.

  10. Eclipse Modeling Framework Metamodeling ? • The construction of a collection of concepts within a certain domain • Meta-Model • Another abstraction • Model structure • Model • An abstraction of phenomena in the real world Application

  11. Typical EMF usage scenario UML Java code XML Schema Ecore Model (.ecore) Gen Model (.genmodel) Import …

  12. Application’s architecture

  13. Parsers

  14. Java Parser • JDT (Java DevelopmentTooling) parserprovides APIs to manipulate Java source code • Tree Structure based API : AST (Abstract SyntaxTree) • Use an AST parser • Visit a specificelement Exemple : method invocation, Type, function, class … The AST representationdefines an API to modify, create, read and delete source code. • Example publicbooleanvisit(MethodInvocationmethod){ if(method.getName().getIdentifier().equals("findViewById")){ Processing1(); } if(method.getName().getIdentifier().equals("setContentView")){ Processing2(); } returntrue; }

  15. XML Parser • DOM (Document Object Model ) parser - Tree Structure based API The Dom parser implements the DOM API and it creates a DOM tree in memory for a XML document • When to use DOM parser • Manipulate the document • Traverse the document back and forth • Small XML files • Drawbacks of DOM parser Consumes lot of memory

  16. XML Parser XML Document Document Object Tree

  17. Model and properties check

  18. Applications’ Metamodel

  19. Model instance and properties check • XML Elements • Java Elements • Using androidElementsFactory in order to create model elements. • Instantiate EMF model with java and XML elements. • Comparison between java and XML elements properties. • Identifier • Type • File • Id • Cast • File

  20. Application’s architecture

  21. Plugin’s Architecture Java code describing the interface describing the plug-in and its dependencies

  22. Plugin’s Architecture Point Extension Extension Eclipse Platform User Interface Plugin A Workbench JDT Java Development Tools JFace SWT Plugin B PDE Plugin Development Environment Core Workspace Runtime

  23. Creating a Plugin • Create a new plug-in • Create a plug-in project • Define a plugin.xml file: contains a declaration of the plug-in id, name, pre-requisites,... • XML code added to the plugin.xml file • Id: a unique name that will be used to identify the view • name : a translatable name that will be used in the UI for the view • Icon: a relative name of the icon that will be associated with the view • Class: a fully qualified name of the class that implements • Add a View Extension to the plugin.xml file • Define a View Class for the Extension within the Plug-in graphical elements of the interface

  24. Update site Feature a list of plugins and other features which can be understood as a logical separate unit Update Site • Contains all required components for the plugin to funtion. • supports installation over the web via an installation url to avoid a separate download. feature.xml file • maintain the properties • Modify feature name • Add new plugins Plugins directory feature.xml file Features directory update site components

  25. GUI

  26. Demo

  27. Wiki centralise project information http://projets9androidapps.wiki-site.com/index.php/Accueil SVN Problems List Listing bugs and problems with date of detection, gravity and status • Handle collaborative work on project’s source code Google documents • Requirements • Gantt diagram • Division of labour • Short and frequent meetings • Roadmap • Sprints of 1 to 2 weeks • Objectifs’ evaluation Project Management • Tools • Organizational method

  28. Gantt

  29. Thankyou Do You Have Any Questions ?

More Related