gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:18:13 24 4
gpt4 key购买 nike

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

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

 char buffer[14]
gets(buffer);

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

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

最佳答案

您可以使用 echo 输出所需的字符,然后将其通过管道传输到您的程序中:

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

关于c - 如何通过 gets() 函数将用户输入作为十六进制字符? (Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26949856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com