嗨,我想在程序在python -c 'print "\x90"*52'中启动时运行python命令GDB,就像我在执行时要执行的那样:python -c 'print "\x90"*52' | ./myProg。有谁知道实现此目的的任何方法吗?

到目前为止我一直在尝试什么: “ * 52'`run
运行`python -c'print” \ x90“ * 52'`

如果我没有在正确的StackExchange论坛上提问,我深表歉意。谢谢。

编辑

这是一个有用的链接,我发现它在谈论输入有效负载重定向:管理用于有效负载注入的输入?

评论

我通常将输出保存到文件中并执行“ r
@Amirag我刚刚尝试了这个。看起来一切正常,非常感谢!请为此主题创建答案,这样我就可以将该主题标记为“已回答”。

请参阅此答案。

#1 楼

您不必使用另一个文件,它只是多余的

您可以使用“此处字符串”来实现。
在您的示例中,您可以执行以下操作:

r <<< $(python -c "print '\x90'*52")


您可以在此处阅读有关“此处的字符串”的信息

评论


尽管此答案确实提供了解决方案,但我还是很乐意看到一个编辑,它将带我们通过答案并进行实际解释。自然,无需解释python命令本身。谢谢!

– NirIzr
19年2月4日在11:24

#2 楼

我不知道以任何方式将脚本作为run参数运行。
常见的解决方案是从文件重定向输入。

您首先需要运行脚本并保存结果:

python -c "print 'A'*50" > my_file


并将其重定向到gdb run

r < my_file
也来自help run命令:


使用“>”,“ <”或也允许使用“ >>”。


,这意味着您还可以根据需要重定向输出。