——CTF解题专栏——
声明:文章由作者weoptions学习或练习过程中的步骤及思路,非正式答案,仅供学习和参考。
题目信息:
题目:FileStoragedat
作者:Tokeii
提示:标题有用 格式bugku{}
解题附件:
解题思路:
dat文件代表这个文件很可能代表着其他格式的文件,所以我们先用010Eidtor看一下十六进制,标题是FileStoragedat,翻译过来就是文件存储数据。话不多说直接开始。
解题步骤:
一、010Eitor尝试
手指头都翻秃了,也没找到东西,得,思路完全卡住了,百度一下吧。FileStorage是微信聊天数据储存的文件夹,也就是说这玩意是微信的数据文件,再找找资料。
有个工具可以进行微信数据文件解码GitHub - PiaoZhenJia/WeChatDatFileDecoder: 开源的微信Dat文件解码器,支持自定义文件头
我们下载试试。
二、WeChatDatFileDecoder尝试
ok很nice,直接输入进去,
得到了一张png图片。
wc,原!!!
三、原理分析
给大家解析一下其中的原理(其实是字数不够,凑一下)。
微信dat文件形成原理,将微信图片的各个字节进行异或运算。
假如原来的编码是 13 21 (十进制)
用每个数字乘2得到 26 42 (十进制)
这个2就当作密钥
13 21 就是原来的编码(假如是jpg文件头)
26 42 就是加密后的编码(bat文件)
我们将26 42每个字节都除以13 21,得到2,说明他们之间的加密密钥是2,而且原来的文件编码是13 21。
这时候有个 33 36(假如是txt文件头),那么用加密后的编码26 42(bat文件)除以他的时候,每个字节得到的密钥不一样(0.87和1.16)。那么就说明26 42(bat文件)加密前不是txt文件。
总结:
难度:★★☆☆☆☆☆☆☆☆
难度不大,但是挺开阔视野的,以前没有接触过微信加密文件,现在知道了。其中的异或运算bat文件,给大家讲解的时候,自己的理解也变得很清晰。
文章是自己的解题步骤,侵删。有需要工具的小伙伴可以私信哈,无偿,直接qq发你。