下载文件先查壳,可以看到有UPX壳
用upx脱壳
拖到ida pro32,shift+F12查看字符串,看到关键字flag,双击进去
双击然后f5查看伪代码
main函数伪代码
关键函数:
strncmp(const char *str1, const char *str2, size_t n)
比较前n个字节的str1和str2的ASCII值,如果相同则返回0
所以下面这行代码意思就是如果Str1=Str2,那么就为真,即Str1就是flag。
if ( !strncmp((const char *)&Str1, Str2, strlen(Str2)) )
Str1=HappyNewYear!,所以flag应该为:flag{HappyNewYear!}