記錄實踐PC端微信防撤回實現過程(基於3.1.0.67版本)
利用OD實現對PC端微信防撤回功能的實現
文章最後有一鍵修補程式工具哦~
準備工具
1.OD
2.PC微信客戶端(3.1.0.67)
過程
1.運行微信客戶端,不需要登錄
2.運行OD,左上角選擇附加進程
3.選中微信進程點擊附加
4.附加後打開可執行模組介面
5.找到關鍵的DLL文件雙擊載入,微信的撤回函數就包含在這個DLL里。
DLL文件(Dynamic Linkable Library 即動態鏈接庫文件),是一種不能單獨運行的文件,它允許程式共享執行特殊任務所必需的程式碼和其他資源 比較大的應用程式都由很多模組組成,這些模組分別完成相對獨立的功能,它們彼此協作來完成整個軟體系統的工作。可能存在一些模組的功能較為通用,在構造其它軟體系統時仍會被使用。
簡單來說運行微信時候,就會把WeChatWin.dll的數據載入到記憶體當中去,
如果我們修改了WeChatWin.dll的數據,把相當於把我們的WeChatWin.dll的載入到記憶體當中去,就能現實某些功能了,也可以理解為打修補程式…
6.到達DLL主窗口後右鍵》中文查找》智慧搜索
7.到達中文字元串窗口後CTRL+F查找關鍵字『revokemsg』,通過調試分析,通過這個關鍵字搜索可以定位到撤回函數位置
8.這裡就是我們的撤回函數關鍵字的位置,雙擊進去
9.這裡是撤回函數的關鍵call,撤回微信資訊的話,會調用一個撤回的函數,我們直接把這個撤回的函數給取消掉
10.我們以NOP位元組填充,這樣噹噹撤回的時候,在dll中找不到這個函數,就可以做到防撤回的功能了
11.NOP完後我們保存所有修改
12.將文件保存到本地
13.這次將修改過的文件替換微信文件夾內原來的DLL文件,重新運行微信即可防撤回了。
演示
用小號發消息後撤回,已經無法撤回。
測試版本是目前最新版本