BimoZX
yo descargué Administrador de APK eso me permite descomprimir archivos APK.
Pero solo lo desempaqueta y no descompila el archivo .smali a .java.
¿Es posible descompilar .smali a .java?
Aleadam
No, APK Manager descompila la .dex
archivo en .smali
y binario .xml
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 desempaquetará (útil solo si desea intercambiar imágenes .png).
No hay ninguna herramienta disponible para descompilar de nuevo a .java
archivos y lo más probable es que no sea ninguno. Hay una alternativa, que es usar dex2jar para transformar el archivo dex en un .class
y luego use un descompilador jar (como el gratuito jd-gui) a texto sin formato java. Sin embargo, el proceso está lejos de ser óptimo y no generará un código que funcione, pero es lo suficientemente decente como para poder leerlo.
dex2jar: https://github.com/pxb1988/dex2jar
jd-gui: http://jd.benow.ca/
Editar: Sabía que había en algún lugar aquí en SO una pregunta con respuestas muy similares… descompilando DEX en el código fuente de Java
-
Entonces, ¿cómo empaquetar los archivos editados (.java/.class/.smali/.jar) nuevamente en un archivo apk? Por favor, ayuda.
-Ashok Raj
13 de abril de 2012 a las 12:51
-
JD-GUI se acerca bastante, pero no lo suficiente.
–Kevin Parker
5 de junio de 2012 a las 19:21
-
@Aleadam ¿Te refieres a APK Manager o APKTool? No encontré una página de instalación en ninguna parte para el administrador de APK. Sin embargo, APKTool “descompila el archivo .dex en .smali y .xml binario en xml legible por humanos”, como dijiste.
– Igor Ganapolski
11 de septiembre de 2012 a las 18:10
-
JD-GUI está un poco desactualizado ahora. Pruebe algunas herramientas de línea de comandos como CFR o Krakatau para versiones más nuevas de Java.
– toster-cx
3 oct 2017 a las 21:38
Gomino
Hay una nueva plataforma cruzada (java) y una herramienta de código abierto que le permiten hacer eso, solo haga el pago https://bytecodeviewer.com
=========
EDITAR: a partir de abril de 2017, hay una nueva herramienta de código abierto desarrollada por Google, que está destinada a hacer exactamente lo que hemos estado buscando => https://github.com/google/android-classyshark
-
Esta herramienta aparece con
Java exception
al inicio– fnc12
18 de septiembre de 2016 a las 10:27
-
Una solución sencilla para
Java exception
al inicio se ejecutaría con jdk7 en la línea de comandos:java -jar BytecodeViewer x.y.z.jar
. Para asegurarse de que está trabajando con jdk7, verifique la salida dejava -version
– Denolk
20 de octubre de 2016 a las 13:18
-
Classyshark no genera código Java. Citando la descripción: “Puede explorar de manera confiable cualquier ejecutable de Android y mostrar información importante, como interfaces de clase y miembros, conteos de dex y dependencias”.
–Jack Miller
31 de enero de 2018 a las 6:22
-
El enlace correcto para classyshark es este: github.com/google/android-classyshark
– Señor Washington
30 de mayo de 2019 a las 11:10
-
Classyshark no funciona en absoluto. Me muestra todas las funciones sin cuerpo. Todas las funciones aparecen como función Nombre() { … } Bastante inútil. Y BytecodeViewer es extremadamente lento y tiene muchos problemas para descompilar varias funciones que dicen “No se pudo descompilar”. Tengo una mejor experiencia con JADX. Es muy rápido, tiene un gran editor de texto a color, una buena funcionalidad de búsqueda y aunque tampoco puede descompilar algunas funciones, funciona mucho mejor.
– Elmue
7 de diciembre de 2021 a las 3:48
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 sus archivos fuente apk y no tiene problemas con los archivos .smali. Aquí hay un enlace http://www.hensence.com/en/smali2java/
-
Explique, por favor, ¿por qué mi respuesta fue rechazada?
– Daryn
31 de enero de 2014 a las 5:15
-
No sé por qué otros votan negativamente, pero podría deberse a que el enlace es para descargar un archivo .exe de Windows sin fuente. Sería bastante irresponsable que alguien ejecutara este archivo.
– Cielo Kelsey
06/04/2014 a las 22:38
-
¡Gracias, esto me acaba de salvar, después de que mi borrador se bloqueó durante un guardado y perdí 2 clases! Obtuve el apk de compilación y me salvó de volver a escribir
– RuAware
14 de junio de 2015 a las 11:55
-
este sitio ha sido considerado malicioso por firefox y norton/symantac para windows buscar.norton.com
– Ravi Parek
06/10/2015 a las 21:21
-
El enlace de descarga está caído.
–Zirui Wang
13 de septiembre de 2017 a las 2:21
Cristóbal
mi recomendación es Estudio de diez virtuosos. La herramienta es gratuita pero sugieren una donación. Combina todos los pasos necesarios (desempaquetar APK, baksmaliing, descompilar, etc.) en un proceso de importación basado en la interfaz de usuario fácil de usar. En cinco minutos debería tener el código fuente de Java, menos de lo que se necesita para averiguar las opciones de la línea de comandos de una de las herramientas mencionadas anteriormente.
Descompilar smali a Java es un proceso inexacto, especialmente si los artefactos smali pasaron por un ofuscador. Puede encontrar varios descompiladores en la web, pero solo algunos de ellos aún se mantienen. Algunos le darán mejor código 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 de forma inmediata. Virtuous Ten Studio viene con varios descompiladores de Java gratuitos incorporados para que pueda probar fácilmente diferentes descompiladores (el paso “Generar fuente de Java”) para ver cuál le da los mejores resultados, ahorrándole el tiempo para encontrar esos descompiladores usted mismo y calcular saber cómo usarlos. Entre ellos está CFR, que es uno de los pocos descompiladores gratuitos y aún mantenidos.
Como resultado, recibe, entre otras cosas, una estructura de carpetas que contiene todo el código fuente de Java descompilado. Luego puede importar esto a IntelliJ IDEA o Eclipse para su posterior edición, análisis (por ejemplo, Ir a definición, Buscar usos), etc.
Secundo que.
Dex2jar generará un jar de TRABAJO, que puede agregar como fuente de su proyecto, con los xml que obtuvo de apktool.
Sin embargo, JDGUI genera archivos .java que, en la mayoría de los casos, tienen errores.
Tiene algo que ver con la ofuscación del código, supongo.
Parámetro
Para obtener una vista práctica de la conversión de archivos .apk en archivos .java, simplemente eche un vistazo https://www.youtube.com/watch?v=-AX4NYE-9V8 video . Obtendrá más beneficios y entenderá claramente. Demuestra claramente los pasos necesarios si está utilizando mac OS
.
El requisito básico para hacer esto. 1. http://code.google.com/p/dex2jar/