Qué es APKTool Zombie 2 y por qué deberías usarlo
Si eres un entusiasta de Android al que le gusta modificar aplicaciones o descubrir sus secretos, probablemente hayas oído hablar de APKTool. Es la herramienta de ingeniería inversa más popular para descompilar APKs de Android en código smali, que luego se puede convertir a código Java para facilitar el análisis. También puede decodificar recursos a forma casi original y reconstruirlos después de hacer algunas modificaciones.
Pero sabías que hay una nueva versión de APKTool que se ha lanzado recientemente? Se llama APKTool Zombie 2 y es una bifurcación de la APKTool original con muchas mejoras y características. En este artículo, le mostraremos cómo instalar y usar APKTool Zombie 2 en su dispositivo, cómo decodificar y recompilar las aplicaciones de Android que lo usan, cómo usarlo para modificar e ingeniería inversa de aplicaciones de Android y cómo mantenerse actualizado con la última versión de la misma.
Cómo instalar APKTool Zombie 2 en tu dispositivo
Instalar APKTool Zombie 2 en tu dispositivo es muy fácil. Solo tienes que seguir estos pasos:
- Cambiar el nombre del archivo jar descargado a apktool.jar.
- Mover ambos archivos (apktool.jar y apktool) a /usr/local/bin (raíz necesaria).
- Asegúrese de que ambos archivos son ejecutables (chmod +x).
- Prueba a ejecutar apktool vía cli.
O puede instalar apktool a través de Homebrew:
- Tipo brew instalar apktool en el terminal.
Cómo decodificar y recompilar aplicaciones de Android utilizando APKTool Zombie 2
Una vez que haya instalado APKTool Zombie 2 en su dispositivo, puede comenzar a decodificar y recompilar las aplicaciones Android con él. Aquí hay algunos ejemplos y consejos:
- Para recompilar una aplicación, utilice el comando apktool b app. Esto creará un nuevo archivo apk llamado app/dist/app.apk en la carpeta app.
- Para firmar una aplicación, utilice el comando apktool sign app.apk. Esto creará un archivo apk firmado llamado app.s.apk en el mismo directorio que el archivo apk.
- Para verificar una aplicación, utilice el comando apktool verify app.apk. Esto comprobará si el archivo apk es válido y está firmado.
- Para usar un framework personalizado, use el comando apktool if framework-res.apk. Esto instalará el framework a /home/user/apktool/framework/1.apk.
- Para usar un directorio de salida diferente, use la opción -o. Por ejemplo, apktool d -o output app.apk.
- Para usar un directorio temporal diferente, use la opción -t. Por ejemplo, apktool d -t temp app.apk.
- Para forzar la eliminación del directorio de destino, use la opción -f. Por ejemplo, apktool d -f app.apk.
- Para mantener los recursos rotos, use la opción -r. Por ejemplo, apktool d -r app.apk.
- Para mantener el archivo AndroidManifest.xml original, use la opción -p. Por ejemplo, apktool d -p app.apk.
Cómo solucionar errores y problemas comunes con APKTool Zombie 2
A veces, puede encontrar algunos errores y problemas al usar APKTool Zombie 2. Aquí hay algunos comunes y cómo solucionarlos:
| Excepción en el subproceso "main" brut.androlib.AndrolibException: No se pudo decodificar el archivo arsc | Intente usar una versión diferente de APKTool Zombie 2 o instale un marco personalizado para la aplicación. |
| Excepción en el subproceso "main" brut.androlib.AndrolibException: No se pudo decodificar el archivo XML | Intente usar la opción -p para mantener el archivo AndroidManifest.xml original o editarlo manualmente. |
| Excepción en el subproceso "main" brut.androlib.AndrolibException: No se pudo encontrar el archivo smali | Asegúrese de que ha descompilado la aplicación con APKTool Zombie 2 antes de recompilar o utilizar la opción -s para saltar fuentes. |
| Excepción en el subproceso "main" brut.androlib.AndrolibException: No se pudo encontrar el archivo 9patch | Asegúrese de que ha decodificado la aplicación con APKTool Zombie 2 antes de recompilar o use la opción -m para coincidir con los archivos originales por CRC. |
| Excepción en el subproceso "main" brut.androlib.AndrolibException: No se pudo encontrar el certificado | Asegúrese de haber firmado la aplicación con APKTool Zombie 2 antes de verificarlo o usar un alias y almacén de claves diferente. |
| Excepción en el subproceso "main" brut.androlib.AndrolibException: Excepción desconocida | Intente usar una versión diferente de APKTool Zombie 2 o reporte el error en GitHub. |
Cómo usar APKTool Zombie 2 para modding y aplicaciones de ingeniería inversa para Android
APKTool Zombie 2 no es solo una herramienta para decodificar y recompilar aplicaciones de Android, sino también una poderosa herramienta para modificarlas e implementarlas. Puede usarlo para extraer recursos y activos de aplicaciones Android, editar y modificar AndroidManifest.xml y otros archivos XML, descompilar y convertir código smali a código Java, inyectar código personalizado y bibliotecas en aplicaciones Android y probar y depurar sus aplicaciones modificadas. En esta sección, te mostraremos cómo hacer estas cosas usando APKTool Zombie 2.
Cómo extraer recursos y activos de aplicaciones Android usando APKTool Zombie 2
Una de las principales características de APKTool Zombie 2 es que puede decodificar recursos a forma casi original. Esto significa que puede extraer imágenes, sonidos, fuentes y otros activos de aplicaciones Android. Estos son algunos ejemplos y consejos:
- Para extraer solo recursos específicos de una aplicación, utilice el comando apktool d -r app.apk. Esto creará una carpeta llamada aplicación en el mismo directorio que el archivo apk. Dentro de esta carpeta, encontrará una subcarpeta llamada res que contiene solo los recursos que no están rotos por APKTool Zombie 2.
- Para extraer solo tipos específicos de recursos de una aplicación, utilice el comando apktool d -r app.apk -f type. Esto creará una carpeta llamada aplicación en el mismo directorio que el archivo apk. Dentro de esta carpeta, encontrará una subcarpeta llamada res que contiene solo los recursos del tipo especificado. Por ejemplo, apktool d -r app.apk -f drawable extraerá solo recursos de diseño.
- Para extraer solo archivos específicos de una aplicación, utilice el comando apktool d -r app.apk -f file. Esto creará una carpeta llamada aplicación en el mismo directorio que el archivo apk. Dentro de esta carpeta, encontrará una subcarpeta llamada res que contiene solo el archivo especificado. Por ejemplo, apktool d -r app.apk -f icon.png extraerá solo icon.png.
- Para extraer activos de una aplicación, utilice el comando apktool d app.apk. Esto creará una carpeta llamada app en el mismo directorio que el archivo apk. Dentro de esta carpeta, encontrará una subcarpeta llamada assets que contiene todos los assets de la aplicación.
Cómo editar y modificar AndroidManifest.xml y otros archivos XML usando APKTool Zombie 2
Otra característica de APKTool Zombie 2 es que puede decodificar AndroidManifest.xml y otros archivos XML en forma legible por humanos. Esto significa que puede editarlos y modificarlos usando cualquier editor de texto. Aquí hay algunos ejemplos y consejos:
- Para editar AndroidManifest.xml, utilice el comando apktool d app.apk. Esto creará una carpeta llamada app en el mismo directorio que el archivo apk. Dentro de esta carpeta, encontrará un archivo llamado AndroidManifest.xml que puede abrir y editar con cualquier editor de texto.
- Para modificar permisos, actividades, servicios, receptores, proveedores y otros componentes de una aplicación, edite sus etiquetas y atributos correspondientes en AndroidManifest.xml. Por ejemplo, para agregar un nuevo permiso, agregue una etiqueta con el atributo name establecido en el nombre del permiso.
- Para modificar cadenas, colores, dimensiones, estilos, temas y otros recursos de una aplicación, edite sus valores correspondientes en archivos res/values/*. xml. Por ejemplo, para cambiar el nombre de la aplicación, edite el valor de en res/values/strings.xml.
- Para modificar diseños, menús, preferencias, diálogos y otros elementos de interfaz de usuario de una aplicación, edite sus archivos XML correspondientes en archivos res/layout/*. xml. Por ejemplo, para cambiar el color de fondo de una actividad, edita el atributo android:background de en res/layout/activity_main.xml.
Cómo descompilar y convertir código smali a código Java usando APKTool Zombie 2
Una de las características más poderosas de APKTool Zombie 2 es que puede descompilar código smali a código Java utilizando herramientas baksmali y smali. Esto significa que puedes analizar y entender la lógica y la funcionalidad de las aplicaciones de Android. Estos son algunos ejemplos y consejos:
- Para descompilar código smali a código Java, use el comando apktool d -s app.apk. Esto creará una carpeta llamada aplicación en el mismo directorio que el archivo apk. Dentro de esta carpeta, encontrará una subcarpeta llamada smali que contiene todos los archivos smali de la aplicación.
- Para convertir código smali a código Java, utilice el comando baksmali deodex -o outdir smalifile.smali. Esto creará una carpeta llamada outdir en el mismo directorio que el archivo smali. Dentro de esta carpeta, encontrará un archivo Java con el mismo nombre que el archivo smali.
- Para analizar y entender el código Java, use cualquier descompilador Java o IDE que pueda abrir y editar archivos Java. Por ejemplo, puedes usar JD-GUI, Eclipse, o Android Studio.
- Para analizar y entender el código smali, use cualquier editor de texto que pueda abrir y editar archivos smali. Por ejemplo, puedes usar Texto sublime, o Código VS.
Cómo analizar y entender el código Java usando APKTool Zombie 2
El código Java es el lenguaje de programación más común y ampliamente utilizado para aplicaciones Android. Es más fácil de leer y escribir que el código smali, pero todavía no es muy sencillo. Necesita tener algunos conocimientos básicos de sintaxis y conceptos Java para poder analizar y entender el código Java. Aquí hay algunos ejemplos y consejos:
- Para identificar las clases, métodos, variables y otros elementos del código Java, busque sus declaraciones y definiciones en el archivo Java. Por ejemplo, una declaración de clase comienza con la clase de palabra clave seguida del nombre de clase y opcionalmente extiende o implementa otras clases o interfaces. Una declaración de método comienza con el modificador de acceso (público, privado, protegido, etc.), seguido del tipo de retorno, el nombre del método y los parámetros entre paréntesis. Una declaración de variable comienza con el tipo, seguido del nombre de la variable y opcionalmente una asignación.
- Para modificar el código Java, utilice cualquier editor de texto o IDE que pueda abrir y editar archivos Java. Por ejemplo, puedes usar JD-GUI, Android Studio. Asegúrese de seguir la sintaxis y las convenciones de Java cuando realice cambios para evitar errores y errores.
Cómo inyectar código personalizado y bibliotecas en aplicaciones Android usando APKTool Zombie 2
Una de las características más avanzadas de APKTool Zombie 2 es que puede inyectar código personalizado y bibliotecas en aplicaciones Android utilizando ganchos, parches, marcos, y otras técnicas. Esto significa que puede agregar nuevas características y funcionalidades a las aplicaciones de Android. Estos son algunos ejemplos y consejos:
- Para inyectar código personalizado en una aplicación, utilice el comando apktool d -s app.apk. Esto creará una carpeta llamada aplicación en el mismo directorio que el archivo apk. Dentro de esta carpeta, encontrará una subcarpeta llamada smali que contiene todos los archivos smali de la aplicación.
- Para inyectar código personalizado en un método específico de una clase, abra el archivo smali correspondiente con cualquier editor de texto y busque la declaración del método. A continuación, inserte su código personalizado antes o después del código original utilizando la sintaxis smali y las instrucciones. Por ejemplo, para inyectar un mensaje de brindis en el método onCreate de la clase MainActivity, puede insertar el siguiente código: const-string v0, "Hello from APKTool Zombie 2!" invoke-static p0, v0, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;)Landroid/widget/Toast; move-result-object v0 invoke-virtual v0, Landroid/widget/Toast;->show()V
- Para inyectar código personalizado en un punto específico de ejecución de una clase, use el comando apktool d -s app.apk. Esto creará una carpeta llamada aplicación en el mismo directorio que el archivo apk. Dentro de esta carpeta, encontrará una subcarpeta llamada smali que contiene todos los archivos smali de la aplicación.
- Para inyectar bibliotecas personalizadas en una aplicación, utilice el comando apktool d -s app.apk. Esto creará una carpeta llamada aplicación en el mismo directorio que el archivo apk. Dentro de esta carpeta, encontrará una subcarpeta llamada lib que contiene todas las bibliotecas nativas de la aplicación.
- Para inyectar bibliotecas personalizadas en una aplicación, copie sus archivos de biblioteca personalizados en la subcarpeta lib y cámbieles el nombre según la arquitectura del dispositivo. Por ejemplo, si su biblioteca personalizada se llama libzombie.so y desea inyectarla en un dispositivo arm64-v8a, cópiela en lib/arm64-v8a y cámbiele el nombre a libzombie.so.
- Para cargar sus bibliotecas personalizadas en una aplicación, edite AndroidManifest.xml y agregue una etiqueta con el atributo name establecido en el nombre de su biblioteca personalizada sin el prefijo lib y . so sufijo. Por ejemplo, para cargar libzombie.so, agregue .
Cómo probar y depurar tus aplicaciones modificadas usando APKTool Zombie 2
Después de haber inyectado código personalizado y bibliotecas en aplicaciones Android usando APKTool Zombie 2, debe probarlos y depurarlos para asegurarse de que funcionan como se espera y no causan errores o fallos. Aquí hay algunos ejemplos y consejos:
- Para probar tus aplicaciones modificadas, usa el comando apktool b app. Esto creará un nuevo archivo apk llamado app/dist/app.apk en la carpeta app. Luego fírmalo con APKTool Zombie 2 usando apktool sign app.apk. Esto creará un archivo apk firmado llamado app.s.apk en el mismo directorio que el archivo apk.
- Para depurar sus aplicaciones modificadas, utilice cualquier herramienta o método que pueda capturar y mostrar mensajes de registro de aplicaciones Android. Por ejemplo, puedes usar ADB, o Android Studio. Busque cualquier error o advertencia que pueda indicar problemas con su código personalizado o bibliotecas.
Cómo mantenerse actualizado con la última versión de APKTool Zombie 2
APKTool Zombie 2 es una herramienta en constante evolución que se actualiza con frecuencia con nuevas características y correcciones de errores. Siempre debe utilizar la última versión de APKTool Zombie 2 para obtener el mejor rendimiento y compatibilidad con las aplicaciones de Android. En esta sección, te mostraremos cómo descargar la última versión de APKTool Zombie 2 desde el sitio web oficial, cómo verificar actualizaciones e informar errores usando APKTool Zombie 2, y cómo seguir el desarrollo y las noticias de APKTool Zombie 2 en las redes sociales.
Cómo descargar la última versión de APKTool Zombie 2 desde el sitio web oficial
El sitio web oficial de APKTool Zombie 2 es https://apktoolzombie.com/. Aquí puedes encontrar toda la información y documentación sobre APKTool Zombie 2, así como el enlace directo y el registro de cambios de la última versión. Para descargar la última versión de APKTool Zombie 2 desde el sitio web oficial, sigue estos pasos:
- Ir a https://github.com/apktoolzombie/apktool. Aquí puedes encontrar todo el código fuente y las versiones de APKTool Zombie 2, así como el rastreador de problemas donde puedes buscar actualizaciones y reportar errores. Para comprobar si hay actualizaciones y reportar errores usando APKTool Zombie 2, sigue estos pasos:
- Cómo puedo contactar al desarrollador de APKTool Zombie 2?
Puede ponerse en contacto con el desarrollador de APKTool Zombie 2 utilizando cualquiera de los siguientes métodos:
- Cómo puedo apoyar el desarrollo de APKTool Zombie 2?
Puedes apoyar el desarrollo de APKTool Zombie 2 usando cualquiera de los siguientes métodos:
- Donar: Usted puede donar al desarrollador de APKTool Zombie 2 a través de PayPal, Patreon, GitHub patrocinadores, u otras plataformas. Aquí hay algunos enlaces para hacerlo:
- Contribuir: Puedes contribuir al desarrollo de APKTool Zombie 2 informando errores, sugiriendo características, enviando solicitudes de extracción, escribiendo documentación, creando tutoriales, o difundiendo la palabra. Aquí hay algunos enlaces para hacerlo: