Blog personal de Anibal Copitan como usuario Linux y creador de software. Contenido sobre herramientas y programación.
¿Listo para aprender más? Contáctame por WhatsApp
viernes, 3 de enero de 2025
Ingeniería Inversa de APKs: Aprende a Explorar Código de Apps Android Vulnerables
Las aplicaciones Android, como OLIPAY, pueden ser vulnerables a ingeniería inversa si no implementan medidas de seguridad como la ofuscación de código. En este artículo te mostraré cómo usar dos herramientas esenciales para descomponer y analizar APKs, enfocándonos en el caso de OLIPAY, una app que carece de ofuscación.
Descargar oliPay.apk aquí¿Qué es la Ingeniería Inversa de APKs?
Es el proceso de analizar una aplicación compilada para entender cómo
funciona internamente, explorar vulnerabilidades o aprender de su
estructura. Aunque no obtendremos todo el código fuente, herramientas
como Apktool y JADX nos permiten
acceder a partes esenciales, como el archivo
AndroidManifest.xml
o el código smali.
Nota: Este artículo tiene fines educativos. Usar ingeniería inversa en software sin autorización puede violar leyes locales.
Herramientas para Ingeniería Inversa en Android
1. Apktool
Apktool es ideal para descompilar y leer archivos APK, permitiéndonos analizar configuraciones clave.
Caso Práctico: OLIPAY
El archivo APK es, en esencia, un archivo comprimido similar a
.zip
. Para descomprimirlo, utilizamos:
Con Apktool, descompilamos el archivo de forma específica para extraer su contenido:
Al hacerlo, podemos acceder al archivo
AndroidManifest.xml
, que revela información clave como
permisos, componentes y comportamientos de la aplicación.
Ejemplo visual:
- En la imagen de arriba podemos ver que esta aplicación te solicitara
permisos y ente los mas importantes son:
- para envias SMS
- para trabajar en segundo plano
- para leer notificaciones de otras aplicaciones
2. JADX
JADX nos permite decompilar los archivos DEX (Dalvik Executable) y obtener código fuente legible, ya sea mediante su versión de línea de comandos (jadx) o su interfaz gráfica (jadx-gui).
En mi caso en mi distro Manjaro se instala asi:
Caso Práctico: OLIPAY
Prefiero usar jadx-gui porque es más cómodo y visual:
Abre jadx-gui desde la terminal:
Carga el archivo
oliPay.apk
para explorar su contenido.Ejemplo visual:
- En la imagen de arriba podemos ver:
- A primera el nombre de la aplicacion es:
com.victormiranda.olinda.cheka
- Usa la clase
NotificationListenerService
para integrar el servicio de lectura de notificaciones - En esta porcion de codigo se ve un desorden en su orden:
public static final String FACEBOOK_MESSENGER_PACK_NAME = "com.bcp.bank.bcp"; public static final String FACEBOOK_PACK_NAME = "pe.com.interbank.mobilebanking"; public static final String INSTAGRAM_PACK_NAME = "pe.com.scotiabank.blpm.android.client"; public static final String WHATSAPP_PACK_NAME = "com.bbva.nxt_peru"; public static final String YAPE_PACK_NAME = "com.bcp.innovacxion.yapeapp";
- También considero que las validaciones por numeros, me parecen una manera extraña de validación
- A primera el nombre de la aplicacion es:
- En la imagen de arriba podemos ver:
Conclusión
Analizar aplicaciones como OLIPAY con Apktool y JADX puede ser un primer paso para aprender cómo funcionan las apps Android y mejorar nuestras habilidades técnicas. Sin embargo, también muestra cómo una mala implementación de seguridad puede dejar a las aplicaciones expuestas.
Glosario
- Los archivos DEX (Dalvik Executable): son un componente clave en el sistema operativo Android. Contienen el código ejecutable que se genera después de compilar una aplicación escrita en Java o Kotlin para que pueda ser interpretada y ejecutada por la máquina virtual Dalvik o la Android Runtime (ART), dependiendo de la versión de Android.
Fuentes:
Soy Aníbal 🐧💻. ¿Tienes una gran idea? Si me gusta, ¡trabajemos juntos!
¿Tienes un proyecto en mente o necesitas resolver un desafío técnico? Estoy aquí para ayudarte a encontrar la mejor solución. 🚀
Hablemos sobre tu proyecto ¡Necesito una consulta rápida!
No hay comentarios:
Publicar un comentario