Resolviendo Crackme con Retdec

  • 0 Respuestas
  • 4255 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado rollth

  • *
  • Ex-Staff
  • *****
  • Mensajes: 876
  • Actividad:
    0%
  • Reputación 16
  • El conocimiento es libre.
  • Twitter: @RoloMijan
    • Ver Perfil
    • Whateversec
    • Email

Resolviendo Crackme con Retdec

  • en: Enero 05, 2018, 11:59:08 am
Muy buenas Underc0ders,

este es el tercer post que escribo en el que resuelvo un crackme, y en ninguno de ellos he utilizado nada de reversing, ya que es un tema que aún tengo muy flojo, pero está bien ver formas alternativas, aquí podeis ver los otros dos a los que me refiero.

You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Bueno, ¿qué mas ideas me quedan? pues hoy vamos a decompilar el ejecutable, seguro que ya conoceis algunos decompiladores para lenguajes como C# o JAVA, y pensais que si el ejecutable está programado, por ejemplo en C, no se puede obtener el código fuente, me toca decir que aunque en principio debería ser así se le puede sacar una puntillita.

Hoy vamos a ver una herramienta llamada retdec que hará justo esto que nosotros queremos, retdec es una herramienta muy potente y open source que nos permitirá hacer esto que nosotros queremos. Fue desarrollada por el equipo de AVAST para poder practicar reversing al malware de una forma más sencilla.

Todo lo que necesitamos para descargarlo y compilarlo está You are not allowed to view links. Register or Login, además de una guía de instalación, así que no gastaré tiempo en esto.

Yo voy a partir de un ejecutable compilado con C para Linux de 32 bits, el cuál se llamará a.out.



Vamos a ejecutarlo a ver como funciona.



Tiene un proceso simple, introducimos la contraseña y nos dice si es correcta o incorrecta, ahora vamos a probar a decompilarlo a ver que nos devuelve esta herramienta.

Código: Bash
  1. decompile.sh a.out



Vemos que nos ha creado un archivo llamado a.out.c, así que le vamos a imprimir por pantalla a ver que nos dice.
Código: Bash
  1. cat a.out.c



Vemos que basicamente comprueba que el valor introducido sea 725, y ya dependiendo de eso dice si la password está bien o es erronea, veamos si es así realmente en el binario compilado.



Ya estaría completado, el código que use para el CrackMe es el siguiente.

Código: C
  1. #include <stdio.h>
  2.      
  3. int main(){
  4.            
  5.    int password2;
  6.    int password = 725;
  7.            
  8.    You are not allowed to view links. Register or Login("%d", &password2);
  9.            
  10.    if(password == password2){
  11.       You are not allowed to view links. Register or Login("Password Correcta");
  12.    }
  13.    else{
  14.       You are not allowed to view links. Register or Login("Password Incorrecta");
  15.    }
  16.      
  17. }
  18.  

Podemos ver que el código es parecido pero no es exactamente el mismo, la cuestión es que nos ha sacado un código comprensible a partir de un binario y hemos podido evitar hacer procesos más complejos con alguna herramienta como IDA o OllyDBG.

Espero que les haya gustado y servido.

También me pueden seguir en Twitter si les hace ilusión: You are not allowed to view links. Register or Login

Saludos.
« Última modificación: Abril 01, 2018, 10:19:25 am por rollth »

Rollth
Buen hacker mejor persona.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

 

Despiezando Crackme Underc0de

Iniciado por rollth

Respuestas: 0
Vistas: 2144
Último mensaje Octubre 25, 2017, 10:38:20 pm
por rollth
Resolviendo el Code Invite de Hack The Box

Iniciado por ANTRAX

Respuestas: 1
Vistas: 10030
Último mensaje Octubre 26, 2018, 10:05:03 pm
por crist12ben
Resolviendo el CTF: RickdiculouslyEasy: 1 @ VulnHub.com

Iniciado por shadkz.

Respuestas: 2
Vistas: 4228
Último mensaje Noviembre 03, 2017, 08:29:17 am
por shadkz.
Resolviendo CrackMe con Pipes

Iniciado por rollth

Respuestas: 1
Vistas: 2919
Último mensaje Junio 30, 2017, 04:51:31 pm
por blackdrake