CTF_SecondDay_Morning
Pwn从未知的简单out文件中获取flag
最为简单的是:知道原c文件,然后运行下行命令获得out文件,并运行
gcc ./test.c
就能知道当输入“abcd”时,就能获得flag,当输入“dcba”时,就能获得服务器端的命令行

其次:如果我们已知的只有out文件,那么就需要利用ida进行反编译,获得c文件,虽然并不太清晰,但有利于我们获知其执行逻辑
ida的使用:
打开ida64.exe文件,运行该程序后,将我们需要反编译的out文件拖入主面板;
双击左侧面板的main函数,并按F5按钮,跳转至Pseudocode-A页面,我们就能获知具体的伪代码;
双击函数变量,我们还能在IDA VIEW-A获知其具体的内容;
问题2:如果需要我们输入的是“abcd\xff”那么就需要py文件进行输入,因为考虑到\xff的特殊性,我们无法直接在终端上输入。这里我们有两种方式向a.out文件输入
一种方式是新建立input.py文件

在终端执行该py文件,获得input.txt文件;
python input.py
随后执行下一行命令,就能成功向a.out程序输入“abcd\xff”
./a.out < input.txt
最终获得flag

方法二是直接运行python文件,间接运行a.out文件,并将输入也转发至out文件中
新建立solution.py文件如下:

在终端运行该文件
python solution.py
最终获得flag


浙公网安备 33010602011771号