私はソフトウェアセキュリティクラスに所属しており、現在、バッファオーバーフローとその悪用方法について学習しています。私は悪用する方法を知っているプログラムを持っていますが、それが私に書くことを許さない16進数を書かなければならないので、私はそうすることができないようです。
以下から生成されたデータを書き込む必要があります。
perl -e 'print "A"x48; print "\x1b\x88\x04\x08";'
ただし、プログラムは対話形式で実行されるため、その出力をコマンドライン引数にリダイレクトすることはできません。これまで、xclipを使用してクリップボードにコピーし、実行中のアプリケーションに貼り付けてきましたが、何らかの理由で、この16進数のシーケンスでは、xclipを使用してコピーすることはできません(何もコピーされていないことを示しています)。
例えば:
perl -e 'print "A"x48; print "\x1b\x88\x04\x08";' | xclip -sel clip
その後ctrl+Vを押すと、何も貼り付けられません。ターミナルウィンドウからの出力をコピーして貼り付けるだけでは、間違った16進数が貼り付けられます(これは、16進数がASCIIで表示されないためだと思います)。
私の質問は次のとおりです。GDBには、このように生成されたテキストをインタラクティブな実行中のプログラムに挿入する方法がありますか?
悪用可能なプログラムがコマンドライン引数を使用した場合、次のことができることを認識しています。
run $(perl -e 'print "A"x48; print "\x1b\x88\x04\x08";')
ただし、CLI引数を介して実行されないため、これは使用できません。
どんな助けでも素晴らしいでしょう!