如何让 Mac 版微信客户端防撤回

96
何晓杰Dev
2016.11.10 11:41* 字数 730

其实这件事情技术含量不大,而且网上之前就有过其他教程,稍微看得懂一点汇编的都可以改。但是先前的文章对于一些细节都没有讲得很清楚,因此我这篇其实是补完。

由于文内有较多链接,微信内看的话请点击右上角 在浏览器打开

  • 工具准备

    不得不说 Hopper Disassembler 是个好东西,就是下载起来麻烦了些,昨晚搞了半天,在猫猫的帮助下搞到了这工具,还是把它放在自己的服务器上比较好 >_<

    点击下载 Hipper Disassembler

  • 反编译程序

    整个反编译的过程很简单,找到微信的二进制程序,拖进 Hopper Disassembler 就可以了,一般情况下,微信的程序路径在 /Applications/WeChat.app/Contents/MacOS/WeChat

    反编译的过程是比较慢的,必须等待右下角的 Working 字样消失才可以进行操作,否则程序可能会卡住或是闪退。当看到下方日志栏出现 Background analysis ended 字样时,表示反编译已完成。

反编译
  • 查找关键函数

    关键函数就一个,参考前人的经验,直接找 onRevokeMsg

查找 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
开发
Web note ad 1