Decompile archivos .smali en un APK

Descargé APK Manager que me permite descomprimir archivos APK.

Pero sólo lo descomprime y no descompila el archivo .smali a .java.

¿Es posible descompilar el .smali a .java?

No, APK Manager descompila el archivo .smali en .smali y .xml binario a xml legible por humanos.

La secuencia (basada en APK Manager 4.9) es 22 para seleccionar el paquete, y luego 9 para descompilarlo. Si presiona 1 en lugar de 9, simplemente lo descomprimirá (útil sólo si desea intercambiar imágenes .png).

No hay ninguna herramienta disponible para descompilar de nuevo a archivos .java y lo más probable es que no lo sea. Hay una alternativa, que está usando dex2jar para transformar el archivo dex en un archivo .class , y luego usar un descompilador jar (como el jd-gui libre) a java de texto plano. El proceso está lejos de ser óptimo, sin embargo, y no generará código de trabajo, pero es bastante decente para poder leerlo.

Dex2jar: http://code.google.com/p/dex2jar/

Jd-gui: http://jd.benow.ca/

Edit: Yo sabía que había en algún lugar aquí en SO una pregunta con respuestas muy similares … decompiling DEX en código fuente de Java

Dex2jar ayuda a descompilar tu apk pero no al 100%. Tendrá algunos problemas con los archivos .smali. Dex2jar no puede convertirlo a java. Conozco una aplicación que puede descompilar tus archivos fuente apk y ningún problema con los archivos .smali. Aquí hay un enlace http://www.hensence.com/en/smali2java/

Hay una nueva plataforma cruzada (java) y una herramienta de código abierto, que le permiten hacer eso, sólo checkout https://bytecodeviewer.com

Introduzca aquí la descripción de la imagen

Unesdoc.unesco.org unesdoc.unesco.org

EDIT: A partir de abril de 2017, hay una nueva herramienta de código abierto desarrollado por google, que está destinado a hacer lo que hemos estado buscando => http://classyshark.com

Mi recomendación es Virtuous Ten Studio . La herramienta es gratuita pero sugieren una donación. Combina todos los pasos necesarios (descomprimir APK, baksmaliing, descompilación, etc.) en un proceso de importación basado en la interfaz de usuario fácil de usar. Dentro de cinco minutos debe tener Java código fuente, menos de lo que se necesita para averiguar las opciones de línea de comandos de una de las herramientas mencionadas anteriormente.

Descomponer smali a Java es un proceso inexacto, especialmente si los artefactos smali pasaron por un obfuscator. Usted puede encontrar varios decompilers en la web, pero sólo algunos de ellos todavía se mantienen. Algunos te darán código mejor descompilado que otros. Lea "mejor" como en "más comprensible" que otros. No espere que el código Java de ingeniería inversa se compile fuera de la caja. Virtuous Ten Studio viene con múltiples descompiladores Java integrados para que puedas probar fácilmente diferentes descompiladores (el paso "Generar fuente Java") para ver cuál te da los mejores resultados, ahorrándote tiempo para encontrar esos descompiladores tú mismo y la figura Cómo usarlos. Entre ellos está el CFR, que es uno de los pocos descompiladores libres y aún mantenidos.

Como salida recibe, entre otras cosas, una estructura de carpetas que contiene todo el código fuente Java descompilado. A continuación, puede importar esto a IntelliJ IDEA o Eclipse para editarlos, analizarlos (por ejemplo, ir a la definición, buscar usos), etc.

Secundo que.

Dex2jar generará un frasco WORKING, que puede agregar como fuente del proyecto, con los xmls que obtuvo de apktool.

Sin embargo, JDGUI genera archivos .java que tienen, más a menudo que no, errores.

Tiene algo que ver con ofuscación de código, supongo.

Para obtener la vista práctica de convertir archivos .apk en archivos .java, solo tienes que consultar el video https://www.youtube.com/watch?v=-AX4NYE-9V8 . Obtendrá más beneficios y entender claramente. Demuestra claramente los pasos que se requieren si está utilizando el mac OS .

El requisito básico para hacer esto. 1. http://code.google.com/p/dex2jar/
2. http://jd.benow.ca/

  • Conversión directa .java a .smali. ¿Posible?
  • ¿Cómo generar el gráfico de llamadas desde Android APK?
  • Transformación automática del código dex de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.