¿Hay alguna manera de obtener el código fuente de un archivo APK?

1262

El disco duro de mi computadora portátil se bloqueó y perdí todo el código fuente de una aplicación en la que he estado trabajando durante los últimos dos meses. Todo lo que tengo es el archivo APK que se almacena en mi correo electrónico desde que lo envié a un amigo.

¿Hay alguna forma de extraer mi código fuente de este archivo APK?

Frank Bozzo
fuente
28
FYI Hay una verificación de descompilación en línea aquí
edwin
11
¿Significa esto que podemos obtener el código fuente de aplicaciones valoradas en millones de dólares como Whatsapp o Facebook? ¿Es todo esto de código abierto?
Faizan
3
@Faizan, ¿has oído hablar de Proguard?
Vishwajit Palankar
1
La formulación de la pregunta contiene datos irrelevantes de historias de vida y, como tal, puede interpretarse como una herramienta recomendada . Sin embargo, la respuesta podría haber sido javac -decompile, lo que luego se ajustaría a las pautas de SO. Me parece que las respuestas están fuera de tema , no la pregunta.
SwiftArchitect
2
en este artículo explican cómo hacen ingeniería inversa a Pokemon Go
anders

Respuestas:

1569

Manera simple: use la herramienta en línea http://www.javadecompilers.com/apk , cargue apk y obtenga el código fuente.


Procedimiento para decodificar archivos .apk, método paso a paso:

Paso 1:

  1. Cree una nueva carpeta y copie sobre el archivo .apk que desea decodificar.

  2. 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.

Paso 2:

  1. Ahora extraiga este archivo .zip en la misma carpeta (o NEW FOLDER).

  2. Descargue dex2jar y extráigalo a la misma carpeta (o NEW FOLDER).

  3. Mueva el archivo classes.dex a la carpeta dex2jar.

  4. Ahora abra el símbolo del sistema y cambie el directorio a esa carpeta (o NEW FOLDER). Luego escriba d2j-dex2jar classes.dex(para Mac terminal o ubuntu write ./d2j-dex2jar.sh classes.dex) y presione Intro. Ahora tiene el archivo classes.dex.dex2jar en la misma carpeta.

  5. 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.

  6. 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.

Paso 3:

Ahora abra otra carpeta nueva

  1. Ponga el archivo .apk que desea decodificar

  2. 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

  3. Abrir una ventana de comando

  4. Ahora ejecuta un comando como apktool if framework-res.apk(si no lo tienes, obténlo aquí ) y luego

  5. 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.

Paso 4:

No es ningún paso, solo copie el contenido de ambas carpetas (en este caso, las dos carpetas nuevas) a la única

y disfruta el código fuente ...

Prankul Garg
fuente
26
@prankulgarg, en el punto 5 del paso 3 obtengo el siguiente error: No se puede acceder al archivo jar E: \ apktojava \ testt \\ apktool.jar
55
En lugar de escribir dex2jar classes.dex en cmd, pruebe d2j-dex2jar classes.dex . Debido a que dex2jar classes.dex este cmd está en desuso.
Umesh
23
Para aquellos que no pueden encontrar framework-res.apk. Descárgalo desde aquí
atulkhatri
12
Los que no encontraron d2j-dex2jar.sh, descarguen dex2jar desde aquí: dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip
Reaz Murshed el
14
Para las personas atrapadas en el paso 2: 4, descargue esta versión y resolverá el problema: sourceforge.net/projects/dex2jar/files/dex2jar-2.0.zip/download que hizo por mí. @delive
siriuseteor77
126

Esta es una descripción alternativa, en caso de que alguien se quede atascado con la descripción anterior. Sigue los pasos:

  1. descargar apktool.bat(o apktoolpara Linux) yapktool_<version>.jar desde http://ibotpeaches.github.io/Apktool/install/
  2. cambiar el nombre del archivo jar de arriba a apktool.jar y coloque ambos archivos en la misma carpeta

  3. abrir un cuadro de dos (cmd.exe ) y cámbielo a esa carpeta; verifique que esté instalado un entorno Java (para Linux, consulte también las notas sobre las bibliotecas necesarias)
  4. Comienzo: apktool decode [apk file]

    Resultado intermedio : archivos de recursos,AndroidManifest.xml

  5. descomprima el archivo APK con un desempacador de su elección

    Resultado intermedio :classes.dex

  6. descargue y extraiga dex2jar-0.0.9.15.zipde http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=
  7. arrastre y suelte classes.dexen dex2jar.bat(o ingrese <path_to>\dex2jar.bat classes.dexen un cuadro de DOS; para uso de Linuxdex2jar.sh )

    Resultado intermedio :classes_dex2jar.jar

  8. deshacer classes_dex2jar.jar (puede ser opcional dependiendo del descompilador usado)
  9. descompila tus archivos de clase (por ejemplo, con JD-GUI o DJ Decompiler )

    Resultado : código fuente

