Ingeniería inversa y análisis forense en Android (I): Ingeniería inversa en aplicaciones Android.

En esta cortísima serie de dos post vamos a hablar de ingeniería inversa y análisis forense en Android. Empezaremos el primero de ellos hablando de ingeniería inversa.

Lo primero, cuando hablamos de ingeniería inversa, es saber qué es. La ingeniería inversa es un método para obtener información de un programa o una aplicación con el fin de determinar el lenguaje de programación en el que está escrito, cómo funciona y cómo fue creado. Este método se utiliza principalmente para estudiar nuevos virus y nuevas familias de malware.

  1. Primer paso: programas necesarios.


Tanto para realizar una ingeniería inversa en una aplicación Android como para realizar un análisis forense de un terminal con dicho sistema operativo necesitaremos lo siguiente:

  • Programas necesarios para realizar una ingeniería inversa en una aplicación Android: 


- Android SDK.


- APK Tool.


- Una aplicación Android (cosa lógica, por otra parte).


- Sublime Text o cualquier otro editor de texto especializado en programación, como por ejemplo Notepad ++. Lo necesitaremos para poder modificar, en caso necesario, la aplicación Android que estemos analizando.


Análisis forense de una aplicación Android



- signAPK para firmar la aplicación de nuevo en caso de que modifiquemos algo.





  • Programas necesarios para realizar un análisis forense de un terminal Android:


- Android SDK.


- MOBILedit Lite o cualquier otra suite de análisis forense para smartphones, para poder analizar el contenido del terminal Android que estemos analizando.


- Android Studio. Lo necesitaremos para crear, en caso necesario, una aplicación Android que nos solucione el problema que tenga el terminal Android que estemos analizando.


2. Segundo paso: iniciar el proceso de la ingeniería inversa.

Lo primero que debemos de hacer cuando realizamos una ingeniería inversa a una aplicación Android es descargar la aplicación que deseemos analizar a nuestro ordenador (puede ser cualquiera que nos hayamos descargado en nuestro terminal, por ejemplo) e instalar los programas que vamos a necesitar para analizarla.

 

http://www.youtube.com/watch?v=54aX-8TYz1A













Una vez instalados los programas debemos de seguir los siguientes pasos:

  • Abrimos la consola de Windows.

  • Accedemos a la carpeta donde tengamos guardado el archivo .apk (Android Package) que queramos analizar.

  • Instalamos el framework de APK Tool mediante el comando apktool if framework-res.apk.

  • Descompilamos el archivo .apk que deseemos analizar mediante el comando apktool d nombrearchivo.apk CARPETADONDESEVAADESCOMPILAR.

  • Vamos a la carpeta donde se ha descompilado el archivo y analizamos todo su contenido (puede contener una gran cantidad de carpetas, subcarpetas y archivos), comparando el contenido del archivo .apk que nos parezca sospechoso con el contenido del archivo .apk original (es decir, el que nos hemos descargado en nuestro smartphone desde la Play Store).


En el caso de que encontremos algo sospechoso (por ejemplo, una carpeta que no se encuentre en el archivo .apk original) podremos - y deberemos - modificarlo, aunque luego tendremos que volver a firmar la aplicación.

Comentarios

Publicar un comentario

Entradas populares de este blog

¿Mujeres hermosas de Europa del Este que se enamoran de tí rapidísimamente por Internet? Eso no es amor... son scammers.

Anatomía de un ataque informático.

¿Qué es un ataque Man in the Browser (MiTB)?