Cómo descompilar un Apk de aplicación Android

Recientemente, hemos publicado una guía sobre cómo agregar dependencias solo para sabores de productos específicos. Después de haber implementado los pasos necesarios, queríamos asegurarnos de que la final .apk en realidad ya no contiene clases no deseadas. En esta publicación, te mostraremos cómo verificar qué clases y recursos están en un apk.

Nota: esta guía está diseñada para descompilar tu propio apk, y no el trabajo duro de otros desarrolladores. Por lo tanto, no incluimos ningún paso para realizar ingeniería inversa o evitar la ofuscación de código.

>

Preparación: Instalación de las herramientas

Un apk de Android es básicamente un directorio comprimido, que contiene algunos recursos en bruto (imágenes, archivos de diseño, ..) y un archivo classes.dex. Este archivo contiene todo el código real y nos interesa más. Vamos a descargar todas las herramientas que necesitamos:

  • Tendrás que descomprimir el apk. Puede usar la funcionalidad incorporada de su sistema operativo o instalar su archivador (no)favorito, como 7-Zip.
  • Para invertir el archivo classes.dex a un .jar, deberá descargar la herramienta dex2jar.
  • Por último, para que el archivo .jar sea legible para el ojo humano, descargue y ejecute JD-Gui.

Recuperar el Código

Bien, ahora es el momento de hacer el trabajo real. Copia tu archivo APK en un directorio en el que quieras trabajar. Descomprima el apk usando la herramienta de su elección y debería obtener un directorio con algunos subdirectorios y algunos archivos.

Descomprimido .apk

Siéntase libre de navegar por el AndroidManifest.xml o el res directorio. La pieza más interesante es el classes.dex. Por lo tanto, cambie a la herramienta dex2jar descargada y abra un nuevo terminal.

Si está en Mac OS, ejecute sh d2j-dex2jar.sh -f -o output.jar your_app_input.apk. Los usuarios de Windows pueden usar el archivo .bat para crear el archivo .jar. Una vez que la herramienta se ejecutó, busque el nuevo archivo .jar.

Ver el Código descompilado

Por último, inicie la herramienta descargada JD-GUI y utilícela para abrir el archivo .jar.

Vista de código descompilada con JD-GUI

Puede navegar por todos los paquetes y clases que están en su apk. El código es una versión despojada y no contiene ningún comentario o estructura redundante que esté viendo en su IDE. Recuerde, esta es la minimización compilada de su aplicación. Sin embargo, debería darte suficiente información para aprender sobre los conceptos básicos de la aplicación. Por ejemplo, nos ayudó a verificar que ya no hay paquetes relacionados con la biblioteca admob en la aplicación.

Otras opciones

Si solo necesita una descompilación rápida, puede usar la herramienta en línea en www.decompileandroid.com/.

Para propósitos de descompilación más avanzados, puede echar un vistazo a apktool, que ofrece muchos ayudantes adicionales.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *