Entradas

Mostrando las entradas etiquetadas como Seguridad

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...

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 Examen 2 | Curso IDA Pro (Ricardo Narvaja)

Imagen
@Jlcmux Hoy vamos a seguir con la temática del curso de IDA Pro que pueden encontrar los links en el primer post :. Bien, comenzamos abriendo el ejecutable con IDA y vemos que se parece mucho al anterior. Y de la misma forma se comprueba que exista un archivo llamado example.txt. Pero vemos que se reservan dos espacios de memoria, el primero de 0x12C=300bytes que se guarda en la variable "Dst" y luego otro de 0xC8=200bytes que se asigna a "Dest", También vemos otra variable "var_138" que se le asigna el valor de "1" y parece ser que nunca mas cambia, entonces podemos renombrarlo como "Constante_1" o algo parecido, luego se abre el archivo para comprobar que existe y la ejecución continúa.    En la segunda parte vemos que comienza usando la función "fread" con los argumentos de "File", "1" y "0xD2" y el destino será el buffer de 300. Esto quiere decir que va leer un elemento de ...