10 Pregunta: Ingeniería inversa de un archivo APK a un proyecto

pregunta creada en Thu, Aug 24, 2017 12:00 AM

Borre accidentalmente mi proyecto de Eclipse , y todo lo que queda es el archivo APK que transferí a mi teléfono. ¿Hay alguna forma de revertir el proceso de exportación de una aplicación al archivo .apk, para que pueda recuperar mi proyecto?

    
218
  1. 2012-10-04 18: 03: 01Z
  2. ¿Sabes que eclipse tiene un historial de versiones propio?
    2012-11-21 06: 53: 42Z
  3. 2014-10-06 13: 03: 18Z
  4. si está escribiendo algo importante para usted, debe usar un VCS. Bitbucket tiene repositorios privados gratuitos.
    2015-03-31 08: 15: 17Z
  5. 2018-04-28 15: 21: 36Z
10 Respuestas                              10                         

Hay dos herramientas útiles que generarán código Java (en bruto pero lo suficientemente bueno) a partir de un archivo APK desconocido.

  1. Descargue la herramienta dex2jar desde dex2jar .
  2. Use la herramienta para convertir el archivo APK en JAR :

     
    $ d2j-dex2jar.bat demo.apk
    dex2jar demo.apk -> ./demo-dex2jar.jar
    
  3. Una vez que se genere el archivo JAR, use JD-GUI para abrir el archivo JAR. Verás los archivos de Java.

La salida será similar a:

 JD GUI

    
262
2018-02-13 14: 06: 33Z
  1. cómo obtener los archivos de recursos
    2013-04-24 07: 58: 46Z
  2. cmd está en desuso, use d2j-dex2jar en su lugar (v0.0.9.15).
    2013-09-30 16: 30: 14Z
  3. Aquí hay un nuevo enlace para descargar JD-GUI
    2013-10-31 09: 47: 01Z
  4. @ HoangHuynh tendrá una carpeta res con archivos XML ilegibles
    2014-01-06 10: 21: 46Z
  5. En Mac si no puede usar dex2jar: permission denied, haga esto $sudo chmod +x d2j-dex2jar.sh
    2016-02-27 09: 25: 20Z

En primer lugar, recomiendo this video maY esto es aclarar todas sus dudas

Si no, por favor revísalo

Procedure for decoding .apk files, step-by-step method:

Step 1:

Cree una nueva carpeta y coloque el archivo .apk en ella (que desea descodificar). 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.

Si hay problemas en la conversión a .zip, consulte link

Después de obtener .zip ahora, obtienes los 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 extraiga este archivo apk zip en la misma carpeta. Ahora descargue dex2jar desde este link

y extraerlo en 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 descargue java decompiler

Y ahora haga doble clic en jd-gui y haga clic en abrir archivo. Luego abra el archivo classes.dex.dex2jar de esa carpeta. Ahora obtiene los archivos de clase y guarda todos estos archivos de clase (haga clic en el archivo y luego haga clic en "guardar todas las fuentes" en jd-gui) con el nombre src. Extraiga ese archivo zip (classes_dex2jar.src.zip) y obtendrá todos los archivos java de la aplicación.

En esta etapa, obtienes el código fuente de Java, pero los archivos xml aún son ilegibles, así que continúa.

Step 3:

Ahora abre otra carpeta nueva y coloca estos archivos

  1. ponga el archivo .apk que desea descodificar

  2. descargue Apktool para windows v1.x Y Apktool

instale la ventana usando google y colóquela en la misma carpeta

  1. 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)

  2. Abre una ventana de comando

  3. Vaya al directorio raíz de APKtool y escriba el siguiente comando:  apktool if framework-res.apk.

El comando anterior debe dar como resultado Framework installed ....

  1. 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 res/ y el código Java del proyecto, que es nuestro objetivo al comenzar.

  

P.S. Si no puede obtener la carpeta res mediante los pasos anteriores, instale el nuevo apktool

     
  • ¿Java 1.7 está instalado? Instala Apktool 2.x
  •   
  • ¿Está instalado Java 1.6 o superior? Instala Apktool 1.x
  •   

