REVERSE ENGINEERING 1

Uno de los principales peligros de las aplicaciones móviles es el llamado reverse engineering. Fácilmente, y mediante una serie de aplicaciones, podemos adivinar código, api keys, encription keys, usernames, contraseñas etc..

Los desarrolladores,  usan ProGuard para ofuscar el código y viene por defecto con Android SDK, aunque sea una fabulosa herramienta, no asegura que el código carezca de vulnerabilidades. Otra manera de ofuscar el código es hacerlo difícil de leer y más confuso a la vista del atacante.

Para este reto necesitaremos la instalación de dos aplicaciones, para hacer  el llamado reverse engineering a una APK. Estas son Dex2jar y JDGUI.

Con la primera de ellas, la llamada dex2jar, convertiremos el APK en un fichero java (jar). Posteriormente lo abriremos con JD-GUI y trataremos de buscar las vulnerabilidades o cualquier pista de código que nos facilite acabar el reto.

Tenemos que investigar sobre el código y sacar la key

1.Conectamos por adb:
logan@loganayala:~$ adb connect 192.168.1.46
connected to 192.168.1.46:5555

2.Pasamos el fichero a nuestro ordenador:
logan@loganayala:~$ adb pull /sdcard/com.mobshep.reverseengineer-1.apk /home/logan
/sdcard/com.mobshep.reverseengineer-1.apk: 1 file pulled. 11.3 MB/s (2010243 bytes in 0.169s)

3.Convertimos el fichero en .jar con Dex2Jar:
logan@loganayala:~/MobilePentesting/Retos/ReverseEngineer/dex2jar-2.0$ sudo sh d2j-dex2jar.sh -f /home/logan/MobilePentesting/Retos/ReverseEngineer/1/reverseengineer-1.apk
dex2jar /home/logan/MobilePentesting/Retos/ReverseEngineer/1/reverseengineer-1.apk -> ./reverseengineer-1-dex2jar.jar

4.Una vez tenemos el .jar, lo abrimos con JD-GUI:
logan@loganayala:~/MobilePentesting/Retos/ReverseEngineer/jd-gui/build/libs$ java -jar jd-gui-1.6.6.jar

Por último vemos que en la clase Reverse_Engineering.class, tenemos el secret string con la clave DrumaDrumaDrumBoomBoom.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *