studio sacar proyectos para inversa ingenieria fuente ejemplos descomprimir descargar decompilar codigo aplicaciones android android-resources decompiling apk
http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=

android - sacar - ingenieria inversa apk



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

El disco duro de mi computadora portátil acaba de fallar 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?


Abajo herramienta en línea:

http://www.javadecompilers.com/apk

lo hace TODO con un solo clic: archivos .java descompilados + recursos + xml (en un archivo .zip) con muy buen descompilador (jadx devuelve el código java en lugares / funciones donde otros compilan comentarios dentro de una función como "no se puede descompilar" o algunos ensamblador de android / código de máquina)


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

  1. descargue apktool.bat (o apktool para Linux) y apktool_<version>.jar desde http://ibotpeaches.github.io/Apktool/install/
  2. cambia el nombre del archivo jar desde arriba a apktool.jar y coloca ambos archivos en la misma carpeta
  3. abra un cuadro de dos ( cmd.exe ) y cambie a esa carpeta; verifique que se haya instalado un entorno Java (para Linux, consulte también las notas sobre las bibliotecas requeridas)
  4. Inicio: apktool decode [apk file]

    Resultado intermedio : archivos de recursos, AndroidManifest.xml

  5. Descomprima el archivo APK con un desempaquetador de su elección

    Resultado intermedio : classes.dex

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

    Resultado intermedio : classes_dex2jar.jar

  8. descomprimir classes_dex2jar.jar (puede ser opcional dependiendo del decompilador usado)
  9. descompilar sus 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 será muy probablemente ofuscado.


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

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


Estos dos artículos describen cómo combinar el uso de apktool y dex2jar para tomar un archivo APK y crear un proyecto de Eclipse que pueda compilarlo 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. Usa apktool para obtener los archivos de recursos de la apk
  2. Use dex2jar para obtener un archivo jar que contenga las clases en un formato que le guste a Eclipse.
  3. Cree un punto de proyecto Eclipse en los archivos de recursos y el 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 , JDGui en una clase dentro de Eclipse y JDGui
  7. Elimine esa clase del archivo jar (para que no tenga la misma clase definida varias veces)
  8. Ejecutarlo.

Forma sencilla: utilice 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 el archivo .apk que desea descodificar.

  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 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 NUEVA CARPETA).

  2. Descarga dex2jar y extráelo a la misma carpeta (o NUEVA CARPETA).

  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 NUEVA CARPETA). Luego escriba d2j-dex2jar classes.dex (para mac terminal o ubuntu escriba ./d2j-dex2jar.sh classes.dex ) y presione enter. Ahora tiene el archivo classes.dex.dex2jar en la misma carpeta.

  5. Descargue java decompiler , haga doble clic en jd-gui, haga clic en abrir archivo y abra el archivo classes.dex.dex2jar de esa carpeta: ahora obtiene los archivos de clase.

  6. Guarde todos estos archivos de clase (en jd-gui, haga clic en Archivo -> Guardar todas las fuentes) por el nombre de la fuente. En esta etapa, obtiene la fuente java pero los archivos .xml aún no se pueden leer, así que continúe.

Paso 3:

Ahora abre otra nueva carpeta

  1. Ponga en el archivo .apk que desea descifrar

  2. Descargue la última versión de apktool AND apktool install window (ambos pueden descargarse desde el mismo enlace) y colóquelos en la misma carpeta

  3. Abrir una ventana de comando

  4. Ahora ejecute el comando como apktool if framework-res.apk y siguiente

  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.

Etapa 4:

No es un paso, simplemente copie el contenido de ambas carpetas (en este caso, ambas carpetas nuevas) a la única.

y disfruta del código fuente ...


Hay algunas maneras de hacer esto:

  1. Utilice la función "Profile or Debug APK" en Android Studio 3.0.

    Te permite abrir y explorar APKs 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 características smali adicionales podrían funcionar con smalidea .

  2. Usa jadx .

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

  3. Utilice apktool .

    Apktool es una herramienta de línea de comandos que extrae recursos y descompila código en smali para un apk determinado. 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...


Personalmente recomiendo Show Java Android App para obtener el código fuente. Puedes descargarlo desde Play Store o desde here



Puedes probar DexPatcher . Incluso se integra con Android Studio. Utiliza apktool y Dex2Jar internamente.
Puedes usar esas herramientas de forma independiente también. apktool descompila apk y extrae archivos .dex, que se pueden convertir en archivos jar utilizando Dex2Jar. Jar puede ser descompilado utilizando JD-GUI . Puedes ver el código de 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 estropean el código para dificultar su descompilación / comprensión. p.ej. Proguard


Si bien puedes descompilar tu archivo APK , es probable que encuentres un gran problema:

No va a devolver el código que escribiste. En cambio, devolverá lo que sea el compilador en línea, con variables con nombres aleatorios y funciones con nombres aleatorios. Podría tomar mucho más tiempo tratar de descompilarlo y restaurarlo en el código que tenía, de lo que será comenzar de nuevo.

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

Y como respaldarlo.


También hay una nueva aplicación en Play Store con la que es posible descompilar una 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 ni nada mas.

Solo instálalo y diviértete. Creo que esta es la forma más fácil de descompilar una aplicación.


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

Puedes seguir los primeros 2 pasos de " prankul garg ". Así que tienes otras oportunidades:

Paso 3'':

Descargue el "JD-GUI" , que es fácil de encontrar este. 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 .

Asi que,

1er - Tienes que cambiar el nombre del archivo .apk a .zip

2º: tienes que decodificar el archivo .dex (si quieres, decodifica el archivo .apk a dex2jar , eso es posible)

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


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 icono y main.xml, están perfectamente bien y puede que valga la pena su tiempo para al menos recuperarlos. En última instancia, lo más probable es que tenga que volver a escribir su código Java desde cero.

Puedes encontrar apktool here . Simplemente descargue apktool y la ayuda adecuada (para Windows, Linux o Mac OS). Recomiendo usar una herramienta como 7-zip para descomprimirlos.


apktool es lo mejor que puedes probar. He guardado algunos XML, pero honestamente 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 gratis svn y git repos.


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

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

Hace posible depurar el código smali paso a paso. También facilita el trabajo con una aplicación debido a la estructura de archivos tipo proyecto y la automatización de algunas tareas repetitivas como la creación de apk, etc.

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


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

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

Sin embargo, esta es una manera sencilla de "abrir" la aplicación de Android.