RSCTF-逆向-go.exe

题附件:

链接:https://pan.baidu.com/s/1d7Qq5XaQFXtGBIOUdOFJYQ 密码:w8vi

第一步:

看到是一个exe后缀的程序,所以使用查壳工具DIE看是否有壳。

RSCTF-逆向-go.exe_第1张图片

发现是一个无壳的PE文件,且是64位的一个程序。

第二步:

用工具010editor打开程序,我们也可以很明显的看到这是一个PE文件,并且是在windows上运行的一个程序。

RSCTF-逆向-go.exe_第2张图片

第三步:直接使用工具IDA64位打开程序,你可以直接看到这是一个已经经过简化的一个go语言写的一个逆向程序,所以我们可以直接就找到相应的main_main函数。并且F5直接查看伪代码。

RSCTF-逆向-go.exe_第3张图片

 

然后分析:

RSCTF-逆向-go.exe_第4张图片

 

第四步:我们回过头来看,我们直接搜索字符串,yes,flag(%s)

可以看到在字符串的上面是有一个字符串的,那我们可以看到h3ll0_w0rld的字符串,i/o是表示一个输入流,那么也就是猜测,当我们输入h3ll0_w0rld,这个字符串的时候,go内存就已经超时丢失了,那么就直接输出flag的结果。

RSCTF-逆向-go.exe_第5张图片

 

第五步:验证自己的猜测:

请记得一定要在windows的环境下运行程序。

RSCTF-逆向-go.exe_第6张图片

证明猜测正确。

但是你也可以进行一步一步的逆向分析,直接看汇编代码。然后使用windows下的gdb环境进行一步步的调试,最后得到结果。

你可能感兴趣的:(CTF-WriteUp)