牛掰!把微信表情包導(dǎo)出GIF文件
不知道大家有沒有遇到這樣的情況:遇到好看的微信表情,想把它導(dǎo)出成GIF文件,用于自己在其他地方使用。

今天,看完這篇文章,相信你知道該怎么做了!
尋找表情包文件
微信有很多表情,但我們想要的那個表情文件在哪里呢?第一步先來解決這個問題:尋找表情包文件。
手機上不便操作,建議在Windows電腦上實施。
打開神器:ProcMon.exe,這是一個系統(tǒng)監(jiān)控工具,它可以監(jiān)控整個系統(tǒng)中所有進程的文件、注冊表、網(wǎng)絡(luò)等訪問行為。
通過配置過濾器,只篩選進程名中包含wechat字樣的進程,過濾出微信進程的所有文件訪問行為:

這時,找到我們想要獲取的表情包文件,點擊發(fā)送(發(fā)送給誰都行,這里測試方便就發(fā)給了自己的文件傳輸助手)

隨后在ProcMon中停止監(jiān)控,可以看到它捕獲了剛才這一操作過程中,微信進程所有的文件相關(guān)的操作記錄。

往下翻,可以看到最近的對一個文件的多次讀寫,并且從這個文件的路徑可以猜測出,這個是用戶自定義(CustomEmotion)的表情包:

打開這個路徑所在的文件夾,可以看到目標(biāo)文件:

就是你了!
咱們給它添加一個 .gif 的擴展名,打開看看是不是剛才那個表情包。

糟糕,好像打開失敗了!難道這不是GIF文件?用十六進制編輯器打開看看這文件神馬格式!

V1MMWX?這是什么格式的標(biāo)記?小白縱橫江湖多年,也沒見過這種格式的文件。
接下來看了一下同目錄下的其他文件,全都是以這個標(biāo)記開頭的。
額~~微信看來是對表情包文件加密了!
這樣不難理解,現(xiàn)在都有不少微信表情包作者通過制作表情包賺錢了,這些表情包圖片作為知識產(chǎn)權(quán),做一些安全保護自然理所應(yīng)當(dāng)。
但是有些圖片明明就不是付費表情包,也給加密,這可不行,得想個辦法解密!
破解加密文件
根據(jù)ProMon監(jiān)控記錄中的調(diào)用堆棧信息,可以追溯到讀取表情包的位置:

在IDA中打開分析目標(biāo)模塊WeChatWin.dll文件,發(fā)現(xiàn)了幾處圖片文件解密的調(diào)用:

這幾個函數(shù)位于另一個模塊VoipEngine中,在調(diào)試器WinDbg中給它們都打上斷點,再次發(fā)送表情包文件觸發(fā)斷點,發(fā)現(xiàn)是isWxGF函數(shù)命中,查看堆棧,發(fā)現(xiàn)了文件明文!

使用windbg的內(nèi)存dump命令,將數(shù)據(jù)dump到磁盤上,查看:
.writemem?f:\emj.gif?0x128352b8??L?0x1073f

果然就是之前的那個表情包!
有了明文,問題就好辦了!編寫一個DLL來實現(xiàn)將內(nèi)存中的明文文件自動dump到磁盤上!
獲取VoipEngine加載地址 獲取其導(dǎo)出函數(shù)isWxGF函數(shù)地址 HOOK這個函數(shù) 在HOOK函數(shù)中讀取堆棧參數(shù),將明文內(nèi)容寫入到磁盤文件中 最后,將DLL注入到微信進程中!完事兒
注意:本文這個方法有一定的局限性,不確定哪天微信加上檢測手段~然后~

推薦閱讀
歡迎長按掃碼關(guān)注「數(shù)據(jù)管道」
