Estructura de aplicaciones Android
Elementos internos de APK
Estructura de aplicaciones Android es una lección gratuita de Ethical Hacking Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ethical Hacking Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ethical Hacking Academy incluye 4 lecciones en total.
El archivo APK
Una aplicación de Android se distribuye como un APK (Android Package). En realidad, es un archivo ZIP que contiene el código compilado, los recursos y los metadatos.
Como es un ZIP, basta con descomprimirlo para inspeccionar su contenido, que es el primer paso en un pentest móvil.
unzip app.apk -d app_extracted/Dentro del APK
Un APK extraído contiene:
AndroidManifest.xml: configuración de la aplicación.classes.dex: bytecode compilado.res/yresources.arsc: recursos.lib/: bibliotecas nativas.META-INF/: información de firma.
El manifiesto
El AndroidManifest.xml declara los componentes, los permisos y la configuración de la aplicación. En el APK se encuentra en formato XML binario, que las herramientas pueden decodificar.
Es el archivo más importante para comprender la superficie de ataque de una aplicación.
DEX y el entorno de ejecución
El código fuente de Java/Kotlin se compila en bytecode DEX (Dalvik Executable) dentro de classes.dex. Las versiones modernas de Android lo ejecutan mediante ART (Android Runtime).
El DEX puede convertirse de nuevo en código legible, que es lo que aprovecha el análisis estático de los APK.
Los cuatro componentes
Las aplicaciones de Android se construyen a partir de cuatro tipos de componentes:
- Activities: pantallas o interfaz de usuario.
- Services: tareas en segundo plano.
- Broadcast Receivers: responden a eventos del sistema.
- Content Providers: comparten datos entre aplicaciones.
Componentes exportados
Un componente marcado como android:exported="true" puede ser invocado por otras aplicaciones. Si dicho componente realiza acciones sensibles sin comprobaciones, constituye una superficie de ataque.
Los pentesters buscan activities, services y providers exportados que filtren datos o realicen acciones con privilegios.
<activity android:name=".AdminActivity" android:exported="true"/>Permisos
Las aplicaciones solicitan permisos en el manifiesto (por ejemplo, INTERNET, READ_SMS, ACCESS_FINE_LOCATION).
Los permisos demasiado amplios pueden indicar un comportamiento arriesgado o un acceso excesivo a los datos. Los permisos personalizados también pueden estar mal configurados y permitir accesos no autorizados.
<uses-permission android:name="android.permission.READ_SMS"/>Sandbox de la aplicación
Android aísla cada aplicación en su propio sandbox, con un UID de Linux único. De forma predeterminada, las aplicaciones no pueden leer los datos de las demás.
Las vulnerabilidades aparecen cuando las aplicaciones debilitan este límite, por ejemplo, mediante archivos legibles por cualquiera o providers expuestos.
Almacenamiento de datos de la aplicación
Una aplicación instalada almacena sus datos privados en /data/data/<package>/: bases de datos, preferencias compartidas y archivos.
En un dispositivo rooteado o mediante copias de seguridad, un pentester inspecciona este directorio en busca de secretos almacenados de forma insegura, un tema que se tratará en una lección posterior.
/data/data/com.example.app/Firma
Cada APK está firmado digitalmente; la firma se encuentra en META-INF/. Android la verifica durante la instalación y las actualizaciones.
Si modifica y vuelve a empaquetar una aplicación, debe firmarla de nuevo, por lo que los desarrolladores dependen de la firma para detectar manipulaciones.
Bibliotecas nativas
La lógica crítica para el rendimiento o la lógica ofuscada puede encontrarse en bibliotecas nativas (archivos .so) dentro de lib/, compiladas a partir de C/C++.
Estas bibliotecas no están en DEX, por lo que requieren un análisis independiente con desensambladores nativos. A veces los desarrolladores ocultan secretos aquí, creyendo erróneamente que el código nativo es más difícil de inspeccionar.
lib/arm64-v8a/libnative.soComprobación rápida
Recuerde qué atributo del manifiesto expone un componente a otras aplicaciones.
Resumen
Ahora comprende la estructura de las aplicaciones de Android:
- Un APK es un ZIP que contiene
AndroidManifest.xml,classes.dex, recursos y datos de firma. - Las aplicaciones utilizan cuatro componentes; los componentes exportados forman parte de la superficie de ataque.
- Los permisos y el sandbox de cada aplicación regulan el acceso; los datos privados se encuentran en
/data/data/. - Los APK están firmados para detectar manipulaciones.
A continuación, descompilará un APK mediante análisis estático.
Preguntas frecuentes
¿La lección «Estructura de aplicaciones Android» es gratis?
Sí — el texto completo de «Estructura de aplicaciones Android» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ethical Hacking Academy, actualiza a CoddyKit PRO. El curso de Ethical Hacking Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Estructura de aplicaciones Android»?
Elementos internos de APK Practicas Ethical Hacking Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Ethical Hacking Academy?
No se requiere experiencia previa. Ethical Hacking Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Estructura de aplicaciones Android»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Ethical Hacking Academy?
Sí. Cada lección de Ethical Hacking Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Estructura de aplicaciones Android
- Análisis estático de APK
- Análisis dinámico con Frida
- Almacenamiento y comunicaciones inseguros