私は通常、次のプログラムを実行します。
_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のすべての文字を入力したい。
gdb ./vuln_prog
run < filename_with_input