Estoy intentando explotar un poco de desbordamiento de búfer a través de la terminal de Linux de un programa que he escrito para mi autoeducación. Estoy ingresando una cadena usnig scanf("%s")
y mi objetivo es sobrescribir la dirección de retorno sobre el marco de pila
mi problema es el siguiente, necesito sobrescribir la dirección de retorno para que se convierta en el valor de 0x08048934
, por lo tanto, al tomar en consideración la endianidad dentro de mi computadora, debo ingresar la secuencia del valor de byte hex de
0x34 0x89 0x04 0x08
y aquí es donde estoy encontrando dificultades ... Me parece que no puedo ingresar directamente en el terminal de Ubuntu los valores de los caracteres de ascii extendido , como el con el valor de 0x89 o 137 en decimal, que es un valor extendido ...
¿Cómo puedo superar esta dificultad y crear una cadena que contenga los siguientes valores y me permita crear la dirección deseada?
p.s. Cuando se usa ctrl
+ shift
+ u
y el valor hexadecimal 0x89, el carácter se codifica como un carácter c1 utf-8, por lo tanto, el literal I get it \xc2\x89
también puede ser poco claro, puede depender de algunas impresiones de salida del programa, como la dirección o etc. Por lo tanto, debo escribir el valor manipulado durante el tiempo de ejecución del programa (después de que haya comenzado a ejecutarse) y no antes de