🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónEstructura de una app Android: qué trae el paquete y por dónde se empieza
4 tareas · 35 min · Principiante
Antes de hablar de componentes y permisos hay que saber qué es lo que se está leyendo. Un paquete de Android es un archivo comprimido con el código compilado, los recursos, algunas bibliotecas nativas, la firma y un manifiesto que describe a la aplicación ante el sistema. En esta sala se abre el paquete de Quetzal Recibos, una aplicación de laboratorio de una empresa inventada, y se aprende a leer su listado y su ficha de datos sin ejecutar nada. El objetivo es práctico: saber qué carpeta mirar para cada pregunta de seguridad y por qué el manifiesto es la primera lectura de cualquier revisión autorizada.
Objetivo de la sala
Antes de hablar de componentes y permisos hay que saber qué es lo que se está leyendo. Un paquete de Android es un archivo comprimido con el código compilado, los recursos, algunas bibliotecas nativas, la firma y un manifiesto que describe a la aplicación ante el sistema. En esta sala se abre el paquete de Quetzal Recibos, una aplicación de laboratorio de una empresa inventada, y se aprende a leer su listado y su ficha de datos sin ejecutar nada. El objetivo es práctico: saber qué carpeta mirar para cada pregunta de seguridad y por qué el manifiesto es la primera lectura de cualquier revisión autorizada.Un paquete de Android es un archivo comprimido. Dentro van el código ya compilado (archivos con extensión dex, y a veces más de uno cuando la aplicación es grande), los recursos como diseños y textos, un archivo que indexa esos recursos, las bibliotecas nativas por arquitectura de procesador, la carpeta de firma y el manifiesto. Abrirlo no exige descifrar nada: la firma prueba quién lo publicó y que nadie lo alteró, pero no esconde su contenido.
El manifiesto viaja en un formato binario compacto y las herramientas de lectura lo convierten otra vez a texto. Esa es la razón de que un analista pueda leerlo entero sin tocar la aplicación: lo que declara la app ante el sistema está a la vista de cualquiera que tenga el paquete.
Responde para continuar
Tienes el paquete de una app y quieres saber qué componentes expone al resto del teléfono. ¿Dónde está esa declaración y qué hace falta para leerla?
Ver pista de ayuda
La firma prueba origen e integridad, no cifra. Lo que la app declara ante el sistema viaja en un archivo concreto del paquete.
La ficha del paquete resume lo que el manifiesto declara: el identificador de la aplicación, su versión, el nivel mínimo de Android en el que corre y el nivel de API para el que se compiló y probó (el nivel objetivo). Ese último dato importa para la revisión porque el sistema aplica reglas distintas según para qué nivel declara estar preparada una app. Por ejemplo, desde Android 12 (nivel de API 31) una aplicación que apunta a ese nivel o a uno posterior tiene que declarar de forma explícita si un componente con filtros de intención queda exportado; antes, el valor por omisión lo decidía el propio filtro.
Un nivel objetivo viejo no es un hallazgo por sí mismo, pero cambia lo que hay que comprobar a mano: un manifiesto que no declara nada explícito puede estar exponiendo algo por omisión.
Responde para continuar
Abre la ficha del paquete de Quetzal Recibos y escribe su nivel de API objetivo.
Ver pista de ayuda
La ficha distingue el nivel mínimo del objetivo; pide el objetivo, el nivel para el que la app se compiló y probó.
Además del código compilado en dex, un paquete puede traer bibliotecas nativas, archivos con extensión so que viven en una carpeta por arquitectura. Es código ya compilado para el procesador y se revisa aparte del resto. Una misma biblioteca suele aparecer repetida, una vez por arquitectura, con el mismo nombre; lo que cambia es la carpeta. Para un listado de revisión basta con anotar cuántas bibliotecas distintas hay, cuál es su nombre y a qué función de la app sirven, porque cada una trae sus propias dependencias que mantener actualizadas.
El listado del paquete no dice para qué sirve cada archivo, pero el nombre y el contexto de la app suelen orientar: una biblioteca de lectura de códigos QR en una app de recibos tiene sentido.
Responde para continuar
Revisa el listado de Quetzal Recibos y escribe el nombre del archivo de biblioteca nativa que trae el paquete.
Ver pista de ayuda
Busca en la carpeta lib; el nombre se repite en cada arquitectura, la carpeta es lo que cambia.
Con el paquete abierto hay mucho que leer y poco tiempo, así que el orden importa. El manifiesto se lee primero porque responde las preguntas que fijan el alcance: qué componentes quedan expuestos, qué permisos pide, si admite copias de seguridad y si acepta depuración. Después viene el código, guiado por lo que el manifiesto señaló, y no al revés. Leer el código completo sin saber qué es alcanzable desde fuera es la manera más lenta de llegar al mismo sitio.
En la práctica, el analista que empieza por el manifiesto llega a su primera hipótesis en minutos. El que empieza por las cadenas del código llega a muchas, la mayoría sin relación con lo que un tercero puede alcanzar.
Responde para continuar
Tienes una tarde para revisar un paquete desconocido. ¿Cómo ordenas la lectura?
Ver pista de ayuda
El manifiesto dice qué se puede alcanzar desde fuera; el código se lee guiado por esa respuesta.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.