Nota: no está permitido descompilar paquetes de terceros; esta guía está destinada a recuperar el código fuente personal de un archivo APK solamente; finalmente, el código resultante probablemente se ofuscará

Trinimon
fuente
66
También podría agregar que hay una alternativa moderna a esta APKTool-> dex2jar-> JD-GUI route! Simplemente pruebe el descompilador de código abierto APK y DEX llamado Jadx: sourceforge.net/projects/jadx/files También tiene una versión en línea aquí: javadecompilers.com/apk
Andrew Rukin
2
Está permitido (léase: legal) descompilar cualquier archivo APK. Consulte la siguiente pregunta: stackoverflow.com/questions/9674557/…
Rakete1111
1
¿Por qué esos archivos apktooldevueltos smali? ¿Cómo obtener el javaarchivo?
rminaj
108

Si bien es posible que pueda descompilar su APK archivo, es probable que encuentre un gran problema:

no va a devolver el código que escribiste. En su lugar, devolverá lo que sea que haya compilado el compilador, con variables con nombres aleatorios, así como funciones con nombres aleatorios. Podría llevar mucho más tiempo intentar descompilarlo y restaurarlo en el código que tenía, de lo que será volver a comenzar.

Lamentablemente, cosas como esta han matado muchos proyectos.
Para el futuro, recomiendo aprender un sistema de control de versiones, como CVS , SVN y git, etc.

y cómo respaldarlo.

Ryan Gooler
fuente
19
Un servicio como Dropbox también ayudará.
Jeremy Logan
1
y siempre hay una manera de grabar CD's
JerryGoyal
52

También hay una nueva aplicación en Play Store con la que es posible descompilar un apk (también las aplicaciones del sistema) y ver el código fuente directamente en su teléfono inteligente. Guarda los archivos en su tarjeta SD para que también pueda verlos en su computadora. No requiere root u otra cosa.

Simplemente instale y diviértase. Creo que esta es la forma más fácil de descompilar una aplicación.

Cilenco
fuente
1
Este es el más fácil.
Midhun Vijayakumar
@MidhunVijayakumar ¿podrías usar la conversión de apk a código fuente usando esto?
Sajeev
28

apktool es lo mejor que puedes probar. He guardado algunos xml con él, pero sinceramente, no sé cómo funcionará con el código .java.

Te recomendaría tener un repositorio de código incluso si eres el único codificador. He estado usando Project Locker para mis propios proyectos. Te da repositorios gratuitos de svn y git.

Macarse
fuente
Encontrará que apktool es indispensable si desea extraer recursos (es decir, imágenes de una aplicación de Android. ¡En realidad, la herramienta no tiene competidores en absoluto!) Una versión en línea de apktool está disponible aquí: www.javadecompilers.com/apktool
Andrew Rukin
23

Estos dos artículos describen cómo combinar el uso apktooly dex2jartomar un APKarchivo y crear un proyecto de Eclipse que pueda construirlo y ejecutarlo.

http://blog.inyourbits.com/2012/11/extending-existing-android-applications.html

http://blog.inyourbits.com/2012/12/extending-existing-android-applications.html

Básicamente usted:

  1. Utilizar apktool para obtener los archivos de recursos del apk
  2. Utilícelo dex2jarpara obtener un archivo jar que contenga las clases en un formato que le gustará a Eclipse.
  3. Cree un proyecto de Eclipse, apúntelo a los archivos de recursos y al nuevo archivo jar
  4. Abra el archivo jar con una utilidad zip y elimine los recursos existentes
  5. Abra el archivo jar con JDGui para ver el código fuente
  6. Tome el código fuente que necesite de JDGui , péguelo en una clase dentro de Eclipse y modifíquelo
  7. Elimine esa clase del archivo jar (para que no tenga la misma clase definida varias veces)
  8. Ejecutarlo.
