XCTF reverse新手 Hello, CTF

看下一题,题目如下:

 

下载附件,和上一个题目不同,这次的文件格式比较明确了,是一个exe,运行看看:

 

随便输入,显示错误,推测应该就是用你的输入和某个东西做比较,错误显示wrong,成功应该就会输出flag,查一下壳:

 

无壳,新手的福音,IDA载入,f5看c伪代码:

 

函数不会?各查了一下qmemcpy(开始没查到这个函数,后来大佬说是memcpy的升级版本,别人封装的...)、memeset、strcat等函数,大概梳理,如下:

 

 

v13的值为a437261636b4d65数据源中的的35位,可以看到v13的值,我们输入的v9为字符串,而且长度不能大于17位,v3为循环体中的循环变量。

 

 

v9,也就是我们输入的每一位用16进制输出,结果为v10,然后与v13比较,相等即success,所以,将v13转换为ASCII码:

 

 

所以:

 

posted @ 2020-04-01 14:39  2rSh0u  阅读(305)  评论(0编辑  收藏  举报