被出题人干翻了,可恶(悲
收获:
1.for循环里放在括号里第二个的函数一般是strlen(一般
我眼瞅着这个函数,和我平常敲c++代码的时候经常写的strlen很像,代入进去发现似乎确实是(v48是char数组)。
2.放在memset后面且相隔很近的函数很可能是输入函数(scanf之类)
这道题和我之前做的几道题都是,memset后面放个输入的函数,而我每次都发现不了在哪儿输入的(悲,还是记录下来比较好
3.我被耍力(
做的前几道题吃了不了解编码方式而硬磕代码的亏,现在对base64,md5,sha之类的加密方法十分敏感。本题查看字符串后很明显能看到
“!这是base64!”我兴奋的想到
顺着他的代码来,应该是将off_6CC090中的值疯狂解码就可以出flag
。。。。
原本应该是这样(
把结果继续解码,连续几次后
十分开心,然后在网页输入该网址。。
我一脸蒙蔽的往下看,直到看到这儿
哦,我被骗了啊(草
出题人在哪,我要好好感谢他(bushi
真正的解出flag的函数在那一大串base64加密的数的下面。。。
4.获得了一些思路
前面第一次输入,将结果输出发现flag的前四位是“flag”(废话),这里又能看到v5低位和6cc0a0异或是“f”,高位和相当于6cc0a0【3】的异或是“g”,又因为前面得出前四位是“flag”,由此可以合情推理下方的for循环里的异或得出的结果应该就是flag。(感觉很奇妙,不过确实是这样)
简单写个代码就可以推出flag。本题难处主要在于那个位置奇妙的得出flag的函数,其他都还好。