我通常用以下方式运行我的程序:
perl -e 'print "A"x200' | ./vuln_prog
stdin由C ++中的gets()
函数使用。
如果这只是一个命令参数,我可以通过执行以下操作打开gdb:
gdb ./vuln_prog
run $(perl -e 'print "A"x200')
但是,我的场景不是命令参数,而是输入(STDIN?)。我如何在gdb中调试它?我尝试过很多选项,但似乎没什么用。
我通常只是在进程上运行gdb,当它提示用户输入时,输入它,但是我不想只键入“A”。我想输入来自\ x00- \ xff的所有字符,我无法输入。
答案 0 :(得分:91)
gdb ./vuln_prog
run < filename_with_input