Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
Android
2
Preparación del fichero binario
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 .
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:
6
Android
Preparación del fichero binario
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.
7
Android
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.
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