Enjoy and happy coding

    
75
2019-03-02 20: 00: 43Z
  1. realmente útil. Solo algo que no ha mencionado: el apktool.jar no está en el mismo paquete, lo obtuve de un paquete anterior y lo pegué en el mismo directorio que el apktool.
    2014-01-07 10: 56: 27Z
  2. Invertí el código, pero ¿por qué es el nombre de la clase? Las variables son como aa, bc, e.t.c y también muchos errores
    2015-01-27 07: 04: 31Z
  3. no puede hacer eso en cmd
    2015-07-15 18: 57: 04Z
  4. ¿alguna otra forma de hacerlo?
    2015-07-15 19: 00: 00Z
  5. @ user2934930 Esto significa que el código ha sido ofuscado usando ProGuard.
    2017-08-03 07: 37: 18Z

No hay software & No hay demasiados pasos ..

Simplemente carga tu APK & Obtén todos tus 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 del archivo.

nota: descompilo mi archivo APK & obtenga el código dentro de un minuteuto de este sitio web

Actualización 1 :

Encontré otro sitio de descompilador en línea,

http://www.javadecompilers.com/apk/: no funciona continuamente y solicita ventanas emergentes bloqueo

Actualización 2:

Encontré la aplicación apk del descompilador 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 el java & archivos xml en esta aplicación

Actualización 3:

Podemos usar otra opción Analizar APK de la versión de Android studio 2.2

Construir - > Analizar APK - > Seleccione su APK - > da resultados

 introduce la descripción de la imagen aquí

    
52
2017-10-11 06: 10: 27Z
  1. en el último método no podemos abrir la clase Java, solo muestra los nombres de los métodos
    2017-05-17 09: 09: 59Z
  2. @ Choletski, ¿estás probando el ShowJava? si no lo intentas & actualizame
    2017-05-17 09: 14: 07Z
  3. @ RanjithKumar está limitado a un tamaño de APK de 50 MB. Tengo un APK de 85 MB para descompilar.
    2018-03-13 12: 34: 25Z
  4. 2018-03-13 12: 42: 10Z

Hay una nueva forma de hacer esto.

Android Studio 2.2 tiene un Analizador de APK que le dará mucha información sobre apk, revíselo aquí: - http://android-developers.blogspot.in/2016/05/android-studio-22-preview-new-ui.html

 Ap

    
5
2016-06-14 06: 38: 38Z

En realidad no. Hay una serie de suites de desensamblador /descompilador dex por ahí como smali , o dex2jar que generará un resultado semi-humanreadable (en el caso de dex2jar, puede obtener un código Java a través del uso de algo como JD-GUI pero el proceso no es perfecto y es muy poco probable que Podrás recrear al 100% tu código fuente. Sin embargo, podría darte un lugar para comenzar a reconstruir tu árbol fuente.

    
4
2012-10-04 17: 54: 38Z
  1. @ MAC: ¡¡Necesita la fuente, no el archivo APK !!
    2012-10-04 17: 59: 43Z
  2. @ ShashankKadne puede estar recuperando mis palabras
    2012-10-04 18: 02: 53Z

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 del archivo de .apk a .zip. De ese archivo ZIP, extraiga el archivo classes.dex y descompírelo 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, puedes 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.

    
3
2013-02-18 20: 43: 21Z

Siga los pasos a continuación para hacer esto o simplemente use apk gema java de JavaScript para este proceso, incluso se encarga de instalar las herramientas necesarias para que funcione.

  • convierte el archivo apk a zip
  • descomprime el archivo
  • extraer classes.dex de ella
  • use dex to jar para convertir classes.dex en un archivo jar
  • use jadx gui para abrir el archivo jar como código fuente de java
2
2016-01-31 06: 24: 38Z

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 carpetas y archivos Java generados se almacenan en la carpeta ShowJava en /sdcard, junto con el archivo .jar resultante de la conversión.

La aplicación es gratuita con un anuncio en la parte inferior de la vista principal, pero hay una opción de compra dentro de la aplicación (3,99 $) para eliminarla. La compra en la aplicación no agrega ninguna funcionalidad además de eliminar el anuncio publicitario.

Divulgación: no soy el desarrollador de la aplicación ni estoy afiliado a él de ninguna manera.

    
2
2018-04-24 11: 12: 42Z

Si está buscando una alternativa profesional, eche un vistazo al JEB Decompiler de PNF Software.

Hay una versión de demostración que te permitirá descompilar la mayoría del código.

    
1
2017-05-06 16: 25: 35Z

A continuación se muestran algunas de las herramientas que puede utilizar para realizar ingeniería inversa desde un archivo APK hasta el código fuente:

  1. Dex2jar
  2. Descompilador de Java
  3. Apktool
  4. Apk Analyzer
1
2017-07-20 09: 28: 12Z
fuente colocada aquí