Red de conocimiento informático - Material del sitio web - ¡Cómo descompilar APK y obtener el código fuente de APK!

¡Cómo descompilar APK y obtener el código fuente de APK!

El último descompilador no utiliza este método. Existe la última herramienta de descompilación automática con un solo clic:

Esta vez, cuando estaba aprendiendo sobre el desarrollo de aplicaciones de Android, pensé que, dado que se trata de desarrollo de Java, debería haber una. Bueno, así es como puedes obtener el código fuente mediante el descompilador. Simplemente búscalo en Google y es realmente muy simple. Aquí está el proceso de mi práctica.

Me gustaría declarar solemnemente que el propósito de la publicación no es descifrar el software de otras personas, es puramente una actitud de aprendizaje. Sin embargo, parece que algunos software extranjeros también pueden chinoizarse de esta manera.

Nota: ¡Este tutorial de descompilación de Android fue probado en Windows 7-Ultimate-64bit!

Descargue el kit de herramientas de descompilación requerido a continuación

1. Decomile Apk para obtener el código fuente de Java

Primero necesita descargar dos herramientas: dex2jar y JD-GUI

El antiguo dex2jar convierte las clases.dex en el apk en un archivo Jar, mientras que JD-GUI es una herramienta de descompilación que puede ver directamente el código fuente del paquete Jar. La siguiente es la dirección de descarga:

dex2jar:/files/dex2jar-0.0.7-SNAPSHOT.zip

JD-GUI:/files/jdgui.zip

Pasos específicos:

Primero, cambie el sufijo del archivo apk a zip y descomprímalo para obtener las clases.

Descomprima el dex2jar descargado y copie clases.dex a la ubicación del directorio dex2jar.bat. Busque el directorio donde se encuentra dex2jar.bat en la línea de comando (directorio del CD bajo el comando DOS)

Ejecutar

dex2jar.batclasses.dex

Generar

p>

classes.dex.dex2jar.jar

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

Ejecute JD-GUI (jd-gui.exe ) y abra el paquete jar generado arriba, puede ver el código fuente

El código fuente de HelloAndroid (comparación del código fuente apk precompilado) es el siguiente:

2. , imágenes y configuración XML del programa de generación de apk, recursos de idioma y otros archivos

Si tienes un programa chino, puedes usarlo para generar código fuente. Primero, descargue la herramienta, esta vez usando apktool

Dirección de descarga: /p/android-apktool/downloads/list

Descarga: apktool1.4.1.tar.bz2 y apktool- instale -windows-r04-brut1.tar.bz2 (descargue dos paquetes de software)

Pasos:

Extraiga los dos paquetes de software descargados en la misma carpeta, debe haber tres archivos: apt.exe, apktool.bat, apktool.jar

Ubique la carpeta apktool.bat en la línea de comando.

Ingrese el siguiente comando: apktool d C:\*.apk C:\* carpeta como se muestra a continuación:

Instrucciones de línea de comando: apktool d [archivo apk] [carpeta de salida]

El archivo descompilado es el siguiente (tome AndroidManifest.xml como ejemplo):

Nota especial: debe colocar el archivo a descompilar en el directorio raíz de la unidad C (no necesariamente en la unidad C). (En el directorio raíz del disco)

Por ejemplo, en el directorio D D:\apktool1.4.1

cd /d D:\apktool1.4.1 //cambiar al directorio D , que contiene HelloAndroid.apk, así como aapt.exe, apktool.bat, apktool.bat, apktool.jar

apktool.bat d -f HelloAndroid.apk HelloAndroid // comando de descompilación de apktool, preste atención to d y

Cómo escribir -f

Reempaquetar el archivo descompilado en un apk. Esto es muy simple. Ingrese la carpeta apktool b c:\*** (la carpeta que compiló). , el comando es el siguiente: Esta es la idea general del disco donde se encuentra tu archivo

El archivo apk empaquetado está en el directorio C:\HelloAndroid y se generan dos carpetas:

build

p>

dist

Entre ellos, el HelloAndroid.apk empaquetado y generado está en la carpeta dist de arriba, Ok

Finalmente, Presentaremos una herramienta de descompilación recientemente lanzada, Androidfby. Es una herramienta de interfaz gráfica que incluye los pasos anteriores, dirección de descarga.

Sin embargo, para algunas aplicaciones firmadas, no se puede lograr la descompilación, pero el método de este blog sí. ¡Aún se puede descompilar exitosamente!

Además, como desarrollador de aplicaciones, definitivamente no desea que su código sea descompilado. El próximo blog hablará sobre cómo evitar que otros descompilen el código ofuscándolo.

Cómo evitar que los programas Apk se descompilen en Android

Como desarrollador de aplicaciones de Android, debes enfrentar la vergonzosa situación de que la aplicación en la que has trabajado duro para desarrollar pueda estar descompilada. Como desarrollador de aplicaciones de Android, debe enfrentar una situación embarazosa: la aplicación en la que ha trabajado tan duro para desarrollar puede ser fácilmente descompilada por otros.

Google parece haber descubierto este problema. A partir del SDK2.3, podemos ver una carpeta proguard adicional en android-sdk-windows/tools/

Proguard es un código Java. A través de la herramienta de ofuscación, incluso si otros usan proguard, incluso si alguien descompila su paquete apk, solo verá algún código incomprensible, logrando así la protección del código.

Echemos un vistazo a cómo hacer que el archivo proguard.cfg funcione en SDK2.3, android-sdk-windows\tools\lib\proguard.cfg:

[html] view

El archivo default.properties completo debería verse así:

[html] view

Plaincopyprint?

1.# Esto archivo Generado automáticamente por herramientas de Android.

2.# No modifiques este archivo: ¡tus cambios se borrarán!

3.

4.# Este archivo debe ser revisado en el sistema de control de versiones.

5.

6.# Para personalizar las propiedades utilizadas por el sistema de compilación Ant, utiliza "build.properties" y anula sus valores para adaptar el script al tuyo

8.# Estructura del proyecto.

9.

10.# Objetivos del proyecto.

11. target=android-9

12. proguard.config=proguard.cfg

Después de la compilación y firma normales, puede evitar que el código se envíe. Compilar invertido. El código resultante al descompilar el apk ofuscado debería verse como el siguiente, que es difícil de leer:

Si está utilizando una versión anterior a la 2.3 del SDK, copie el archivo proguard.cfg anterior y simplemente suéltelo en su proyecto y haga lo mismo.