微信防撤回功能修改

今天无意之中看到了一个帖子,谈到了有关微信消息撤回的。突发奇想实现一下,以后就不怕错过朋友的消息了。

首先介绍一下基本思路,由于微信采用的是CS端原理,所有的数据请求均通过服务器,客户端只是响应指令而已。
A向B发送消息的原理大致是这样的:

  1. A 发送数据给服务器,并说明要发送给B

  2. 服务器接收A的发送指令,将消息转发给B

  3. B 接收服务器消息,并解析为来自A

A撤回已发送的消息的远离大概是这样的:

  1. A 发送撤回消息指令给服务器,并说明要撤回发给B的某条消息

  2. 服务器接收A的撤回指令指令,将撤回消息转发给B

  3. B 接收服务器的撤销某条消息的指令,删除此条消息

基于最新版的微信版本V3.8.1.26 做实验。

我们在PC端查看wechat软件安装路径是可以看到好多dll文件,DLL的全称是Dynamic Link Library, 中文叫做“动态链接文件”。在Windows操作系统中, DLL对于程序执行是非常重要的, 因为程序在执行的时候, 必须链接到DLL文件, 才能够正确地运行。根据网络上查找到的资料,其中 WeChat Win.dll 是决定消息撤回功能的主要文件。

为了修改dll文件,我们还需要借助x32dgb/x64gdb工具。

话不多说,开始上干货。

  1. 登录微信PC版
  2. 打开x32dgb工具
  3. 附加wechat进程。File -> 附加,选择wechat进程
    在这里插入图片描述
  4. 查找符号
    在这里插入图片描述
  5. 查找关键字“revokemsg”
    在当前界面空白处右键 -> 搜索范围 -> 当前模块 -> 字符串引用,在搜索框搜索关键字“revokemsg”
    在这里插入图片描述
  6. 修改汇编指令

在这里插入图片描述
鼠标左键选中 je xxxxxx 这一行,右键 -> 汇编,把 je 修改为 jmp 即可, 然后点击确定即可。
在这里插入图片描述
7. 生成补丁文件,文件 -> 补丁文件 -> 修补文件
在这里插入图片描述
生成修补文件,替换原 wechatwin.dll 文件
在这里插入图片描述
8. 关闭x32dbg软件,重新运行wechat软件

效果验证:
我们再电脑端登录B用户(已更新wechatwin.dll 文件),采用另外的终端作为A用户。A向B发送一条消息“你好”,然后再发送一条消息“good”,然后撤回“good”。

A端界面显示如图:
在这里插入图片描述
B端显示界面如图:
在这里插入图片描述

至此,基于WeChat版本V3.8.1.26的防撤销功能已经做好。
相关目标文件见链接: https://download.csdn.net/download/weixin_43608153/87343781

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我若成精

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值