Al tener un archivo .apk, ¿hay alguna forma de obtener su código fuente?
Al tener un archivo .apk, ¿hay alguna forma de obtener su código fuente?
Respuestas:
Incluso si se utilizó ProGuard, aún puede obtener algunas ideas interesantes. Aquí hay una pregunta de StackOverflow con una explicación detallada: Android: Obtener el código fuente de un archivo APK . Video de YouTube con una guía detallada . Y una entrada de blog sobre eso: Cómo recuperar el código fuente de un archivo APK de Android .
Si tiene suerte y su .apk
archivo no estaba protegido por Proguard o analógico, puede usar la herramienta APK . Es una herramienta para la ingeniería inversa de aplicaciones de Android binarias cerradas de terceros.
De uno de los wiki de la comunidad de Parnkul Garg en SO :
Procedimiento para decodificar archivos .apk, método paso a paso:
Cree una nueva carpeta y copie sobre el archivo .apk que desea decodificar.
Ahora cambie el nombre de la extensión de este archivo .apk a .zip (por ejemplo, cambie el nombre de filename.apk a filename.zip) y guárdelo. Ahora puede acceder a los archivos classes.dex, etc. En esta etapa puede ver los elementos dibujables pero no los archivos xml y java, así que continúe.
Ahora extraiga este archivo .zip en la misma carpeta (o NEW FOLDER).
Descargue dex2jar y extráigalo a la misma carpeta (o NEW FOLDER).
Mueva el archivo classes.dex a la carpeta dex2jar.
Ahora abra el símbolo del sistema y cambie el directorio a esa carpeta (o NEW FOLDER). Luego escriba d2j-dex2jar classes.dex
y presione enter. Ahora tiene el archivo classes.dex.dex2jar en la misma carpeta.
Descargue el descompilador de Java , haga doble clic en jd-gui, haga clic en abrir archivo y abra el archivo classes.dex.dex2jar de esa carpeta: ahora obtendrá archivos de clase.
Guarde todos estos archivos de clase (en jd-gui, haga clic en Archivo -> Guardar todas las fuentes) por nombre de src. En esta etapa, obtienes la fuente de Java, pero los archivos .xml aún no se pueden leer, así que continúa.
Ahora abra otra carpeta nueva
Ponga el archivo .apk que desea decodificar
Descargue la última versión de apktool Y la ventana de instalación de apktool (ambas se pueden descargar desde el mismo enlace) y colóquelas en la misma carpeta
Descargue framework-res.apk y póngalo en la misma carpeta (no todos los archivos apk necesitan este archivo, pero no duele)
Abrir una ventana de comando
Navegue al directorio raíz de APKtool y escriba el siguiente comando:
apktool if framework-res.apk
apktool d myApp.apk
(donde myApp.apk denota el nombre de archivo que desea decodificar)
ahora obtienes una carpeta de archivos en esa carpeta y puedes leer fácilmente los archivos xml del apk.
No es un paso, solo copie el contenido de ambas carpetas (en este caso, ambas carpetas nuevas) a la única
y disfruta el código fuente ...