android - para - descompilar apk
IngenierĂa inversa desde un archivo APK a un proyecto (10)
Accidentalmente borré mi proyecto de Eclipse , y todo lo que me queda es el archivo APK que transferí a mi teléfono. ¿Hay alguna manera de revertir el proceso de exportación de una aplicación al archivo .apk, para que pueda recuperar mi proyecto?
A continuación, se incluyen algunas de las herramientas que puede usar para realizar ingeniería inversa desde un archivo APK a un código fuente:
- Dex2jar
- Descompilador de Java
- Apktool
- Apk Analyzer
En primer lugar, recomiendo this
video, esto puede aclarar todas sus dudas
Si no, por favor revisalo
Procedure for decoding .apk files, step-by-step method:
Step 1:
Cree una nueva carpeta y coloque el archivo .apk (que desea decodificar). Ahora cambie el nombre de la extensión de este archivo .apk
a .zip
(p. Ej .: renombrar de filename.apk a filename.apk.zip) y guárdelo.
Si hay problemas con la conversión a .zip, remítase al link
Después de obtener .zip, ahora obtienes archivos classes.dex, etc. En esta etapa, puedes ver los archivos dibujables pero no los archivos xml y java, así que continúa. Si no ve las extensiones, verifique la configuración
Step 2:
Ahora extrae este archivo zip apk en la misma carpeta. Ahora descarga dex2jar desde este link
y extraerlo a la misma carpeta. Ahora abra el símbolo del sistema y cambie el directorio a esa carpeta.
Luego escribe dex2jar classes.dex
y presiona enter. Ahora obtienes el archivo classes.dex.dex2jar
en la misma carpeta.
Luego descarga el JD-GUI
Y ahora haz doble clic en jd-gui y haz clic en abrir archivo. A continuación, abra el archivo classes.dex.dex2jar
de esa carpeta. Ahora obtienes los archivos de clase y guardas todos estos archivos de clase (haz clic en el archivo y luego haz clic en "guardar todas las fuentes" en jd-gui) por nombre de src. Extraiga ese archivo zip (classes_dex2jar.src.zip)
y obtendrá todos los archivos java de la aplicación.
En esta etapa obtienes el origen de Java, pero los archivos xml aún no se pueden leer, así que continúa.
Step 3:
Ahora abra otra carpeta nueva y coloque estos archivos
poner el archivo .apk que desea decodificar
descarga Apktool para
windows v1.x
yApktool
instalar ventana usando google y poner en la misma carpeta
Descargue el archivo framework-res.apk usando google y póngalo en la misma carpeta (no todos los archivos apk necesitan el archivo framework-res.apk)
Abra una ventana de comando
Navegue hasta el directorio raíz de APKtool y escriba el siguiente comando:
apktool if framework-res.apk.
El comando anterior debería dar como resultado que Framework installed ...
- apktool d "appName" .apk ("appName" denota la aplicación que desea decodificar) ahora obtiene una carpeta de archivos en esa carpeta y ahora también puede leer fácilmente archivos xml.
Step 4:
Finalmente obtuvimos el código de proyecto res/
y java, que es nuestro objetivo para comenzar.
PS
si no puede obtener la carpeta res por los pasos anteriores, instale una nuevaapktool
- ¿Está Java 1.7 instalado? Instalar Apktool 2.x
- ¿Está instalado Java 1.6 o superior? Instalar Apktool 1.x
Enjoy and happy coding
Hay dos herramientas útiles que generarán código Java (aproximado pero lo suficientemente bueno) desde un archivo APK desconocido.
- Descargue la herramienta dex2jar de dex2jar .
Use la herramienta para convertir el archivo APK a JAR :
$ d2j-dex2jar.bat demo.apk dex2jar demo.apk -> ./demo-dex2jar.jar
Una vez que se genera el archivo JAR, use JD-GUI para abrir el archivo JAR. Verá los archivos Java.
La salida será similar a:
Hay una nueva forma de hacer esto.
Android Studio 2.2 tiene APK Analyzer, le dará mucha información sobre apk, agréguelo aquí: - http://android-developers.blogspot.in/2016/05/android-studio-22-preview-new-ui.html
Para la plataforma Android, puedes probar ShowJava , disponible en Play Store.
Puede consultar el código generado a través de la interfaz de la aplicación y la estructura de archivos y carpetas java generada se almacena en la carpeta ShowJava
en /sdcard
, junto con el archivo .jar
resultante de la conversión.
La aplicación es gratuita con un banner publicitario en la parte inferior de la vista principal, pero hay una opción de compra en la aplicación (3,99 $) para eliminarla. La compra integrada en la aplicación no agrega ninguna funcionalidad además de eliminar el banner publicitario.
Divulgación: no soy el desarrollador de la aplicación ni estoy afiliado con él de ninguna manera.
Realmente no. Hay una serie de suites de desensamblador / decompilador dex tales como smali o link que generarán salida semi-legible (en el caso de dex2jar, puede obtener código de Java mediante el uso de algo así como JD-GUI pero el proceso es no es perfecto y es muy poco probable que pueda recrear al 100% su código fuente. Sin embargo, podría darle un lugar para comenzar a reconstruir su árbol fuente.
Sí, puedes recuperar tu proyecto. Simplemente cambie el nombre del archivo yourproject.apk
a yourproject.zip
, y obtendrá todos los archivos dentro de ese archivo ZIP. Estamos cambiando la extensión de archivo de .apk a .zip. Desde ese archivo ZIP, extraiga el archivo classes.dex
y descompílelo de la siguiente manera.
Primero, necesita una herramienta para extraer todas las clases (compiladas) en el DEX a un JAR. Hay uno llamado dex2jar , que está hecho por un estudiante chino.
Luego, puede usar JD-GUI para descompilar las clases en el JAR al código fuente. El código fuente resultante debe ser bastante legible, ya que dex2jar aplica algunas optimizaciones.
Si está buscando una alternativa profesional, eche un vistazo a JEB Decompiler de PNF Software.
Hay una versión demo que te permitirá descompilar la mayoría del código.
Siga los pasos a continuación para hacer esto o simplemente use la gema apkToJava para este proceso, incluso se encarga de instalar las herramientas necesarias para que funcione.
- convertir archivo apk a zip
- descomprimir el archivo
- extraer classes.dex de él
- use dex to jar para convertir classes.dex en archivo jar
- use jadx gui para abrir el archivo jar como código fuente java
Sin software y sin demasiados pasos ...
Simplemente cargue su APK y obtenga todos sus recursos de este sitio.
https://www.apkdecompilers.com/
Este sitio web descompilará el código incrustado en los archivos APK y extraerá todos los demás activos en el archivo.
nota: descompilo mi archivo APK y obtengo el código dentro de un miniute de este sitio web
Actualización 1 :
Encontré otro sitio descompilador en línea,
http://www.javadecompilers.com/apk/ - No funciona continuamente pidiendo bloqueo de ventanas emergentes
Actualización 2:
Encontré la aplicación apk decompiler en Play Store,
https://play.google.com/store/apps/details?id=com.njlabs.showjava
Podemos descompilar los archivos apk en nuestro teléfono Android. y también podemos ver los archivos java y xml en esta aplicación
Actualización 3:
Podemos utilizar otra opción Analyze APK feature de la versión Android studio 2.2
Build -> Analyze APK -> Seleccione su APK -> da resultados