如何将十六进制注入isoc99_scanf的程序集调用中



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

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

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

如果有人有一个除了hex以外的推荐,那也太好了。

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

CCD_ 1。

甚至

CCD_ 2。

以模拟加法输入。stdout的输出直接进入程序的stdin,就像您在键入聊天器一样。如果它是一个图形应用程序,你总是可以直接修补字节(不过说起来容易做起来难,下面是如何在gdb上进行修补)。

最新更新