Ingenieria inversa de Android Apps
23 Feb 2016
Alguna vez te has preguntado qué hay dentro de una App en Android?, ciertamente uno quiere intrusear en el código para aprender, pero esto también puede tener otras intenciones, como por ejemplo para verificar que hace realmente una App con nuestros datos, como el tan comentado caso de la App desarrollada por Subtel para Chile, donde en mi humilde el desarrollador tuvo que trabajar apurado, y ni las mínimas recomendables prácticas fueron seguidas, pero bueno ese es otro tema, seguramente para un futuro post.
Volviendo al tema original, hay un punto importante, la Ingeniería Inversa o la decodificación de software esta prohibido en algunos paises, es mas, en algunos es penado por ley, por lo que lo que continuar leyendo y ejecutar este proceso será únicamente de tu responsabilidad y espero que se realice con fines académicos o de investigación.
A las herramientas!
Lo primero que deberás hacer es obtener el APK, y aunque hay muchas formas de obtener una copia del software, la más simple para mi ha sido usando el servicio proporcionado por APK Pure, donde usando un sitio web puede descargar el APK. Si, existen otros métodos, pero tiendo a trabajar desde una tablet, chromebook o en equipos donde no puedo instalar mucho software para uso personal. Entonces, en este ejemplo descargamos Maqui una app que he desarrollado hace algún tiempo, la cual puedes ver en Google Play.
Entonces el proceso es simple, abrimos APK Pure y pegamos el enlace completo en la barra de búsqueda, y le hacemos click al icono de búsqueda. Luego, nos aparecera la opcion de “Download APK”.
Luego de descargar la APK viene la magia: usaremos otro servicio en línea para desempaquetar la APK y convertir los binarios de vuelta al código fuente, y así leer y aprender sobre cómo el desarrollador ha programado esta App.
Seleccionamos la APK que deseamos analizar, seleccionamos un decompilador, para este caso recomiendo Jadx y le damos a “Upload and Decompile”.
Una vez finalizado el proceso, se nos presenta el código fuente que puede ser examinado en línea, o podemos usar la opción “Save” para descargar todo de una vez en un archivo comprimido (ZIP). Como siempre, la parte más “jugosa” se encontrará dentro de la carpeta “com” y listo, eso es todo amigos!
Happy Coding!