buuctf—[2019红帽杯]easyRE个人感悟与总结


被出题人干翻了,可恶(悲

 

收获:

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的函数,其他都还好。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM