实验室每日一题 2020.12.07
先用pe工具检查程序有没有加壳,发现有upx壳:
用工具脱壳(没有的话百度上下载个upx然后配置下环境变量就能用了):
然后把程序丢进ida里面,开始逆向。因为内容比较多,先搜索字符串,发现了这两段话:
先看第一个,刚开始看着感觉像16进制,后来发现不对,然后用base16解码可以得到一个蓝奏云链接,但是需要密码,密码就是第二张图上的钥匙。下载可得到一个word文档。打开后先查看隐藏文字,发现末尾有一串空白,将字体颜色改为黑色可以得到:
把中文逗号改为1,英文逗号改为0,然后转化为字符串可得:
这个感觉应该是:offset0x3930,百度一下offset可以知道这个指令跟地址有关,然后经过出题大佬的提醒用010Editor打开Word,然后找到地址0x3930:
跟word文件的头文件比较一下:
可以发现这里应该也是个Word文档,只不过文件头被修改了,把从这里开始知道文件末尾的部分创建一个新的文件,然后头文件改回来可以得到一个word文档:
这个文档应该也有隐藏字符,但是它限制了编辑,我们不知道密码无法编辑它。那就换一种方法,将word文件的后缀改为zip,然后解压,找到word文件夹中的document.xml,用记事本打开,就可以找到隐藏的字符:
是一串base64编码,解码后得到:
这个要拆分一下,%25是url中的百分号,所以%257b和%257d要进行两次url编码,可以得到flag: