Ingeniería inversa en aplicaciones Android

Ingeniería inversa en aplicaciones Android

Aunque existen varias herramientas para ofuscar el código de las aplicaciones que desarrollamos para Android, la ingeniería inversa sigue siendo una realidad, y se sigue pudiendo hacer la decompilación de gran parte del código aun estando ofuscado.

Ingeniería inversa a APK

Para conocer como defendernos, debemos conocer un poco del "lado del mal". Pero hay que aclarar que descompilar una aplicación no siempre es por malas intenciones, ya que es muy útil en el caso de buscar malware dentro de una aplicación que a simple vista nos parece inofensiva, y comprender las técnicas que utilizan los delincuentes para engañar a sus víctimas.

Como ya sabemos Android esta basado en Linux y de forma nativa su lenguaje para desarrollar aplicaciones es JAVA, esto porque 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 Virtual Machine creada por Dan Bornstein con la ayuda de algunos ingenieros de Google.

Con lo anterior podemos respaldar el porque las aplicaciones Android no utilizan archivos .class sino .dex que significa Dalvik Executable de igual forma estos archivos pueden descompilarse y convertirse a archivos .jar.

Hoy en día existe una distribución de Linux con las herramientas necesarias para realizar la descompilación de las aplicaciones, hablamos de Android Reverse Engineering (A.R.E.) .

Instalación de A.R.E

  1. Descargamos A.R.E desde aquí
  2. Descomprimimos la imagen.
  3. Y ahora la cargamos a VirtualBox, utilizando nuestra guía de Cómo utilizar VirtualBox
  4. Una vez iniciada nuestra máquina virtual ingresamos con el usuario:android y password:android.

Herramientas instaladas y configuradas

  • Androguard
  • Android sdk/ndk
  • APKInspector
  • Apktool
  • Axmlprinter
  • Ded
  • Dex2jar
  • DroidBox
  • Jad
  • Smali/Baksmali

Así como anteriormente explicamos que estas herramientas se pueden utilizar para conocer el funcionamiento de cierto malware, tambien pueden ser utilizadas para infectar ciertas aplicaciones dependiendo de el objetivo del atacante que por ejemplo podría ser capturar números de cuentas bancarias o de tarjetas de créditos con cierto patrón de numeración en una versión infectada de Whatsapp y enviarlas a cierta cuenta de correo o guardarla en alguna base de datos.

Esperamos que ahora pensemos con mas detenimiento a la hora de instalar aplicaciones piratas en nuestros dispositivos.

Para ti
Queremos saber tu opinión. ¡Comenta!