TIM防撤回2.3.2.21173版誰(shuí)目前tim官方最新版本軟件。作為一個(gè)常年混跡各種群的資深潛水黨,每次翻看聊天記錄的時(shí)候都能發(fā)現(xiàn)一堆的撤回信息,看著非常不舒服,并且網(wǎng)上也有很多的防撤回例子提供學(xué)習(xí),所以就打算自己也動(dòng)手嘗試做一個(gè)防撤回的功能。有需要的小伙伴歡迎來(lái)西西下載體驗(yàn)。、
補(bǔ)丁使用說(shuō)明:
1.首先,你的系統(tǒng)需要滿足以下條件:Windows 7 或更高版本,不支持XP。NET Framework 4.5 或更高版本。低于此版本在打開(kāi)程序時(shí)可能無(wú)反應(yīng),或者直接報(bào)錯(cuò)。
2.使用本程序前,先關(guān)閉微信/QQ/TIM。
3.以管理員身份運(yùn)行本程序,等待右下角獲取最新的補(bǔ)丁信息。
4.選擇微信/QQ/TIM的安裝路徑。如果你用的安裝版的微信/QQ/TIM,正常情況下本程序會(huì)自動(dòng)從注冊(cè)表中獲取安裝路徑,綠色版需要手動(dòng)選擇路徑。
5.點(diǎn)擊防撤回。界面可能會(huì)出現(xiàn)一段時(shí)間的無(wú)響應(yīng),請(qǐng)耐心等待。由于修改了微信的 WeChatWin.dll 文件、QQ/TIM的 IM.dll 文件,殺毒軟件可能會(huì)彈出警告,放行即可。
操作步驟:
第一步通過(guò)notepad在bin目錄下的所有dll中搜索revoke關(guān)鍵字
然后我們就可以上od或x32dbg對(duì)這些DLL下斷找CALL了,我這里使用的是x32dbg,因?yàn)樗乃阉鬟^(guò)濾比OD要舒服很多
打開(kāi)軟件,附加進(jìn)程,附加之后會(huì)自動(dòng)斷下來(lái),記得F9
在模塊(快捷鍵:<kbd>Crtl</kbd>+<kbd>E</kbd>)中進(jìn)入我們之前找到的DLL
在模塊內(nèi)搜索字符串revoke,看看有沒(méi)有比較可疑的地方,下斷進(jìn)行嘗試
這里有個(gè)EnableMsgRevokeMenuItem,看起來(lái)應(yīng)該是軟件初始化之類的,不管他,全部都下斷點(diǎn)試試
小號(hào)給自己發(fā)條消息并撤回,斷點(diǎn)沒(méi)反應(yīng),那就重復(fù)此步驟,在下一個(gè)模塊內(nèi)繼續(xù)搜索下斷,直到斷下來(lái)
找到關(guān)鍵位置,進(jìn)行具體分析
在im.dll中我們通過(guò)revoke發(fā)現(xiàn)了大量的關(guān)鍵字
L"DoRevokeBuddyMessage failed to get msg_info."撤回好友消息失敗的日志,基本可以確定就撤回就和這個(gè)模塊相關(guān)了,繼續(xù)看看下面的字符
這三個(gè)有重大嫌疑啊,從上到下分別是 好友(buddy)、討論組(discussion)、群(group)消息撤回,三個(gè)都下斷點(diǎn),進(jìn)行嘗試。
小號(hào)發(fā)消息并撤回,成功斷在了5FBBDE65:OnNotifyBuddyMessageRevoked(pNotifyMsgBody, pDataExtraInfo)。
單步往下,很快就可以看到一個(gè)大跳轉(zhuǎn),不過(guò)看了一下跳轉(zhuǎn)的地址5FBBDFA2,是直接過(guò)了返回,再往下那塊就是討論組的撤回了,應(yīng)該不是這里,繼續(xù)往下
來(lái)到第一個(gè)call,<kbd>F7</kbd>跟進(jìn)
發(fā)現(xiàn)兩個(gè)大跳轉(zhuǎn),直接跳轉(zhuǎn)到了返回處
直接改之,<kbd>F9</kbd>,然后程序瘋狂異常,無(wú)奈重啟程序
重啟過(guò)程中想了下,都確定了這里就是實(shí)現(xiàn)撤回的函數(shù),那直接返回應(yīng)該也行的
直接在函數(shù)入口處改返回
push ebp改為ret 8
小號(hào)發(fā)消息撤回試試
第一張是電腦截圖,第二張是手機(jī)截圖,成功解決~
依法修改群消息的撤回
成功。這里我是直接用的討論組,因?yàn)槲抑罢{(diào)試的時(shí)候發(fā)現(xiàn)討論組撤回是直接走的群撤回邏輯,也就是說(shuō)之前發(fā)現(xiàn)的三個(gè)關(guān)鍵處只需要修改兩個(gè)就可以實(shí)現(xiàn)了,中間那個(gè)并沒(méi)有發(fā)現(xiàn)哪里有調(diào)用
修改完成就直接打補(bǔ)丁唄。<kbd>Crtl</kbd>+<kbd>p</kbd>
退出tim,將保存的文件替換掉原來(lái)的文件,記得備份,至此大功告成~