martes, febrero 21, 2012

Ingeniería inversa en Android

 Todo desarrollador en alguna oportunidad ha tenido la necesidad o la curiosidad de realizar la "Ingeniería Inversa" a un programa para verle las tripas. 

En mi caso lo he realizado alguna vez para investigar el código de algo que me llamaba la atención, en particular lo hice muchas veces con la gxclassr.zip de GeneXus hasta que publicaron el código fuente. 

En la actualidad me encuentro investigando Android por lo que me puse a buscar herramientas que a partir de un ".apk"  me permitieran ver el código fuente. En internet encontré un documento PDF que explica muy claramente como realizar Ingeniería inversa básica en Android, de todas formas hago un resumen para los que no les gusta leer mucho.

En otro post explique que son los APK por lo que voy directo al grano:

a) Descomprimir el APK con cualquier herramienta que tengan a mano, en mi caso winrar
b) Tomar el classes.dex (Dalvik Executable) y usar el dex2jar para convertirlo a jar
c) Tomar el JAR y pasarlo por el JD-GUI

Siguiendo estos pasos podemos tener el código fuente de un apk, siempre nos podemos topar con algún código "ofuscado" o protegido con proGuard pero siempre existe forma por lo que usa google y tendrás resultados.

1 comentario:

discapacidad 5 dijo...

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