Está en la página 1de 12

Preparación del fichero binario

Introducción
 Para el análisis estático, una aplicación se puede encontrar en tres estados:
 Empaquetada en un proyecto compilable con el código fuente disponible.
 Empaquetada en un fichero binario que no ha sido instalado.
 Instalada en un dispositivo móvil.
 Según la clasificación, en base a la información disponible, el primer caso sería
generalmente un análisis de caja blanca, mientras que el segundo y el tercero
serían análisis de caja negra.
 El análisis estático se centra principalmente en el primer y segundo caso, el
análisis forense, en el tercero.
 Sin embargo, se puede realizar un análisis estático de una aplicación instalada
en un dispositivo, ya que pueden encontrarse los mismos elementos que en el
fichero binario.

1
Preparación del fichero binario

Introducción
 En muchas ocasiones, en el entorno móvil, el fichero binario no puede ser
analizado directamente. Este hecho puede deberse por ejemplo a la forma en la
que está empaquetado o al cifrado que protege el código ejecutable del binario.
 Para poder realizar el análisis se hace necesario realizar un procesado previo de
la aplicación que consiste en:
 Desempaquetar el fichero binario en sus diferentes componentes:
□ Código fuente.
□ Imágenes.
□ Ficheros de configuración.
□ Etc.

 Descifrar los elementos que se encuentren cifrados:


□ Para esto, hay ocasiones en las que se hace necesario extraer la aplicación directamente
desde el dispositivo.

Android

2
Preparación del fichero binario

 Si es necesario obtener el fichero binario del dispositivo Android se debe


deldirectorio
extraer /data/ en el
delapp
 A través Androiddispositivo:
DevicMonitor
desde Android
e Studio.

 A través ad
de :
b -tool dentro del directorio
□ Enplatfor sd de
m s del k Android.
□ Accesible desde la terminal
SantokLinux
de u .

 Utilizando servicios de terceros


AP Download
r a través de la
como K e web.

3
Preparación del fichero binario
Uso deapktool
Android

Video

4
 Preparación del fichero binario
En Android, el código compilado (dex) puede ser traducido a un lenguaje
ensamblador legible (smali) a través de un proceso que se denomina
 Una vez que se ha obtenido el fichero binario, es necesario desempaquetarlo.
baksmaling (del islandés, desensamblado).
 Para ello se utiliza la herramienta
apktool(incluida en
Santoku
Linux).
Apktool genera los ficheros smali divididos por clases tal y como existirían en
>
suapktool d fichero.apk
forma Java correspondiente.
Los ficheros smali tienen una correspondencia 1:1 con su correspondiente dex.
Esto implica que se puedan modificar y re-ensamblar en un fichero dex válido.
Para facilitar la lectura del código, los ficheros smali se pueden traducir a
Java, pero la correspondencia entre ambos lenguajes no es exacta y es
posible que no se traduzca todo el código de la aplicación.

5
Android
Preparación del fichero binario
 Se generan los siguientes directorios:

 assets: Ficheros adicionales utilizados por la app.


 lib: Librerías nativas compiladas al código dependiente del procesador.
 original: Manifest y firmas en su estado original.
 res: Ficheros de interfaz, imágenes y otros ficheros adicionales.
 smali: Ficheros de códigos fuente en formato smali (extraídos de classes.dex).
 unknown: Ficheros adicionales sin un directorio específico.
 AndroidManifest.xml: Fichero manifest en formato legible.
 apktool.yml: Log de apktool.

6
Android
Preparación del fichero binario

 Para ello se utilizan las herramientas:


 Dex2jar: Transforma un fichero dex en un jar con ficheros .class compilados
en bytecode de Java original.
□ Recientemente se han publicado otras alternativas como enjarify, de la propia Google para
realizar esta tarea.
 JD-GUI: Descompilador de ficheros .class a .java.
 En primer lugar llamamos a dex2jar desde la consola de Santoku.

 Una vez obtenido el fichero jar, se abre JD-GUI. Se selecciona el fichero jar
generado y se obtiene el árbol de paquetes con los ficheros la representación
en Java de los ficheros. Tiene una versión de consola

jd-cli.

Preparación del fichero binario

7
Android

 Los ficheros binarios descargados de la App Store en iOS se encuentran


cifrados.

8
Android
 Para acceder al binario ejecutable, es necesario extraerlo de un dispositivo iOS
en el que haya sido instalado. Esta operación requiere de la instalación de
utilidades de terceros que necesitan un dispositivo con jailbreak.
 Por lo tanto, previamente a la preparación del fichero binario, se verá cómo se
debe preparar el dispositivo para la realización de análisis estático de
aplicaciones.
En este curso, vamos a describir los pasos necesarios para configurar el
dispositivo para la extracción de binarios y su análisis, pero no se cubren
los métodos para realizar el jailbreak al dispositivo.

9
Android
 En primer lugar utilizamosCydia para instalar las utilidades necesarias.

 Procedemos a instalar el paquete. Una vez terminado,Cydia reiniciará el


SpringBoard (entorno gráfico).

10
Android
 Realizamos la misma operación para instalar BigBoss Recommended tools.

11
Android
 Ahora vamos a proceder a conectarnos por terminal al dispositivo.
 Para ello, en primer lugar debemos averiguar la IP del mismo.
 Para ello puedes ir a Ajustes .

12

También podría gustarte