Tom Hennen
fuente
2
Sé que esta pregunta aún se responde, me gustaría transmitir una información: hay un descompilador en línea para Android apks decompileandroid.com Cargue apk desde la máquina local, espere unos momentos, descargue el código fuente en formato zip.
Snehal Masne
2
Suena bien. ¡Y luego el sitio web de decompileandroid también tiene una copia de toda su fuente! ¡Inteligente!
DDSports
Una pregunta, tengo una apk descompilada, pero en jd gui no sé si existen las clases reales de java, ¿sabes si una apk está descompilada? ¿Hay clases reales de Java?
21

apktool funcionará. Ni siquiera necesita conocer el almacén de claves para extraer el código fuente (lo que da un poco de miedo). El principal inconveniente es que la fuente se presenta en formato Smali en lugar de Java. Sin embargo, otros archivos, como el ícono y main.xml, funcionan perfectamente bien y puede valer la pena recuperarlos. En última instancia, lo más probable es que deba volver a escribir su código Java desde cero.

Puedes encontrar apktool aquí . Simplemente descargue apktool y el asistente apropiado (para Windows, Linux o Mac OS). Recomiendo usar una herramienta como 7-zip para descomprimirlos.

Ryan Berger
fuente
16

Hay algunas formas de hacer esto:

  1. Utilice la función "Perfil o depuración de APK" en Android Studio 3.0.

    Le permite abrir y explorar APK en Android Studio. Las clases se descomponen en smali. Los recursos no se extraen y cosas como "Ir a la definición", "Buscar todas las referencias" y la depuración no funcionan sin el código fuente (android studio 3.0 canary 9). Algunas funciones smali adicionales podrían funcionar con smalidea .

    android-studio

    seleccione Archivo

    código

  2. Usa jadx .

    Jadx descompila el código en un APK dado a los archivos fuente de Java.

    jdax-img

  3. Usa apktool .

    Apktool es una herramienta de línea de comandos que extrae recursos y descompila el código en pequeños para un apk dado. Puedes recompilar usando apktool también. Aquí hay un ejemplo de ello en acción:

    $ apktool d test.apk
    I: Using Apktool 2.2.4 on test.apk
    I: Loading resource table...
    I: Decoding AndroidManifest.xml with resources...
    I: Loading resource table from file: 1.apk
    I: Regular manifest package...
    I: Decoding file-resources...
    I: Decoding values */* XMLs...
    I: Baksmaling classes.dex...
    I: Copying assets and libs...
    I: Copying unknown files...
    I: Copying original files...
    $ apktool b test
    I: Using Apktool 2.2.4 on test
    I: Checking whether sources has changed...
    I: Smaling smali folder into classes.dex...
    I: Checking whether resources has changed...
    I: Building resources...
    I: Building apk file...
    I: Copying unknown files/dir...
0xcaff
fuente
He intentado jadx, pero incluso con helloworld simple, aunque lo descompila en Java. Sin embargo, al intentar abrir el proyecto en el estudio de Android y compilarlo de nuevo a apk, falla por muchas razones (archivos de duplicación, etc.). ¿Hay algún método que cree Java que pueda compilarse de nuevo a apk?
rescate
1
@ransh Normalmente uso jadx para leer el código y luego apktool para modificar el código. apktool no crea java pero permite volver a compilar.
0xcaff
0xcaff, gracias por la aclaración. eso tiene sentido ahora. Porque tratar de compilar un Java descompilado en el estudio de Android, no estaba funcionando.
rescate
7

Te mostraré otra forma de descompilar los archivos .apk .

Puedes seguir los primeros 2 pasos desde " prankul garg ". Entonces tienes otras oportunidades:

Paso 3':

Descargue la "JD-GUI" , que es fácil de encontrar. Abra su archivo .jar en "jd-gui.exe". (Archivo> Abrir archivo> 'encontró su archivo .jar '). Después de este procedimiento, puede guardar todos los recursos en un archivo .zip .

Entonces,

Primero: debe cambiar el nombre del archivo .apk a .zip

2º - Usted tiene que decodificar .dex archivo (si lo desea, decodificar el apk archivo a dex2jar , eso es posible)

3º - Tienes que decodificar el archivo .jar con JD-GUI

Franklin Hirata
fuente
20
¿Qué proporciona esta respuesta que los demás no?
Jørgen R
Realmente no tienes que cambiarle el nombre a zip. Podría abrir el archivo apk directamente con 7-zip.
miva2
7

Debajo de la herramienta EN LÍNEA :

http://www.javadecompilers.com/apk

lo hace TODO con un clic: archivos .java descompilados + recursos + xml (en un archivo .zip) con muy buen descompilador (código java de retorno jadx en lugares / funciones donde otras compilaciones devuelven comentarios dentro de la función como "no se puede descompilar" o algunos ensamblador de Android / código de máquina)

Kamil Kiełczewski
fuente
sí, esto es genial, pero en lugar de los nombres de las funciones, ha cambiado todos los nombres de las funciones a CS1001 y así sucesivamente. Entonces, ¿cómo reconocerlos? y una cosa más: ¿Podemos usar esta apk descompilada directamente como nuestro proyecto de estudio de Android? ¿Funcionará?
Zia Ur Rahman
luego, para qué propósito usamos para descompilar algunos apk, si no podemos usar su funcionalidad en nuestras aplicaciones.
Zia Ur Rahman
@ZiaUrRahman No lo sé. Sin embargo, en mi caso descompilo el código para analizar el algoritmo. ¿Verifica si el código descompilado de esa herramienta puede ser compilado por Android Studio de manera totalmente automática, o necesita algún "procesamiento humano"?
Kamil Kiełczewski
1
Importé el proyecto descompilado en el estudio de Android, pero no gradle allí y el proyecto tiene muchos archivos, pero no entendí hasta que lo ejecutamos. Simplemente no funcionó. Necesito hacer que el proyecto descompilado sea completamente funcional en el estudio de Android y luego obtener algunas funciones básicas de algunos, luego quiero usarlo / incrustarlo en mi propio proyecto. Entonces, ¿hay alguna manera de cómo hacer esto?
Zia Ur Rahman
6

Este sitio https://www.apkdecompilers.com/ hizo automáticamente.

Probé el sitio mencionado en la respuesta aceptada primero, pero eso no funcionó para mí.

M. Usman Khan
fuente
no pude recuperar mi código fuente de Java ... parece algo así como un archivo adjunto y ...
iman kazemayni
@imankazemayni en el enlace de arriba, "navegue" a su archivo APK y haga clic en "Descompilar su APK". Tomará algún tiempo y luego debería darle el código fuente, si el código no está cifrado.
M. Usman Khan
¿sabes que el impacto multidex en el cifrado?
iman kazemayni
6

Yo personalmente recomiendo la aplicación Show Java Android para obtener el código fuente. Puedes descargarlo desde Play Store o desde aquí

Codelover
fuente
La mayoría de los compiladores en línea no funcionan, pero esta aplicación está funcionando. Gracias
Sunil
4

Apktool para aplicaciones de Android binarias cerradas de terceros de ingeniería inversa.

Puede decodificar recursos en forma casi original y reconstruirlos después de hacer algunas modificaciones.

Permite depurar el código pequeño paso a paso. También hace que trabajar con una aplicación sea más fácil debido a la estructura de archivos similar a un proyecto y la automatización de algunas tareas repetitivas como la creación de apk, etc.

http://ibotpeaches.github.io/Apktool/

Biswajit Karmakar
fuente
3

apktool es el camino a seguir. El servicio apktool en línea también existe: http://www.javadecompilers.com/apktool

Obviamente, existen algunas limitaciones debido al servicio 'naturaleza en línea': puede extraer e investigar los activos y el archivo de manifiesto, pero es imposible volver a compilar la aplicación en este momento.

Aún así, esta es una forma sencilla de "abrir" la aplicación de Android.

Andrew Rukin
fuente
3

Puedes probar DexPatcher . Incluso se integra con Android Studio. Utiliza Apktool y Dex2Jar internamente.
Puede usar esas herramientas de forma independiente también. Apktool descompila apk y extrae archivos .dex, que se pueden convertir a jar utilizando Dex2Jar. Jar se puede descompilar utilizando JD-GUI . Puede ver el código Java con la ayuda de esa herramienta. Aunque no se puede garantizar la similitud del código descompilado con el código real. Hay algunas herramientas avanzadas de ofuscación de código disponibles en el mercado, que desordenan el código para dificultar la compilación / comprensión. p.ej. Proguard

Lakshmikant Deshpande
fuente
Hola ¿Cómo usar DexPatcher con Android Studio?
ravi152
No puedo explicar todo en los comentarios. Google es tu amigo :) También hay algunos buenos tutoriales de YouTube.
Lakshmikant Deshpande
2

según su condición, si su apk de Android:

Condición1: NO endurecer (por Tencent Legu / Qihoo 360 / ...)

Opción1: uso del servicio en línea

como:

utilizando www.javadecompilers.com

ir:

para decodificar automáticamente desde apk al código fuente de Java

pasos:

uploadarchivo apk + clic Run+ esperar algún tiempo + clic Downloadpara obtener zip + descomprimir ->

sources/com/{yourCompanyName}/{yourProjectName}

es tu código fuente de Java esperado

Choice2: descompilar / crack por ti mismo

Utilice la herramienta relacionada para descompilar / crack por usted mismo:

usar jadx/ jadx-guiconvertir apkajava sourcecode

descargue jadx-0.9.0.zip y luego descomprímalo en got bin/jadx, luego:

  • modo de línea de comando:
    • en terminal ejecutado: jadx-0.9.0/bin/jadx -o output_folder /path_to_your_apk/your_apk_file.apk
    • output_folder mostrará decodificado sourcesyresources
      • sources/com/{yourCompanyName}/{yourProjectName} es tu esperado java sourcecode
  • Modo GUI
    • doble clic para ejecutar jadx-0.9.0/bin/jadx-gui(Linux jadx-gui.sh/ Windows jadx-gui.bat)
    • abrir apkarchivo
    • se descodificará automáticamente -> ver su código fuente de Java esperado
    • save all o save as Gradle project

p.ej:

Condición2: endurecer (por Tencent Legu / Qihoo 360 / ...)

El método principal de 3 steps:

  1. apk/app to dex
  2. dex to jar
  3. jar to java src

explicación detallada:

Paso 1: apk/app to dex

usar la herramienta ( FDex2/ DumpDex) volcar / conectar el dexarchivo (uno o varios) desde la aplicación en ejecución

pasos:

preparar ambiente

deshacerse dexde la aplicación en ejecución

  • ejecutar y FDex2luego haga clic en el nombre de su apk para habilitar más tarde para capturar / conectar dex

  • (en teléfono / emulador) ejecuta tu aplicación
  • encontrar y copiar los recursos apk completos de descarga en /data/data/com/yourCompanyName/yourProjectName
    • en su carpeta raíz normalmente encontrará varios dexarchivos

Paso 2: dex to jar

herramienta de uso ( dex2jar) convertir (lo específico, que contiene la lógica de aplicación) dexarchivo a jararchivo

descargue dex2jar got dex-tools-2.1-SNAPSHOT.zip , descomprima got dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh, luego

sh dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f your_dex_name.dex

p.ej:

dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f com.xxx.yyy8825612.dex
dex2jar com.xxx.yyy8825612.dex -> ./com.xxx.yyy8825612-dex2jar.jar

Paso 3: jar to java src

usa una de las herramientas:

convertir jarajava src

para el efecto de conversión de jar a java src:

Jadx> Procyon> CRF>>JD-GUI

así que recomendamos usar: Jadx/jadx-gui

pasos:

  • doble clic para correr jadx-gui
  • abrir dexarchivo
  • File -> save all

p.ej:

exportado java src:


Una explicación más detallada puede ver mi tutorial en línea de chino ebook :

crifan
fuente
2

Android Studio te ofrece analizar cualquier archivo apk.

1: desde el menú de compilación, elija la opción analizar apk y seleccione el archivo apk. 2 - Esto dará como resultado el archivo classes.dex y otros archivos. 3 - Haga clic en classes.dex que le dará la lista de carpetas, paquetes, bibliotecas y archivos. 4 - Desde y la configuración de Android Studio instale un complemento llamado "Dex to Jar" 5 - haga clic en cualquier archivo de actividad de su proyecto extraído y elija dex to jar del menú de compilación.

Esto le dará el código real de su archivo java.

Salud.

Rohit Patil
fuente
1

La forma más simple es usar Apk OneClick Decompiler. Es un paquete de herramientas para descompilar y desmontar APK (paquetes de Android).

CARACTERISTICAS

  • Todas las funciones están integradas en el menú contextual de Windows.
  • Descompile las clases de APK a los códigos fuente de Java.
  • Desmontar APK a código smali y decodificar sus recursos.
  • Instala APK en el teléfono haciendo clic derecho.
  • Vuelva a compilar APK después de editar el código pequeño y / o los recursos. Durante la recompilación:
  • Optimizar imágenes png
  • Apk de la muestra
  • Zipalign

REQUERIMIENTOS

Se debe instalar Java Runtime Environment (JRE).

Puede descargarlo desde este enlace Apk OneClick Decompiler

Disfrutalo.

Masoud Mokhtari
fuente
1

Encontré lo siguiente como el método más simple:

  1. Cambie el nombre de su app.apk a app.zip (cambie la extensión de apk a zip)
  2. Extraiga el archivo zip en una carpeta
  3. Use la herramienta JADX para leer el código fuente, presente en el archivo classes.dex.
Masood Anwar
fuente
1

Hay una aplicación para eso y generalmente solo requiere unos pocos clics y ya está. https://github.com/Nuvolect/DeepDive-Android

  1. Seleccione Aplicaciones, en "Aplicaciones instaladas", seleccione su aplicación. Si no está allí, puede cargar el APK.
  2. Seleccione "Extraer APK"
  3. Seleccione "Descomprimir APK"
  4. Seleccione "Descompilar con Jadx". Esto puede demorar unos segundos o unos minutos, dependiendo de la velocidad de su dispositivo

Después de eso, puede explorar el código fuente, descargarlo a otra computadora con elFinder o buscar a través de Lucene.

Además de Jadx, tiene descompiladores CFR y Fernflower.

MobileMateo
fuente
0

He estado volviéndome loco durante días tratando de hacer que dex2jar funcione en una computadora portátil fedora 31 contra un apk que simplemente no iba a funcionar. Este script de Python 3 hizo el truco en minutos y la instalación de jd-gui hizo que los archivos de clase fueran legibles para los humanos.

http://java-decompiler.github.io/

https://github.com/Storyyeller/enjarify

específicamente, esto es lo que ejecuté:

# i installed apktool before the rest of the stuff, may not need it but here it is
$> cd /opt
$> sudo mkdir apktool
$> cd apktool/
$> sudo wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool
$> sudo wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.4.1.jar
$> sudo mv apktool_2.4.1.jar apktool.jar
$> sudo mv apktool* /usr/bin/
$> sudo chmod a+x /usr/bin/apktool*

# and enjarify
$> cd /opt
$> sudo git clone https://github.com/Storyyeller/enjarify.git
$> cd enjarify/
$> sudo ln -s /opt/enjarify/enjarify.sh /usr/bin/enjarify

# and finally jd-gui
$> cd /opt
$> sudo git clone https://github.com/java-decompiler/jd-gui.git
$> cd jd-gui/
$> sudo ./gradlew build

# I made an alias to kick of the jd-gui with short commandline rather than long java -jar blahblahblah :)
$> echo "jd-gui='java -jar /opt/jd-gui/build/launch4j/lib/jd-gui-1.6.6.jar'" >> ~/.bashrc

Ahora uno debería poder buscar lo siguiente para obtener archivos de clase:

$> enjarify yourapkfile.apk

Y para comenzar jd-gui:

$> jd-gui

¡Entonces solo abre tus archivos de clase!

RJ Cole
fuente
0

Desarrollé una herramienta - Code Analyzer, se ejecuta en iPhone / iPad / Mac, para analizar archivos Java / Android, https://decompile.io

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Qing Xu
fuente
0

Utilice esta herramienta http://www.javadecompilers.com/

Pero recientemente, una nueva ola de descompiladores ha incursionado en el mercado: Procyon, CFR, JD, Fernflower, Krakatau, Candle.

Aquí hay una lista de descompiladores presentados en este sitio:

CFR - Gratis, sin código fuente disponible, http://www.benf.org/other/cfr/ Autor: Lee Benfield

Descompilador muy bien actualizado! CFR es capaz de descompilar las características modernas de Java: módulos Java 9, Java 8 lambdas, interruptores de cadena Java 7, etc.

JD - gratis solo para uso no comercial, http://jd.benow.ca/ Autor: Emmanuel Dupuy

Actualizado en 2015. Tiene su propia interfaz visual y complementos para Eclipse e IntelliJ. Escrito en C ++, muy rápido. Soporta Java 5.

Procyon - código abierto, https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler Autor: Mike Strobel

Fernflower - código abierto, https://github.com/fesh0r/fernflower Autor: Egor Ushakov

Actualizado en 2015. Descompilador analítico muy prometedor de Java, ahora se convierte en una parte integral de IntelliJ 14. ( https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler ) Admite Java hasta la versión 6 (Anotaciones, genéricos, enumeraciones)

JAD : dado aquí solo por razones históricas. Gratis, sin código fuente disponible, espejo de descarga jad Autor: Pavel Kouznetsov

Faxriddin Abdullayev
fuente