Red de conocimiento informático - Espacio del host - ¿Cuál es el archivo de código fuente después de descompilar el archivo apk nativo del teléfono móvil?

¿Cuál es el archivo de código fuente después de descompilar el archivo apk nativo del teléfono móvil?

Creo que muchos desarrolladores saben cómo descompilar APK. En circunstancias normales, si desea ver el código fuente xml o java, no podrá verlo. Los archivos apk obtenidos al descomprimirlos con una herramienta de compresión son todos archivos binarios y, después de abrirlos, están llenos de código desordenado.

Lo único que los desarrolladores pueden utilizar son recursos de imágenes, y los recursos de imágenes a menudo no pueden satisfacer las necesidades de los desarrolladores.

Permítame explicarle los pasos para descompilar Android-apk en detalle:

Nota: el requisito previo para la descompilación es que el desarrollador no utilice proguard (herramienta de ofuscación de código Java).

1. Descargue la herramienta de descompilación

Necesita descargar cuatro herramientas: dex2jar, JD-GUI, apktool, apktool-install-windows-r05-ibot

dex2jar: convierte apkclasses.dex a un archivo Jar.

JD-GUI: Una herramienta de descompilación que visualiza directamente el código fuente de los paquetes Jar.

apktool: herramienta de descompilación, que se puede ver directamente descompilando el archivo XML en el APK.

apktool-install-windows-r05-ibot: Herramienta auxiliar de procesamiento por lotes de ventanas.

Descargar:

dex2jar: /p/dex2jar/downloads/list

JD-GUI: /p/innlab/downloads/lis

apktool:/p/android-apktool/ downloads/list

Captura de pantalla de la herramienta:

2. Descomprima el paquete APK

El archivo apk también es un archivo común Archivos comprimidos, el software de compresión de uso común puede descomprimir fácilmente archivos apk. Utilice un software de compresión para descomprimir los archivos del archivo apk en una carpeta para obtener los recursos del APK, incluidos los archivos XML y los archivos Class.dex. Classes.dex es un archivo Java compilado empaquetado a través de la herramienta DX.

Descomprimir captura de pantalla:

3. Descomprima el archivo dex

Después de descomprimir el archivo apk, encontrará que el directorio res de la imagen no está cifrado. pero el código fuente de Java está compilado y se ha convertido en un archivo clases.dex, que no se puede procesar mediante la descompilación ordinaria de archivos de clase. Dex2jar puede convertir el archivo dex en un paquete jar normal.

Descomprima el dex2jar descargado, coloque la carpeta descomprimida en el directorio del disco del sistema y agregue este directorio a la variable de ruta del sistema, luego puede usar: dex2jar.bat o dex2jar .sh convierte directamente archivos dex.

El comando de línea de DOS es el siguiente: dex2jar.bat ?xx\classes.dex (xx es la ruta donde se encuentra el archivo Classes.dex).

Obtendrá un paquete jar común en el mismo directorio: clases_dex2jar.jar. Puede descompilar este paquete jar para obtener el archivo original de la misma manera que usa un paquete jar común.

Captura de pantalla de compilación:

La captura de pantalla del archivo jar generado es la siguiente:

4. Descompila el paquete jar

Después de obtener el jar Paquete, descárguelo. Se recomienda mi herramienta de descompilación favorita para usar JD-GUI. Tiene una interfaz gráfica relativamente simple y puede descompilar un solo archivo de clase o un paquete jar, lo cual es más conveniente.

Abra el archivo comprimido JD-GUI, ejecute jd-gui.exe, abra el paquete jar generado anteriormente y podrá ver el código fuente.

La captura de pantalla es la siguiente:

5. Descomprima el archivo xml

Abra el directorio res\layout descomprimido, hay muchos archivos xml en él, si Si quieres ver al autor cómo está diseñada la interfaz, te decepcionarás porque verás muchos archivos basura. Esta vez necesitamos usar apktool.

Método de operación específico: descomprima los paquetes apktool y apktool-install-windows-r05-ibot descargados en la misma carpeta. Hay tres archivos en esta carpeta: apt.exe, apktool bat, apktool.jbut. , apktool.jbut, apktool.jbut, apktool.bat y apktool.jbut. Coloque esta carpeta en el directorio raíz del disco del sistema y agregue este directorio a la variable de ruta. Tome HelloWord.apk como ejemplo:

Escriba en la línea de comando de DOS: apktool d xx\HelloWord.apk HelloWord para obtener la carpeta HelloWord. El archivo xml en la carpeta es un archivo compilado que se puede ver. normalmente. .

Captura de pantalla a continuación:

Archivos generados: esto le proporcionará código fuente compilable y recursos XML. Nota: ¡Es mejor no tener caracteres chinos en la ruta del archivo!