一堆Reverse只有这个签到题难度的玩意儿能水一水(:з」∠)夜影为什么这么菜
Find the key that was used to generate Meepwn.ascii.bak
Sometimes you don’t really need to read the code
Notice: Flag is in format MeePwn{…}
不需要真的阅读代码的意思就是黑盒测试了
大概扫了一遍代码,及其丑,跟以往的C语言很不一样
左侧的库函数命名风格也截然不同
UltraEdit看一眼,果然发现了熟悉(个锤子)的Go build ID
,说明这是Golang语言编译的
题目既然都说不用读了,那我们暂时也就先不读了吧~过两天再逆试试
运行bin程序,发现提示输入key的长度和生成了160x160的image
刚开始还以为是字符画,但是横竖看都看不出来啥东西。而且字符画处理起来难度似乎有点大,所以估计走错了
再多输入几个字符测试,发现当key的长度相同时,运行结果的格式是相同的,仅仅是字符内容不同
例如开头前六个字符同样都是”AABAAC”这样
因此猜测是逐字节的处理~
再控制key是2个字节,保持第二字节不同而第一字节改变,对比两次结果发现仅有1, 3, 5等奇数字节改变,而偶数字节不变
由此猜测是循环key的处理~
下一步猜测,根据题目说明确认key的前7个字符是”MeePwn{“,因此以它作为key产生的结果前7个字符必然与MeePwn.ascii.bak的前7个字符结果相同
验证无误后,解题思路就很简单了: