BUUCTF 新年快乐解题思路
1.正常走流程拖ida
这里大意了,就两个函数说明是有壳的,本以为靠前面的题不会给带壳的,我自己的脱壳软件也已经很久没有用过了
2.脱壳软件脱壳
我的tools仓库里有脱壳软件,需要可以自取
https://gitee.com/adsarea/tools/raw/master/FFI.zip
unpacked是未包装的意思也就是脱了壳的软件(话说正确英文不应该是dumped吗)
3.果然是靠前面的题,脱了壳就没东西了,直接省去shift+F12查字符串这一步骤
下拉发现敏感字符串this is true flag!
4.F5查看伪代码
这就很明显了
讲解一下:
strcpy(&v4,"HappyNewYear!");
strcpy()是一种用于复制的函数声明,这里是指将后面的字符串复制到v4
strncmp((const char *)&v5, &v4, strlen(&v4))
这是指将v5与v4中的内容相比较,strncmp就是用来比较的函数,strlen是获取字符串v4的长度,在这个长度下进行比较。
v5则是咱们输入的内容,输入v4时puts("this is true flag!"),v4就是flag,即HappyNewYear!
答案就是flag{HappyNewYear!}