WeChatFerry/README.MD

348 lines
8.9 KiB
Plaintext
Raw Normal View History

2021-02-12 23:21:57 +08:00
# WeChatFerry
2024-04-19 19:06:30 +08:00
2023-03-01 20:13:18 +08:00
一个玩微信的工具。更多介绍见:[WeChatFerry: 一个玩微信的工具](https://mp.weixin.qq.com/s/CGLfSaNDy8MyuyPWGjGJ7w)。
2024-04-19 19:06:30 +08:00
<details><summary><font color="red" size="12">免责声明【必读】</font></summary>
2023-07-17 00:30:14 +08:00
本工具仅供学习和技术研究使用,不得用于任何商业或非法行为,否则后果自负。
本工具的作者不对本工具的安全性、完整性、可靠性、有效性、正确性或适用性做任何明示或暗示的保证,也不对本工具的使用或滥用造成的任何直接或间接的损失、责任、索赔、要求或诉讼承担任何责任。
本工具的作者保留随时修改、更新、删除或终止本工具的权利,无需事先通知或承担任何义务。
本工具的使用者应遵守相关法律法规,尊重微信的版权和隐私,不得侵犯微信或其他第三方的合法权益,不得从事任何违法或不道德的行为。
本工具的使用者在下载、安装、运行或使用本工具时,即表示已阅读并同意本免责声明。如有异议,请立即停止使用本工具,并删除所有相关文件。
</details>
2023-07-15 10:18:04 +08:00
|![碲矿](assets/TEQuant.jpg)|![赞赏](assets/QR.jpeg)|
2023-05-07 01:08:13 +08:00
|:-:|:-:|
2024-02-14 22:33:00 +08:00
|后台回复 `WCF` 加群交流|如果你觉得有用|
2021-02-12 23:21:57 +08:00
2022-10-18 19:19:10 +08:00
## 一起开发
2024-04-19 19:06:30 +08:00
2024-03-03 00:25:41 +08:00
> 🚫 非开发用户不需要往下看。
2023-12-05 23:53:12 +08:00
2022-10-15 21:15:33 +08:00
### 安装开发环境
2024-04-19 19:06:30 +08:00
2023-05-12 11:54:47 +08:00
<details><summary>点击查看</summary>
2022-10-15 21:15:33 +08:00
#### 安装 vcpkg
2024-04-19 19:06:30 +08:00
2022-10-15 21:15:33 +08:00
* 安装,参考[Vcpkg: 总览](https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md)。
2024-04-19 19:06:30 +08:00
2022-10-15 21:15:33 +08:00
```sh
cd C:\Tools
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat
```
* 添加全局配置:
2024-04-19 19:06:30 +08:00
环境变量增加 `vcpkg` 所在路径(本项目为:`C:\Tools\vcpkg`)。
2022-10-15 21:15:33 +08:00
2023-03-07 19:52:38 +08:00
#### 安装相关组件
2024-04-19 19:06:30 +08:00
2022-10-15 21:15:33 +08:00
```sh
2024-04-19 19:06:30 +08:00
vcpkg install protobuf[zlib]:x64-windows-static
vcpkg install spdlog:x64-windows-static
vcpkg install nng:x64-windows-static
vcpkg install magic-enum:x64-windows-static
2022-10-15 21:15:33 +08:00
vcpkg integrate install
```
2023-09-01 08:37:06 +08:00
安装完毕后,需要配置 protoc 的环境变量并确保在命令行下可用protoc 的路径在 `<vcpkg_install_path>\installed\x86-windows-static\tools\protobuf`
2022-10-15 21:15:33 +08:00
#### 安装 VS2019
2023-09-01 08:37:06 +08:00
#### 安装 Python3
2023-09-01 08:37:06 +08:00
通过微软商店或者 python.org 自行下载均可,注意配置好环境变量,确保 `python3` 在命令行下可用
2023-05-12 11:54:47 +08:00
</details>
2022-10-15 21:15:33 +08:00
### 编译
2024-04-19 19:06:30 +08:00
使用 VS2019 打开工程,编译即可。编译成功后,在 `WeChatFerry\WeChatFerry\Out` 目录中会看到相应的 DLL 文件。
2022-10-15 21:15:33 +08:00
2023-11-21 21:20:18 +08:00
**注**:如果遇到执行 `protoc` 时的 9009 错误,检查是否是 python3 环境有问题,或者 protoc 命令的环境变量配置不正确。
2022-10-15 21:15:33 +08:00
### 运行
2024-04-19 19:06:30 +08:00
```py
import ctypes
# 加载 sdk.dll (需要绝对路径)
sdk = ctypes.cdll.LoadLibrary("C:/Projs/WeChatFerry/WeChatFerry/Out/sdk.dll")
# 初始化
sdk.WxInitSDK(False, 10086)
# 退出 SDK
sdk.WxDestroySDK()
# 注意关闭 Python 进程
2023-11-21 21:20:18 +08:00
```
2021-02-12 23:21:57 +08:00
## 项目结构
2024-04-19 19:06:30 +08:00
2023-03-01 20:13:18 +08:00
```sh
WeChatFerry
2023-07-15 10:18:04 +08:00
├── LICENSE # LICENSE
├── README.MD # 说明
├── WeChatFerry
│   ├── WeChatFerry.sln # VS2019 工程文件
2024-04-19 19:06:30 +08:00
│   ├── com # 公共模块
2023-07-15 10:18:04 +08:00
│   ├── rpc # RPC 模块
│   ├── sdk # 注入及启动模块
2024-04-19 19:06:30 +08:00
│   ├── smc # Silk-Mp3 转换模块
│   └── spy # 核心功能实现模块
2023-07-15 10:18:04 +08:00
├── assets
│   ├── QR.jpeg # 二维码,测试用图
│   ├── TEQuant.jpg # 二维码,测试用图
│   └── demo.gif # 示例动图
├── clients
│   ├── go # Go 客户端
2023-12-29 21:28:18 +08:00
│   ├── gohttp # HTTP 客户端
2023-07-15 10:18:04 +08:00
│   ├── http # HTTP 客户端
│   ├── java # Java 客户端
2024-04-19 19:06:30 +08:00
│   ├── node # Node.js 客户端
2023-12-05 23:53:12 +08:00
│   ├── pyauto # 群友封装的客户端
2023-07-15 10:18:04 +08:00
│   ├── python # Python 客户端
│   └── rust # Rust 客户端
└── docs # 文档
2023-03-01 20:13:18 +08:00
```
2022-10-18 19:18:26 +08:00
2021-08-22 22:05:25 +08:00
## 版本更新
2023-07-16 19:30:32 +08:00
2024-04-19 19:06:30 +08:00
### v39.1.0 (2024.04.19)
* 适配 x64 环境
* 重构项目
* 开始适配 `3.9.10.19`
2023-07-16 19:30:32 +08:00
<details><summary>点击查看更多</summary>
2023-05-08 13:10:06 +08:00
客户端越来越多了,版本号开始混乱,所以重新定义了版本号:`w.x.y.z`。
其中:
* `w` 是微信的大版本号,如 `37` (3.7.a.a), `38` (3.8.a.a), `39` (3.9.a.a)
* `x` 是适配的微信的小版本号,从 0 开始
* `y` 是 `WeChatFerry` 的版本,从 0 开始
* `z` 是各客户端的版本,从 0 开始
2024-04-19 19:06:30 +08:00
### v39.0.14 (2024.02.18)
* 修复获取登录二维码问题
2024-02-18 15:08:58 +08:00
### v39.0.13 (2024.02.14)
2024-04-19 19:06:30 +08:00
2024-02-18 15:08:58 +08:00
* 修复若干问题
* 撤回消息
* 获取登录二维码
2024-02-14 22:33:00 +08:00
### v39.0.12 (2023.12.20)
2024-04-19 19:06:30 +08:00
2024-02-14 22:33:00 +08:00
* 修复一个问题
* 消息转发
2023-12-20 20:46:13 +08:00
### v39.0.11 (2023.12.16)
2024-04-19 19:06:30 +08:00
2023-12-20 20:46:13 +08:00
* 修复 PB 消息类型(可能会导致非 Python 客户端崩溃)
* 修复日志错误
* 移除非必要依赖
2023-12-16 15:28:37 +08:00
### v39.0.10 (2023.12.08)
2024-04-19 19:06:30 +08:00
2023-12-16 15:28:37 +08:00
* 代码优化
* 发送卡片消息
* 拍一拍群友
* 邀请群成员
* 图片 OCR
2023-12-08 23:03:06 +08:00
### v39.0.7 (2023.12.03)
2024-04-19 19:06:30 +08:00
2023-12-08 23:03:06 +08:00
* 保存语音
2023-12-03 17:47:14 +08:00
### v39.0.6 (2023.11.26)
2024-04-19 19:06:30 +08:00
2023-12-03 17:47:14 +08:00
* 修复下载图片退出问题
2023-11-26 22:51:37 +08:00
### v39.0.5 (2023.11.22)
2024-04-19 19:06:30 +08:00
2023-11-26 22:51:37 +08:00
* 修复收到某些文件崩溃问题
2023-11-22 22:41:04 +08:00
### v39.0.4 (2023.11.21)
2024-04-19 19:06:30 +08:00
2023-11-22 22:41:04 +08:00
* 下载图片、文件和视频
2023-11-21 21:20:18 +08:00
### v39.0.3 (2023.09.28)
2024-04-19 19:06:30 +08:00
2023-11-21 21:20:18 +08:00
* 修复登录账号昵称超长报错问题
2023-09-28 08:24:13 +08:00
### v39.0.2 (2023.07.16)
2024-04-19 19:06:30 +08:00
2023-09-28 08:24:13 +08:00
* 修复朋友圈消息 `is_group` 为 `True` 问题
2023-07-16 23:32:28 +08:00
### v39.0.1 (2023.07.16)
2024-04-19 19:06:30 +08:00
2023-07-16 23:32:28 +08:00
* 获取朋友圈消息
2023-07-14 00:54:03 +08:00
### v39.0.0 (2023.07.14)
2024-04-19 19:06:30 +08:00
2023-07-14 00:54:03 +08:00
升级到 `3.9.2.23`。
2023-05-08 13:10:06 +08:00
### v37.1.25 (2023.05.07)
2024-04-19 19:06:30 +08:00
2023-05-08 13:10:06 +08:00
更新版本编码。
根据新版本编码规则:
* `WeChatFerry` 的 `v3.7.0.30.25` 应调整为:`v37.1.25`,因为此前曾适配过 `3.7.0.29`。
* Python 客户端 `wcferry` 的 `v3.7.0.30.25` 应该调整为 `v37.1.25.0`
* HTTP 客户端 `wcfhttp` 的 `v3.7.0.30.25` 应该调整为 `v37.1.25.0`
2023-05-05 20:47:21 +08:00
### v3.7.0.30.25 (2023.05.05)
2024-04-19 19:06:30 +08:00
2023-05-05 20:47:21 +08:00
* 修复群消息判断错误
* 修复名片添加好友问题
* 修复获取数据库多余字符问题
* 添加 Python 文档
* Python 客户端发送图片支持网络路径
2023-04-19 23:33:38 +08:00
### v3.7.0.30.24 (2023.04.19)
2024-04-19 19:06:30 +08:00
2023-04-19 23:33:38 +08:00
实现了一个功能。
2023-04-13 00:44:24 +08:00
### v3.7.0.30.23 (2023.04.13)
2024-04-19 19:06:30 +08:00
2023-04-13 00:44:24 +08:00
* 解密图片
* 获取登录账号信息
* 获取联系人备注
2023-04-09 16:36:42 +08:00
### v3.7.0.30.222023.04.09
2024-04-19 19:06:30 +08:00
2023-04-09 16:36:42 +08:00
将监听端口调整为可配置。
2023-03-15 21:33:13 +08:00
### v3.7.0.30.212023.03.15
2024-04-19 19:06:30 +08:00
2023-03-15 21:33:13 +08:00
* 发送表情
2023-03-12 00:31:51 +08:00
### v3.7.0.30.202023.03.12
2024-04-19 19:06:30 +08:00
2023-03-12 00:31:51 +08:00
修复 wxid 获取问题。
2023-03-06 19:50:27 +08:00
### v3.7.0.30.192023.03.06
2024-04-19 19:06:30 +08:00
2023-03-06 19:50:27 +08:00
修复重复消息问题。
2023-03-05 12:31:59 +08:00
### v3.7.0.30.182023.03.05
2024-04-19 19:06:30 +08:00
2023-03-05 12:31:59 +08:00
修复添加好友问题。
2023-03-05 01:53:20 +08:00
### v3.7.0.30.172023.03.05
2024-04-19 19:06:30 +08:00
2023-03-05 01:53:20 +08:00
修复获取登录账号 wxid 问题。
2023-03-04 23:06:13 +08:00
### v3.7.0.30.162023.03.04
2024-04-19 19:06:30 +08:00
2023-03-04 23:06:13 +08:00
将错误码改成错误消息,方便调试。
2023-03-01 20:13:18 +08:00
### v3.7.0.30.152023.03.01
2024-04-19 19:06:30 +08:00
2023-03-01 20:13:18 +08:00
* 发送 xml
### v3.7.0.30.142023.02.28
2024-04-19 19:06:30 +08:00
2023-03-01 20:13:18 +08:00
* 添加群成员
### v3.7.0.30.132023.02.27
2024-04-19 19:06:30 +08:00
2023-03-01 20:13:18 +08:00
去除 gRPC 框架,自定义更轻量的 RPC 轮子 `nnprc`。
### v3.7.0.30.122023.01.20
2024-04-19 19:06:30 +08:00
2023-01-20 11:18:24 +08:00
* 更新 Python 客户端
* 修改监听地址为 `0.0.0.0:10086`
* 增加 `Launcher`,直接注入 `spy`
2023-03-01 20:13:18 +08:00
### v3.7.0.30.112022.10.19
2024-04-19 19:06:30 +08:00
2022-10-19 23:06:50 +08:00
更新 Python 客户端。
2022-10-18 19:32:31 +08:00
### v3.7.0.30-gRPC-22022.10.18
2024-04-19 19:06:30 +08:00
2022-10-18 19:32:31 +08:00
增加 Java 客户端。
2022-10-16 23:05:21 +08:00
### v3.7.0.30-gRPC-12022.10.16
2024-04-19 19:06:30 +08:00
2022-10-15 21:15:33 +08:00
将 RPC 框架切换为 gRPC
2022-09-25 11:25:22 +08:00
### v3.7.0.30-82022.09.25
2024-04-19 19:06:30 +08:00
2022-09-25 11:25:22 +08:00
* 获取登录账号微信 ID
2022-09-24 16:52:23 +08:00
### v3.7.0.30-72022.09.24
2024-04-19 19:06:30 +08:00
2022-09-24 16:52:23 +08:00
修复群聊有系统消息时会崩溃 bug。后续考虑把消息来源交还给客户端自己区别。
2022-08-21 08:48:37 +08:00
### v3.7.0.30-62022.08.21
2024-04-19 19:06:30 +08:00
2022-08-21 08:48:37 +08:00
* 通过好友验证
2022-08-20 22:16:29 +08:00
### v3.7.0.30-52022.08.20
2024-04-19 19:06:30 +08:00
2022-08-20 22:16:29 +08:00
* 执行 SQL 语句
2022-08-20 21:39:58 +08:00
### v3.7.0.30-42022.08.20
2024-04-19 19:06:30 +08:00
2022-08-20 21:39:58 +08:00
修复群消息 @人 功能。有几点注意事项:
1. `vAtWxids` 是要 `@` 的 `wxid` 清单,以 `,` 分隔。
2. 只有群主才能 `@所有人`,非群主硬发 `@所有人` 会导致消息发不出去;`@所有人` 对应 `vAtWxids` 为 `"notify@all"`。
3. 消息体里 `@` 的数量必须与 `vAtWxids` 里的数量一致,否则消息能发出但 `@` 功能失效。
2022-08-20 15:34:38 +08:00
### v3.7.0.30-32022.08.20
2024-04-19 19:06:30 +08:00
2022-08-20 15:34:38 +08:00
修复可重入 bug。
2022-08-14 07:21:33 +08:00
### v3.7.0.30-22022.08.14
2024-04-19 19:06:30 +08:00
2022-08-14 07:21:33 +08:00
优化 Hook 和 Inject 代码,实现可重入。
2022-08-12 23:18:46 +08:00
### v3.7.0.30-12022.08.12
2024-04-19 19:06:30 +08:00
2022-08-12 23:18:46 +08:00
适配微信 `3.7.0.30`。
2022-08-07 23:50:02 +08:00
### v3.7.0.29-32022.08.7
2024-04-19 19:06:30 +08:00
2022-08-07 23:50:02 +08:00
* 查询数据库,获取库、表。
2022-08-07 21:39:58 +08:00
### v3.7.0.29-22022.08.7
2024-04-19 19:06:30 +08:00
2022-08-07 21:39:58 +08:00
优化 RPC。
2022-08-07 15:13:18 +08:00
### v3.7.0.29-12022.08.7
2024-04-19 19:06:30 +08:00
2022-08-07 15:13:18 +08:00
适配微信 `3.7.0.29`。
2021-08-28 08:35:43 +08:00
### v3.3.0.115-32021.08.28
2024-04-19 19:06:30 +08:00
2021-08-28 08:35:43 +08:00
适配微信 `3.3.0.115`,新增功能:
* 获取所有联系人
2021-08-22 22:05:25 +08:00
### v3.3.0.115-22021.08.22
2024-04-19 19:06:30 +08:00
2021-08-22 22:05:25 +08:00
适配微信 `3.3.0.115`,新增功能:
* 发送图片消息
### v3.3.0.115-12021.08.22
2024-04-19 19:06:30 +08:00
2021-08-22 22:05:25 +08:00
适配微信 `3.3.0.115`。
### v3.0.0.57-12021.02.12
2024-04-19 19:06:30 +08:00
2021-08-22 22:05:25 +08:00
适配微信 `3.0.0.57`,支持功能:
* 登录状态判断
* 接收文本消息
* 发送文本消息
2023-04-28 23:18:21 +08:00
</details>