Fork me on GitHub

多快好省破解Mac版微信消息撤回功能

A simple method to crack WeChat revoke message function

前言

每当你从聚精会神的工作或学习中抽身,想要看看常关注的微信群时,突然发现一条“已撤回”消息,这时是否特别强迫症般想要知道被撤回的是什么内容呢?是否对没有时刻关注群聊消息感到一丝遗憾呢?没关系,今天我们的目标就是帮你治疗这个“强迫症”。

什么什么?早就有防撤回微信版本了,还各平台版本的都有?我知道啊,不过别人破解的你敢放心用吗?常言道:“授人以鱼不如授人以渔”,所以还是自己逆向,安全可靠

特别声明:此方法仅限个人研究学习,请勿用于非法用途。

准备工作

项目备注
有MacOS系统的主机1台配置hold住,虚拟机也可以
Mac微信App (版本:Version. 2.3.26)并不限定于此版本,目前只要鹅厂工程师不修复,大概率后续版本也能使用此方法修改
Hopper Disassembler v4二进制反汇编器,版本虽然旧了点,用起来依然顺手

分析

之前网上有人发“逆向win版微信客户端撤回功能”的帖子,其主要步骤概括如下:

1.找到名为“wechatwin.dll”的文件。
2.在逆向工具中搜索字符串“revokemsg”。
3.找到引用这个“revokemsg”字符串的地方,将其上面的条件判断跳转改为强制跳转。

Mac微信客户端的破解思路也基本雷同,不过Mac版可没有“wechatwin.dll”模块,你实际需要加在的模块是这个 “/Applications/WeChat.app/Contents/MacOS/WeChat”。

操作步骤

接下来,正式开始逆向Mac微信客户端:

1.把“~/Applications/WeChat.app”的WeChat.app复制一份,可以命名为wechat_test.app, 路径为:“~/Applications/wechat_test.app”,这个是用做备份,以防修改失误导致App不可用。(备份是个好习惯,当然,能保证修改不出错的熟手可略过此步骤)

2.用Hopper加载“/Applications/wechat_test.app/Contents/MacOS/WeChat”。
Edit - Read Excutable to Disassemble…

3.在逆向工具中检索字符串“revokemsg”。

load_app

4.查到相关引用位置。

refer

共有3处,关键部分如下图所示:
step4_2

关键跳转在这里:

step4_3

5.将其上面提到的关键代码的条件判断跳转改为强制跳转。

直接使用工具修改HEX代码,将 0F841B010000 为 90E91B010000

step5_1

step5_1

6.修改完成后保存, Edit - Produce New Excutable …
finish
保存可以直接覆盖现有文件(”/Applications/WeChat.app/Contents/MacOS/WeChat”),这样破解工作计算完成。

测试

然后在MacOS下打开wechat_test.app, 测试一下,破解成功后,自己发送或者对方发送消息的撤回后,在修改过的app上依然能看到,而你自己发送的消息,在修改版客户端上操作撤回后,在正常(未修改)的微信客户端上,则依然显示为“XXX”撤回一条消息。

正常撤回:

normal

修改版展示:

finish

总结

虽然按步骤操作逆向的确很简单,但说到底也是“前人栽树,后人乘凉”,“revokemsg”的特征怎么找到的,也是前面逆向过的人一点一点花时间调试发现的,所以逆向破解真的是一项考验细心和耐心的工作。此外,据其它验证过得小伙伴说,同理可以搞定QQ for Mac的撤回,改天来试试。^ _ ^

-------------  Fin    Thanks for reading!  -------------

本文标题:多快好省破解Mac版微信消息撤回功能

文章作者:TesterCC

发布时间:2019年09月03日 - 16:09

最后更新:2019年09月27日 - 01:09

原始链接:http://blog.fullstackpentest.com/a-simple-method-to-crack-WeChat-revoke-message-function.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。