Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何通过get()函数将用户输入作为十六进制字符?(Linux)_C_Linux - Fatal编程技术网

C 如何通过get()函数将用户输入作为十六进制字符?(Linux)

C 如何通过get()函数将用户输入作为十六进制字符?(Linux),c,linux,C,Linux,大家好,我正在学习缓冲区溢出,并正在研究如何输入正确的攻击负载,从而修改c程序中特定函数的返回地址 下面是一个字符大小为0-13(0-12+Null)的数组的示例,我的目标地址是 0x080484C7 char buffer[14] gets(buffer); 我已经确定了返回地址在堆栈上的位置,但是,通过使用get()函数的用户输入,我无法正确输入地址,并尝试输入\xC7\x84\x04\x08来指定十六进制,但它会将每个反斜杠、数值和字母作为(ascii)输入错误的十六进制值

大家好,我正在学习缓冲区溢出,并正在研究如何输入正确的攻击负载,从而修改c程序中特定函数的返回地址

下面是一个字符大小为0-13(0-12+Null)的数组的示例,我的目标地址是 0x080484C7

 char buffer[14]
 gets(buffer);    
我已经确定了返回地址在堆栈上的位置,但是,通过使用get()函数的用户输入,我无法正确输入地址,并尝试输入\xC7\x84\x04\x08来指定十六进制,但它会将每个反斜杠、数值和字母作为(ascii)输入错误的十六进制值


如何在linux中通过用户输入通过gets函数输入特定的十六进制值?

您可以使用
echo
输出所需的字符,然后将其导入程序:

echo -e "\xC7\x84\x04\x08" | ./yourprogram

十六进制也是一个整数。