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码:
所以: