Entradas

Mostrando las entradas etiquetadas como Reversing estático

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 ejercicio 16 - Unpack UPX | Curso IDA Pro

Imagen
Hoy les traigo un pequeño video mostrando el proceso necesario para "unpackear" UPX desde IDA.

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

Imagen
@Jlcmux Comenzamos este examen abriéndolo y vemos que se parece bastante a los anteriores. Vemos que ahora los dos buffer "Dst" y "Dest" valen lo mismo: 0xC8=200, y también las variables "var_D4=1" y "var_D0=0x45=E". Luego igual que antes se revisa que exista el archivo y la ejecución continúa. Luego se ve que se toma un elemento de 200bytes de File y se guarda en Buff2, (El segundo buffer de 200bytes), lo siguiente es que se toma dicho elemento y con strcpy se copia a el Buff1. Lo siguiente que hace es comprobar que constante_1 sea igual que 1, pero eso ya está, entonces realmente no tendemos que hacer nada especial por ahora. En este punto vemos que se toma el valor de Buff1 que viene siendo lo que hay en el archivo y se mete a la función sub_401010 que tiene cara de ser donde se prueba que todo este bien para mostrar el mensaje de "Chico Bueno". Vemos entonces que está función toma "arg_0" que se...