将python -c传递给gdb中的运行程序

时间:2018-04-29 17:29:49

标签: python c gdb exploit

我目前正在玩这个C程序(是的,我知道它的风险)。

int main(int argc, char **argv)
{
    char buffer[64];
    gets(buffer);
}

当我把它放到gdb中时,我想运行它然后传递一个python命令。例如

gdb -q test
Reading symbols from test...(no debugging symbols found)...done.
(gdb) r
Starting program: /tmp/test 
python -c 'print "A" * 100'
[Inferior 1 (process 14912) exited normally]
(gdb) r
Starting program: /tmp/test 
`python -c 'print "A" * 100'`
[Inferior 1 (process 14917) exited normally]
(gdb) 

运行此命令后,是否可以将python命令传递给程序?或者最好是从gdb中执行此操作并将其输入管道?

干杯

1 个答案:

答案 0 :(得分:0)

  

运行此命令后,实际上是否可以将python命令传递给程序?

是的,但你做错了。你的命令是做什么的:

/tmp/test `python  -c 'print "A" * 100'`

相当于:

/tmp/test AAAAA...A

你想要什么:

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

相当于:

echo "AAAAA...A" | /tmp/test