2017-04-02 46 views
0

我试图通过调试程序蟒蛇纸条的输出是这样的:GDB管道输入到调试文件,而无需使用一个文件

(gdb) run $(python -c "print('A'*60)") 

但是,这是作为参数传递。

(gdb) run < $(python -c "print('A'*60)") 

,因为它取代了右边部分withs了“A和无法打开此类名称的文件,该报告错误。

我在找gdb中的管道机制。

python -c "print('A'*60)" > input.txt 
(gdb) run < input.txt 

会是一个解决方案,但我没有权限创建一个文件(我试图解决一个堆栈溢出基于CTF)

回答

0

您正在寻找:

(gdb) run <(python -c "print('A'*60)") 

(这是一个shell重定向功能,而不是GDB重定向功能)。

I don't have the permission to create a file

系统不允许您在/tmp中创建文件的情况非常罕见。

python -c "print('A'*60)" > /tmp/input.txt 
(gdb) run < /tmp/input.txt 
+0

“/ bin/sh:语法错误:”(“意外的” 第一个选项dos似乎没有工作。 – Pruzo