Ingenieria Reversa Android

Páginas: 8 (1790 palabras) Publicado: 27 de octubre de 2014
INGENIERÍA INVERSA EN APLICACIONES (APK) DE ANDROID IIDALVIK Y LOS OPCODES
Como muchos saben Android está basado en Linux y de forma nativa el lenguaje oficial para desarrollar aplicaciones es Java. Esto porque se supone que implementa una plataforma que hace de máquina virtual, aunque no precisamente como la máquina virtual de Java (JVM) si no una modificada a la que llamaron Dalvik VirtualMachinecreada por Dan Bornstein con la ayuda de algunos ingenieros de Google.
Dicho esto se puede definir que el código generado para las aplicaciones Android no es exactamente “Java Bytecode”, por eso los ejecutables para Android no contienen ficheros .class si no .dex que significa Dalvik Executable. De igual forma estos ficheros .dex se pueden “decompilar” y lo que veremos posteriormente seráun lenguaje de bajo nivel (Dalvik Bytecode).
Aunque como tal con algunas aplicaciones específicas podemos ver en un lenguaje de alto nivel estos códigos (aplicaciones como Dex2Jar posteriormente decompilando con JD-GUI). Algunos enlaces interesantes sobre Dalvik y los OPCodes:http://www.dalvikvm.com/http://pallergabor.uw.hu/androidblog/dalvik_opcodes.htmlhttp://developer.android.com/reference/dalvik/bytecode/Opcodes.htmlHERRAMIENTAS A UTILIZAR Y PREPARACIÓN DEL ENTORNO
Para la preparación del entorno tendremos en cuenta todo lo necesario para empezar casi “desde cero”, los requisitos como siempre son saber la lógica de un lenguaje de programación (mejor si es Java) y bueno, lo demás se explicará poco a poco.
Empecemos:
Como trabajaremos con Android necesitaremos usar la plataformaJava, ojo, no basta con el entorno de ejecución (JRE) necesitaremos todas las herramientas para desarrolladores (JDK – Java Development Kit) y un IDE cualquiera, puede ser Eclipse. http://www.oracle.com/technetwork/java/javase/downloads/index.htmlTambién necesitaremos las herramientas de desarrollo de Android o SDK, en el portal oficial hay una guía de instalaciónhttp://developer.android.com/sdk/installing.html también debemos configurar un emulador o el AVD, que nos permitirá ejecutar una “máquina virtual” de Android en nuestros ordenadores (ver aquíhttp://developer.android.com/sdk/adding-components.html).
Smali/Baksmali: se trata de un ensamblador/desemsamblador de ficheros apk que nos servirá para generar los fuentes en lenguaje de bajo nivel (aunque como tal no lo usaremos en estaguía). Se puede descargar de aquí:http://code.google.com/p/smali/APKTool: Esta herramienta sustituirá el Smali/Baksmali ya que los integra dentro de su paquete. Como su nombre lo indica es un kit de herramientas para trabajar con ficheros APK. http://code.google.com/p/android-apktool/ con el generaremos el código de bajo nivel y luego recompilaremos.
Testsign.jar: Es una herramienta de tercerosdesarrollada para “firmar” o generar certificados aleatorios para indicarle al sistema que el fichero que hemos modificado se trata de una aplicación Android. Se descarga de aquíhttp://code.google.com/p/zen-droid/downloads/list (buscar el fichero testsign.jar).
zipalign: se trata de una herramienta que viene incluida en el SDK (PATH\android-sdk-windows\tools\zipalign.exe), que está hecha para prepararnuestro apk para el sistema Android, es decir, para que su rendimiento sea tal cual para dicho sistema ya que si no está “comprimida” con esta herramienta podría afectar el rendimiento de la misma en el dispositivo.
INSTALAR APLICACIONES APK EN EL EMULADOR DE ANDROID
El AVD Manager Tool es la herramienta que nos permite gestionar distintas “máquinas virtuales” de un sistema Android configuradaspara un api específica (es decir, para distintas versiones del sistema operativo Android). Supondré que ya tienen instalado el Android SDK que viene con el SDK Manager pero aún falta configurar dicho “emulador” o máquina virtual. Por lo que aquí explicaré como crear una. Lo que necesitaremos es ir al directorio en donde hemos instalado el Android SDK, allí veremos el ícono del logo o mascota de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Ingenieria Reversa
  • Ingenieria en reversa
  • Ingeniería en reversa
  • Android/iOS software de ingeniería civil
  • DE REVERSA
  • ANDROID
  • android
  • Andro

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS