题目地址:BUUCTF在线评测
下载文件解压后打开exe:
输入任何东西之后都是闪退的
直接PE
64位C++没加壳
再来IDA 64
找到地方F5直接看:
strncmp比较 Str1和 Str2前v2的值,如果Str1=Str2,返回0;大于返回正数,小于返回负数。!为非,所以只要( strncmp(Str1,Str2,v3) )为0, !( strncmp(Str1,Str2,v3) )就可以输出“this is the right flag!”;
IDA中按R键可以直接把ASCII码转换成对应的值:
111是o,48是0
就是把hello_world中的“o”被替换为“0”,因此,Str2的值为{hell0_w0rld},同理,Str1的值也为{hell0_w0rld},
flag:flag{hell0_w0rld}
CTF工具包下载:
链接:https://pan.baidu.com/s/1v2PXkldn4zlfxlgK_S_R6Q?pwd=ormq
提取码:ormq