Blog

Destripando un APK

Hola!

Llevo tiempo queriendo ver las entrañas de las APK. He tenido las herramientas necesarias (gracias Borja) pero entre unas cosas y otras, no me he puesto a hacerlo.

Hoy es el día y voy a comenzar con una APK que me llamó la atención desde el primer momento que la ví: la APK que crea metasploit cuando quieres acceder a un terminal Android.

Para ello he cogido la APK “prueba.apk” que usé en un post anterior.

Lo primero que hay que hacer es cambiar la extensión a .zip (bueno, yo he hecho un backup de la misma y renombro el zip la backup, jeje).

 

Una vez renombrada, la descomprimimos en una carpeta.

Nos descargamos la aplicación dex2jar (lo ponemos en google y buscamos el que viene en code.google.com).

imagen1

Una vez que lo tenemos descargado, lo descomprimimos en la misma carpeta donde descomprimimos la apk.

 

Una vez hecho esto, abrimos un terminal y nos vamos a la carpeta donde tenemos dex2jar.

Una vez en ella escribimos “dex2jar classes.dex” y presionamos Enter.

imagen2

En la imagen vemos que lo ha realizado, informándonos que es mejor usar el comando “d2j-dex2jar” si fuera posible.

Ahora descargamos el decompilador java en “http://jd.benow.ca”. Bajamos hasta jd-gui, clickamos la pestaña download y click en la versión adaptada a nuestra sistema operativo (en este caso, uso para windows).

imagen3

Una vez descargado, lo descomprimimos y lo ejecutamos. Seleccionamos el archivo .jar del paso anterior.

imagen4

Nos vamos a “File” y clickamos en “Save all sources”, donde nos preguntará donde guarda el archivo.

 

Ahora, en una carpeta ponemos el .apk que queremos decodificar.

 

Descargamos apktool y apktool install window y los descomprimimos en una carpeta. Una vez hecho esto, descargamos framework-res.apk.

 

Es decir, en una misma carpeta tenemos los archivos de apktool, apktool install window, el framework y el archivo apk que queremos decodificar.

En mi caso, los he metido todos en la carpeta apktool.

Una vez que esta todo, ponemos en un terminal:

“apktool if framework-res.apk” para poner el framework en el sistema.

 

Una vez que finaliza, ponemos : “apktool d archivoadecodificar.apk”, decodificando en “debug mode”.

imagen5

Esto nos crea una carpeta en ese directorio con el nombre del archivo a codificar (en mi caso, prueba).

imagen6

Una vez hecho esto, junto a los archivos extraídos de las operaciones anteriores, podemos empezar a analizar el contenido del apk.

Para la siguiente, iremos viendo como es. Se admiten sugerencias y aportaciones, que estamos para aprender…

 

Un saludo

 

David (@darksh4m4n)

  1. adrian
    adrian10-25-2014

    Muy bueno, @darksh4m4n !!

    ¿Vas a seguir con el análisis? Me encanta este tipo de material. He llegado al punto de ver las class del apk destripado con el jd-gui.exe.
    En concreto he destripado un apk de un meterpreter reverse tcp para ver qué hacía, bueno intentarlo que estoy aprendiendo xD.

    Ahora que tengo todo destripado ¿cómo lo vuelvo a armar? Por ejemplo, en mi archivo XXX.CLASS de mi apk destripada aparece mi iplocal que le puse al crearlo, si qusiera cambiarla por otra ¿cuál sería el proceso para poder volver a montar la apk con otra ip y que funcione?
    Un saludo

Leave a Reply

*

    No Twitter Messages