其實這件事情技術含量不大,而且網上之前就有過其他教程,稍微看得懂一點匯編的都可以改。但是先前的文章對于一些細節都沒有講得很清楚,因此我這篇其實是補完。
由于文內有較多鏈接,微信內看的話請點擊右上角 在瀏覽器打開。
工具準備
不得不說 Hopper Disassembler 是個好東西,就是下載起來麻煩了些,昨晚搞了半天,在貓貓的幫助下搞到了這工具,還是把它放在自己的服務器上比較好 >_<
點擊下載 Hipper Disassembler
反編譯程序
整個反編譯的過程很簡單,找到微信的二進制程序,拖進 Hopper Disassembler 就可以了,一般情況下,微信的程序路徑在 /Applications/WeChat.app/Contents/MacOS/WeChat。
反編譯的過程是比較慢的,必須等待右下角的 Working 字樣消失才可以進行操作,否則程序可能會卡住或是閃退。當看到下方日志欄出現 Background analysis ended 字樣時,表示反編譯已完成。

查找關鍵函數
關鍵函數就一個,參考前人的經驗,直接找 onRevokeMsg。

修改
將光標放在行 push rbp 后面的 rbp 上,按Option + A ,輸入 ret 并點擊 Assembler and Go Next,此時窗口會跳到下一行,按 ESC 退出即可。

重建可執行文件
按 Shift + Command + E 鍵來重建可執行文件,在此之前,程序會提示你要移除簽名,選擇 Yes 就可以,默認會把重建的程序保存在 Documents 目錄內。
替換文件
將生成的可執行文件替換到微信里就可以了,當然你需要先關閉微信,在反編譯和修改的過程中,你還是可以正常使用微信的,并不需要關閉了才能改。
$ cd /Applications/WeChat.app/Contents/MacOS/ $ sudo mv WeChat WeChat.bak $ sudo cp ~/Documents/WeChat ./ $ sudo chmod 755 WeChat
搞定后直接運行微信客戶端即可看到效果。
下載
方便起見,我直接提供我改好的可執行文件,懶人可以直接做后的替換步驟
點擊下載
其他要說的
Hopper Disassembler 包含了很強大的生成偽代碼的功能,可以幫助開發者整理邏輯,但是這個功能似乎很多人說找不到,其實很簡單的,把光標移動函數名稱上然后按 Option + Enter 即可。

這樣生成偽代碼,一次只能一個函數,略顯不便,這里也安利一個看雪大牛的程序,他實現了批量導出偽代碼的功能,相當的贊。
$ git clone https://github.com/poboke/Class-Decompile
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。