Soy nuevo en los ataques de desbordamiento de búfer y estoy tratando de hacer lo mismo en un código c de muestra que tengo.
- Tengo tres variables a, b y buffer.
- a y b tienen valores asignados a ellos en el propio código. buffer toma de forma interactiva la entrada del usuario. El valor de 'buffer' es no tomado del argumento.
- Mi intención es desbordar el búfer para que sobrescriba b con un valor deseado. Sobrescribir EIP o ESP no es la intención aquí.
- Con gdb pude averiguar que si transmito un número determinado de valores, sobrescribiría el valor de la variable b.
- Sin embargo, estoy atrapado aquí porque gdb no me permite escribir o pegar Caracteres ASCII que corresponden al valor deseado de b. por ejemplo considera 1356 es el valor deseado. El hex para el mismo es 0x0000054C. Así que para sobrescribir b, debo dar en el ASCII de 4C, 05, 00 y 00 en gdb como los últimos cuatro bytes de la entrada respectivamente. Desafortunadamente esto no es posible.
- Otra forma que encontré en la web es pasar los valores hexadecimales usando perl Sin embargo, este método canaliza la salida de Perl al argumento del código. La variable que estoy desbordando aquí toma su valor del usuario entrada mientras se ejecuta el programa de forma interactiva y no desde el argumento del programa.
¿Hay alguna forma de pasar valores hexadecimales a parámetros sin argumentos para realizar un desbordamiento de búfer basado en la pila?