输入非ASCII字符到scanf(“%s”)
有没有办法可以向使用%s
的scanf发出非asciihex字符? 我正在尝试插入hex字符,如\x08\xDE\xAD
等等(以演示缓冲区溢出)。
输入不是命令行参数,而是程序内的scanf。
我假设你想在stdin上提供任意数据(因为你用scanf
读取)。
您可以使用shell创建数据并将其传输到程序中,例如
printf '\x08\xDE\xAD' | yourprogram
请注意,只有在没有空白字符输入时才会起作用(因为%s
格式的scanf
在空白处停止)。
当你说’to scanf()
‘时,可能还有其他数据供应。 是否可以使用程序(可能是Perl或Python脚本)生成数据并将非ASCII字符写入程序的标准输入? 如果您需要标准输入看起来像终端,那么您应该调查expect
哪个为您处理。 这是处理问题的常用方法。