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

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

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

  • 工具准备 不得不说 Hopper Disassembler 是个好东西,就是下载起来麻烦了些,昨晚搞了半天,在猫猫的帮助下搞到了这工具,还是把它放在自己的服务器上比较好 >_< 点击下载 Hipper Disassembler http://diy.ourocg.cn/download/HopperDisassembler.dmg
  • 反编译程序 整个反编译的过程很简单,找到微信的二进制程序,拖进 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 搞定后直接运行微信客户端即可看到效果。
  • 下载 方便起见,我直接提供我改好的可执行文件,懒人可以直接做最后的替换步骤 http://diy.ourocg.cn/download/WeChat.zip 其他要说的 Hopper Disassembler 包含了很强大的生成伪代码的功能,可以帮助开发者整理逻辑,但是这个功能似乎很多人说找不到,其实很简单的,把光标移动函数名称上然后按 Option + Enter 即可。

这样生成伪代码,一次只能一个函数,略显不便,这里也安利一个看雪大牛的程序,他实现了批量导出伪代码的功能,相当的赞。

  $ git clone https://github.com/poboke/Class-Decompile

原文发布于微信公众号 - Android群英传(android_heroes)

原文发表时间:2016-11-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏菩提树下的杨过

flex中使用swc实现更好的界面代码分离

前几天写过一篇"flash开发中如何实现界面代码分离",评论中 小-G 同学给出了更好的建议:swc ,今天试用了一下,果然比较embed swf来得更爽!同时...

2166
来自专栏圆方圆学院精选

【戴嘉乐 IPFS】IPFS Desktop:IPFS节点桌面管理App

IPFS Desktop是一个由IPFS官方应用社区(IPFS-Shipyard)孵化出来的应用项目。 Ta是一个通过Node.js编写的桌面管理软件,比之前提...

1501
来自专栏Golang语言社区

Go语言TCP Socket编程--1

Go语言TCP Socket编程 Golang的 主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应...

5356
来自专栏KaliArch

Python实现腾讯云CDB备份文件自动上传到COS

47517
来自专栏james大数据架构

Eclipse快捷键大全

一、实用类快捷键 1 常用熟悉的快捷键 CTRL+C(复制)、CTRL+X(剪切)、CTRL+Z(撤销)、CTRL+F(查找)、CTRL+H(搜索文件或字符串)...

21110
来自专栏SeanCheney的专栏

《Learning Scrapy》(中文版)第4章 从Scrapy到移动应用选择移动应用框架创建数据库和集合用Scrapy导入数据创建移动应用创建数据库接入服务将数据映射到用户界面映射数据字段和用户组

有人问,移动app开发平台Appery.io和Scrapy有什么关系?眼见为实。在几年前,用Excel向别人展示数据才可以让人印象深刻。现在,除非你的受众分布很...

2955
来自专栏偏前端工程师的驿站

项目小结:日立OA系统(Asp.net)

前言                                         进入公司6个月后被安排到该项目中,据说该项目规模很大,而拆分到公司的就只是...

2845
来自专栏微信公众号:Java团长

IntelliJ IDEA使用教程(2018图文版)

如果说IntelliJ IDEA是一款现代化智能开发工具的话,Eclipse则称得上是石器时代的东西了。其实笔者也是一枚从Eclipse转IDEA的探索者,随着...

3673
来自专栏熊二哥

Eclipse常见设置与操作

Eclipse虽然被IDEA超越了,但仍然是最佳的JAVA开发工具哈。因为经常会在不同的开发环境中进行开发,所以对Eclipse常见操作做一个记录,以便于查阅,...

2089
来自专栏macOS 开发学习

Mac 开发之 做一个JSON转模型属性的小公举

好啦,到这里就简单完成了这个小工具,继续学习的,可以给这个工具添加一个状态栏按钮(可以参考我前面的文章),也许会用起来更方便哦..

1222

扫码关注云+社区

领取腾讯云代金券