Entradas

Mostrando las entradas etiquetadas como hacking

Solución Examen 7 | Curso IDA Pro (Ricardo Narvaja)

Imagen
Para resolver el examen 7, comenzamos revisando las variables y renombrandolas, por ejemplo, var_D8 se incia en 1 al igual que var_D0 y var_D4 inicia en 45 y ningúno parece cambiar, por ende podemos cambiarles el nombre a algo mas apropiado. Además vemos que se crean dos buffer de 200 en Dst y Dest, entonces les pongo nombres como Buff1_200 y Buff2_200.  Al final como siempre verifica que exista el archivo example.txt Sin muchos cambios, extraen 200 bytes del archivo, se guarda en buff1 y luego se copia en buff2 y como ambos son de 200bytes no hay problemas. Al final verifica que constante 1 sea 1. Luego vamos a la función de checkeo que tiene como puntero la variabe File. y en la función se hace un _sprintf de el string "Bieeeeeeeeeeeeeeeeeeeen ? con %s" y hace un sprint f de esto al puntero mas 0xDC y más abajo pasa lo mismo al comrobar que un valor +0xD0 es 45. Entonces nos ayudamos creando una estructura con las variables. Con esto comprobamos que el ...

Solución Examen 6 | Curso IDA Pro (Ricardo Narvaja)

Imagen
Hola, hoy dejaré este video de como resolver el examen 6 del curso IDA PRO. Sigueme en twitter: @jlcmux

Solución Examen 5 | Curso IDA Pro (Ricardo Narvaja)

Imagen
Para comenzar le damos una mirada general. Vemos que al principio se crea un espacio en memoria de 0x1A0=416bytes y luego se guarda en var_8 pero es movido a var_4. Luego vemos que en var_4 + 0xCC se guarda "1" y en var_4 + 0xD0 se guarda "45". Después con la función "memset" se crean dos espacios más en las posiciones var_4+0xD8 y var_4+4, ambos con el mismo tamaño de 0xC8=200bytes.  E igual que en los ejercicios anteriores se comprueba que exista un archivo llamado "example.txt"   Todo esto apunta que será mas fácil resolverlo creando una estructura de 0x1A0 bytes para posicionar todo. La estructura queda así: Y si reemplazamos los nombres queda: Luego de revisar si existe el archivo, se lee 1 elemento de 200 bytes en el archivo y se guarda en Buff_1, y se hace un strcpy de buffer_1 a buff_2. Y hasta aquí no hay problema porque ambos buffer se crearon con tamaño de 200. Y al final se comprueba que el buff donde se guardó ...

Solución ejercicio 26 - Estructuras | Curso IDA Pro

Imagen
Hoy vamos a resolver el ejercicio propuesto en el tomo numero 26 del curso de IDA Pro que fue planteado aquí Para comenzar, abrimos y vemos una serie de variables que luego se inicializan en 0, y si vemos las referencias no vuelven a ser usadas, al menos no en la función main. Vemos que Security_cookie se mueve a eax y posteriormente se guarda en Var_4 luego de ser "xoreada" con ebp, Por lo tanto Var_4 será la flag Security_cookie.   Luego podemos ver algunas llamadas a funciones a las cuales se les pasa como argumento dos variables diferentes "buf" y "var_44" así que probablemente sean dos buffer diferentes. Si ingreso a cualquiera de esas funciones veo que se realizan operaciones con base al puntero, pero en diferentes puntos, lo que lleva a pensar que se trata de una estructura, o probablemente dos. En la primera por ejemplo, vemos un printf de el string "please..." y luego un scanf para solicitar un dato en con...

Solución Examen 3 | Curso IDA Pro (Ricardo Narvaja)

Imagen
@Jlcmux Hoy trataremos de resolver el Examen 3 de este grandioso curso. Primero como siempre, abriremos el ejecutable con IDA vemos que comienza exactamente igual que el examen anterior Se crean los mismos buffer con los mismos tamaños y revisa la existencia de el mismo archivo. Luego el siguiente paso también es igual que el ejercicio anterior, así que entramos a la función. En mi caso le puse el nombre "Checkeo". La función es la misma excepto por una función interna que no estaba antes, y está justo antes de mostrar el mensaje de "chico bueno". Si entramos vemos que tiene una variable "Str1" y un argumento, dicho argumento viene siendo el "Buffer_200" que para el momento que se ejecuta esta función es el contenido del archivo. Vemos también que se mueve "1" a eax y ese valor luego se multiplica por 0x28=40, luego se toma ese valor con movsx, es decir, ecoge el byte numero 41 del archivo. Luego vemos q...

Solución a reto "Serial.exe" CTF | CrackMe Solution

Imagen
Hola Soy @Jlcmux . El día de hoy resolveremos un reto de reversing llamado "serial.exe" el cual fué desarrollado por @4v4t4r para la versión online del CTF ofial del BarcampSE 2017. Aunque el sitio ya está offline pueden encontrar todos los retos en este Github . Para comenzar el reto, lo ejecutamos y vemos que nos pide un correo electrónico y un serial válido. Luego de esto, revisamos si el ejecutable tiene algún tipo de packer especial que evite que sea reversado facilmente. Esto lo podremos hacer con DIE (Detect It Easy). Vemos que hicieron uso de UPX, afortunadamente el mismo upx permite desempaquetarlo, así que lo hacemos. Ahora podremos abrirlo con IDA y comenzamos a observar lo que sucede. Para comenzar vemos que se declaran bastantes variables y comienza a ejecutarse el programa hasta que comienza mostrando el string "Ingrese su Email". Vemos también que se llama la función "__ZL6printfPKcz" que parece ser un Printf...