过年一起玩呀
白菜哥的新年大红包由两部分组成,
Part1:[F1129B4C724435598515598630AC61A8]
Part2:
扫描二维码后得到网址 http://7sbxnl.com1.z0.glb.clouddn.com/dahongbao.txt
下载TxT,打开后发现是Base64编码后的文字。
使用Base64解码后,用file命令查看文件类型。得知是win32下压缩的rar压缩包。
1 | cat dahongbao.txt | base64 -d >dahongbao.bin |
打开压缩包后,发现文件有密码,无法继续进行。
回归Part1下手,容易发现Part1是使用摘要算法后的Hash。实际这里使用的是md5。在cmd5等查询网站查询均无结果。将Part1直接拖入百度搜索,得到如下结果:
得到hash对应的字符串:
+ibcerj?ianu
这里加密采用了Qwerty键盘和Dvoark键盘的映射加密。根据对应规则解密得到
}gnidoc{galf
将顺序颠倒后便是
flag{coding}
根据之前发布的提示,rar密码为c0d1ng。解压rar获得havefun.txt。打开后看到“This program cannot be run in DOS mode.”便知道为Windows 可执行文件,与file命令得到的类型一致。修改后缀为exe。运行后弹出错误提示。
考虑到可执行文件无法执行,可能为PE头错误,用二进制编辑器打开havefun.exe,发现其中一个偏移量9000有问题,对应位置应为8000,修复后保存
运行后可获得一串数字,且没有数字大于7,因此考虑为八进制数。
170157 122707 113150 24304 107577 166230 112777 167224 131307 136626 167174 126377
反汇编原始程序,定位到main()
入口,发现循环调用了part1函数,并且输出part1的返回值,共循环12次,输出使用%o
格式化。
定位到part1函数,发现part2函数将传入参数加7dfh后返回。7dfh=2015d。因为今年是2015年,猜测加密函数f(x) = x+2015,因此将上面的八进制串每个都减掉7dfh。
得到十六进制的数字串
E890 9DE8 8E89 20E5 87A0 E4B9 8E20 E6B5 AAE8 B5B7 E69D A520 E587 A020 E59D 97E9 92B1 20EF BC9F。
每两位分割添加%号并且url解码后得到中文
“萝莉 几乎 浪起来 几 块钱 ?”
这一层加密采用的是拼音与T9的对应。萝莉为loli 对应56 54 ,几乎 对应54 48, 浪起来 对应57 51, 几 对应54 块钱 对应57。
56 54 54 48 57 51 54 57 再查 ascii 码表发现全部为数字,86609369,为最终的红包密码。
总的来说最后一步需要一定的运气。其他的步骤还算正常。很可惜没有人在10小时内拿到这个一人独吞100元大红包。