如何将hex注入isoc99_scanf的程序集调用中

时间:2012-09-07 07:08:10

标签: hex overflow buffer inject

我正在研究一个crackme并且我发现了一个缓冲区溢出但是当我输入\ xNN时,其中N是介于0和F之间的任何东西,\和x被解释为它们自己的值。我也试过\ xNN。

该程序是一个Linux可执行文件,所以我在backtrack上运行它。 该程序处理输入,不是命令行调用的一部分。 我查看了ida中的程序,输入由__isoc99_scanf完成。

我可以输入Unicode,但04有问题所以我需要弄清楚如何使用十六进制。

如果某人有除十六进制以外的推荐,那也会很棒。

1 个答案:

答案 0 :(得分:0)

你是什么意思“不是命令行调用的一部分”?如果它在控制台上,您可以使用

perl -e 'print "\xNN" | program

甚至

perl -e 'print "\n\whatever\xNN"' | program

模拟加法输入。 stdout的输出直接进入程序的stdin,就像你输入的是chatacters一样。如果它是一个图形应用程序,你总是可以直接修补字节(说起来容易做起来难,here's how to do it on gdb)。