刚接触逆向的人大都一脸懵逼,比如我。
下载得到题目,使用ida打开。
再尝试通过文本搜索flag,简单的签到题可能会直接给flag,本题也可以通过这种方法找线索
找到了关于flag的线索,通过f5查看类c代码
观察到如下代码
明显sub-1400111D1就是printf的意思了,要输出正确的语句就需要if括号内为真,而strcmp函数的作用就是比较str1与str2.
再次观察
这明显就是在让我们输入str1了,当我们输入的字符串与str2相同时会有“this is the right flag!"
所以flag就是str2.
再观察发现str2的值
进行提交结果却不对
后来发现问题出在这一for循环
str2中ascii码为111的字符被替换成了48,也就是o被换为0;在ida中也可以选中数字按r进行替换
最后提交flag{hell0_w0rld}