题目地址:https://buuoj.cn/challenges#%E6%96%B0%E5%B9%B4%E5%BF%AB%E4%B9%90
用IDA打开文件:
怎么可能才两个函数,猜测加了壳,直接查:
1、将文件拖进exeinfope(或者PEiD)查壳:
发现是upx壳——》拖入kaliLinux脱壳:upx -d 文件名
unpack “upx.exe -d” from http://upx.sf.net or any UPX/Generic unpacker
32位文件
脱壳,网上找脱壳机,当然也可以手动脱壳
2、IDA分析
找到main函数,F5反编译
脱壳后,复制到Windows下,用ida打开(就不只是两个函数了)
查壳伪代码:
__main();
strcpy(&v4, "HappyNewYear!"); // 这一行代码使v4=‘HappyNewYear!’
v5 = 0;
memset(&v6, 0, 0x1Eu);
printf("please input the true flag:");
scanf("%s", &v5);
if ( !strncmp((const char *)&v5, &v4, strlen(&v4)) )// 输入v5后,与v4比较,如果相同,则输出“this is true flag!”
result = puts("this is true flag!");
else
result = puts("wrong!");
return result;
}
所以flag为:flag{HappyNewYear!}
『软件加壳与脱壳』
植物有壳,动物有壳,软件亦然。
常见的三种壳:压缩壳、保护壳、捆绑壳。
壳的用途:(1)保护版权信息-不让别人随便更改作者版权信息;(2)减小程序体积-方便存储、传输、使用;(3)黑客界给木马等软件加壳,主要为躲避杀毒软件。
常见的加壳工具:
常见的脱壳工具:
常用的侦壳工具:PEID、StudPE、PEscan、Exeinfo PE等