Resulta muy fácil decompilar una aplicación android para ver el código en el que está realizada. Por eso os voy a explicar como hacerlo en unos sencillos pasos.
Lo primero de todo es saber a qué nos referimos con ingeniería inversa. Según la wikipedia, la ingeniería inversa es:
"Obtener información o un diseño a partir de un producto, con el fin de determinar de qué está hecho, qué lo hace funcionar y cómo fue fabricado."
En nuestro caso significa que tenemos un programa ya compilado (.apk) para Android, y queremos ver el código de la aplicación, para obtener información de cómo se ha desarrollado.
Para realizar esta tarea vamos a contar con dos aplicaciones para decompilar y ver el código, más la aplicación que queremos decompilar.
Nos sirve para convertir un archivo .dex a un archivo .jar
Con esta aplicación podemos ver los ficheros .class que son los que contienen el código de la aplicación.
PASO 1
Cogemos nuestra apk de android y lo renombramos cambiando la extensión por .zip. Ahora tenemos un fichero que podemos descomprimir. Lo descomprimimos y vemos que en los ficheros hay un fichero con extensión .dex
PASO 2
Abrimos una consola y nos situamos en el directorio de Dex2jar (previamente lo hemos tenido que descomprimir) y ejecutamos el comando:
d2j-dex2jar.bat "ruta fichero .dex"
PASO 3
Nos ha creado un fichero llamado classes-dex2jar. Abrimos el programa jd-gui y abrimos ese fichero. Podemos ver y acceder a las clases que componen el programa.
hola me gustaría que me ayuden con una aplicacion para ciegos que lamentablemente bale muy cara se llama mobile accessibility existe también versiones gratis demo pero vencen a los 30 días y también existe una versión que funciona solo si tenemos una linea de at&t me gustaria que pudieran ayudarme a modificar esta aplicacion mi correo es discapacidad5@gmail.com
ResponderEliminarYa te he escrito :P
EliminarSandra me ayudas a mi please :'3
EliminarDime qué es lo que necesitas.
EliminarHey! Que lindo y funcional tema! Me parece interesantísimo ya que Android es mi sistema operativo favorito en cel. Y Aplicar ahí la ingeniería inversa me parece genial! Gracias! Les aporto este artículo https://zarza.com/ingenieria-inversa-la-gallina-o-el-huevo/ para aquellos que desean saber que es ingeniería inversa. Recomendado!
ResponderEliminarGracias!
Hola! Muchas gracias por tu comentario :) Y un buen artículo el que has puesto. Gracias.
EliminarHola Sandra que tal? estuve viendo tu video y haciendo todo tal cual lo indicas pero cuando abro el .jar resultante, es un archivo sin nada dentro (estoy intentando ver el codigo de un juego online)
ResponderEliminarHola, gracias por el comentario. Pues algunas aplicaciones tienen protección, o no necesariamente están hechas en nativo. Si quieres escribeme por google+ o al correo y me lo pasas y lo miro yo. Un saludo.
EliminarMe sirvió mucho. Gracias
ResponderEliminarDe nada, a ti ;)
EliminarMuchas gracias.. una pregunta... vez que vemos las clases en el JavaDecompiler, como lo exporto o lo convierto a un proyecto android? con copy-paste? O_o
ResponderEliminarEsto te sirve para ver algo de código, no para exportarlo todo porque ten en cuenta que algunas clases o funciones no salen. Hacer un copy-paste como poder puedes pero si te fijas los nombres de las variables y funciones han sido sustituidos en muchos casos. Un saludo.
Eliminaruna pregunta me aparece un mensaje de error cuando entro a la consola cmd como lo soluciono
ResponderEliminar¿Qué error es?
EliminarPregunta si tengo una apk la cual necesito modificar. ¿Puedo aplicar este opcion, o que opciones tengo?
ResponderEliminarClaro, necesitas tener una apk. Si puedes me pones un pantallazo o algo.
EliminarSaludos.
disculpa pero me sale esto en el cdm : "d2j-dex2jar.bat" no se reconoce como un comando interno o externo,
ResponderEliminarprograma o archivo por lotes ejecutable. me podrías orientar para solucionarlo gracias saludos ;)
Tienes que ponerte dentro del directorio donde esté ese fichero, sino no te deja ejecutarlo.
EliminarSandra saludos, estoy en el mismo caso C:\Users\SOLOTEL\Desktop\dex2jar-2.0>d2j-dex2jar.bat c: \users\solotel\desktop\mantenimiento solotel\classes.dex
Eliminar"java" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.
C:\Users\SOLOTEL\Desktop\dex2jar-2.0>
que podria hacer?
sandrita, muchísimas gracias por tus vídeos y aportes, un gran abrazo desde cucuta Colombia
ResponderEliminarme gustaria saber si puedo editar un codigo para controlar un dron
ResponderEliminar