Video: ¿Qué lenguajes existen para el desarrollo móvil? (Noviembre 2024)
Una de las tácticas más comunes para difundir malware, o incluso aplicaciones malas , en Android es el reempaquetado de aplicaciones. Durante su presentación en la Conferencia RSA, Pau Oliva Fora de viaForensics demostró que lleva solo unos minutos realizar ingeniería inversa en las aplicaciones de Android.
Obteniendo su aplicación
El primer paso para aplicar ingeniería inversa a una aplicación, dijo Fora, era conseguir una aplicación. Aunque se ven elegantes en su teléfono, las aplicaciones de Android (o APK) son realmente solo archivos ZIP con una nueva extensión. En el interior hay todo lo que la aplicación necesita para ejecutarse, desde el código hasta cualquier medio que pueda necesitar.
Hay varias formas de obtener un APK. Si tiene una aplicación que le gustaría realizar ingeniería inversa en su Android, puede usar un administrador de archivos como ASTRO para guardar una copia de seguridad en una tarjeta SD. También es posible conectar su Android a una computadora y luego usar Android Debugging Bridge para transferir la aplicación a su PC. También puede usar herramientas en línea para extraer APK de Google Play.
Tirándolo aparte
Una vez que tenga un APK para trabajar, deberá convertirlo en algo más utilizable. Para esto, Fora presentó dos opciones. Puede desmontar su objetivo con una herramienta como Apktool, que convertirá el archivo de código de aplicación compilado del APK (Dalvik Executable o DEX) en un lenguaje ensamblador como Smali. O podría descompilar , lo que convierte el DEX en un archivo Java (JAR) y luego en Java.
Fora señaló que debido a que algunos datos pueden perderse en el proceso de descompilación, es mejor usar un descompilador creado teniendo en cuenta Android. Esto omite el paso JAR, convirtiendo DEX directamente a Java.
Para las personas que no están interesadas en rastrear todas esas herramientas por su cuenta, Fora sugirió a Santoku. Esta es una distribución especial de Linux de viaForensics que viene precargada con todas las herramientas que necesita para separar, modificar y reempaquetar una aplicación de Android. Es una poderosa herramienta forense digital sobre la que hemos escrito en el pasado.
Inversa rápida
Si te quedaste dormido durante los últimos párrafos, aquí es donde te despiertas. Usando Santoku, Fora capturó una aplicación de Android muy básica que había creado y la separó. Luego examinó el código de una línea en particular, modificó el código, lo volvió a empaquetar, lo firmó, reinstaló la aplicación modificada en su Android y la lanzó. Todo el proceso tomó menos de cinco minutos.
Ahora, Fora fue un ejemplo muy simple. La aplicación era muy básica y no incluía código ofuscado. Sin embargo, su demostración tuvo implicaciones poderosas. "Puede hacer esto para cambiar el comportamiento de cualquier aplicación de Android", dijo Fora, que enumera infinitas vidas en un juego o características pagas en una aplicación gratuita como solo algunos ejemplos.
¿Un ejemplo más aterrador? Simplemente recuerde cualquiera de las aplicaciones de clonación maliciosas que hemos visto. Piense en esto antes de descargar ese clon incompleto de FlappyBird.