BugkuCTF-MISC题FileStoragedat
知識點
FileStorage是微信存儲數據的一個文件夾,該文件夾下存放的是經過加密后微信里發送、接受的圖片而形成的文件后綴為dat的文件。就是微信dat文件。想要做出此題,就得先弄懂微信dat文件形成的原因。
微信的dat文件,將微信圖片的各字節通過異或運算后,保存為dat后綴名存儲方式。
解題流程
點擊下載后,
打開,一個名偽keli.dat的文件
首先我們用winhex等二進制查看工具打開該圖片。圖片左邊的字節為17CE。
這個17CE是重點,我們現在知道圖片經過異或運算后,得到的結果是17CE,那么我們這里使用常見的幾類圖片格式進行逆推。
大概公式:文件頭 XOR 17CE = 兩個相同的字節。
下圖為常見的幾類圖片文件頭格式
后綴名 文件頭
JPG FF D8 FF
PNG 89 50 4E 47
BMP 42 4D
GIF 47 49 46 38
ZIP 50 4B 03 04
RAR 52 61 72 21
AVI 41 56 49 20
先以jpg圖片格式為例。打開計算器,并調制程序員模式,進行異或運算,輸入FFD8 XOR 17CE運算后的結果是E816,先然,各字節和17CE進行異或運算,應該相等才對。所以這張圖片并不是jpg格式。
我們以PNG文件頭格式為例。png文件頭為8950,dat文件頭為17CE。經過異或運算后,得到的結果是9E9E。說明原圖的各個字節同9E進行異或運算后得到的字節保存后,就是dat文件。
3. 已知dat文件所有字節,已知異或運算字節為9E,所以將這個dat文件的每個字節和9E進行異或運算后,就會得到一張PNG的圖片了。思路有了我們進行復現。
三、復現
1、利用工具
一個大佬寫的工具:
https://github.com/PiaoZhenJia/WeChatDatFileDecoder
文件下載完畢后,進入bin/debug/路徑。運行WpfApp1.exe
手動輸入要進行解碼的dat文件路徑。手動輸入文件解碼后的保存路徑。點擊開始轉換。
會得到一個png結尾的圖片,打開后為flag。
得到flag
方法二:
最好能通過腳本解碼dat
總結
以上是生活随笔為你收集整理的BugkuCTF-MISC题FileStoragedat的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言 memcpy 和 strcpy
- 下一篇: React之组件与模块