# WeChatFerry 一个玩微信的工具。更多介绍见:[WeChatFerry: 一个玩微信的工具](https://mp.weixin.qq.com/s/CGLfSaNDy8MyuyPWGjGJ7w)。 👉 [WeChatRobot🤖](https://github.com/lich0821/WeChatRobot),一个基于 WeChatFerry 的 Python 机器人框架。
点击查看功能清单 * 检查登录状态 * 获取登录账号的 wxid * 获取消息类型 * 获取所有联系人 * 获取所有好友 * 获取数据库 * 获取某数据库下的表 * 获取用户信息 * 发送文本消息(可 @) * 发送图片 * 发送文件 * 发送 XML * 发送表情 * 允许接收消息 * 停止接收消息 * 执行 SQL 查询 * 接受好友申请 * 添加群成员 * 解密图片
点击查看支持的客户端 * Go * HTTP * Java * Python * Rust
![Demo](demo.gif) |![碲矿](TEQuant.jpg)|![赞赏](QR.jpeg)| |:-:|:-:| |后台回复 `WeChatFerry` 加群交流|如果你觉得有用| ## 快速开始 下载 [最新发布的版本](https://github.com/lich0821/WeChatFerry/releases/latest)。根据技术栈,选择客户端,将相应 `dll` 和 `exe` 文件放到对应位置。 ### Go 参考 [Go README.MD](go/README.MD) ### HTTP [![PyPi](https://img.shields.io/pypi/v/wcfhttp.svg)](https://pypi.python.org/pypi/wcfhttp) * 安装 ```sh pip install --upgrade wcfhttp ``` * 运行 ```sh # 查看版本 wcfhttp -v # 查看帮助 wcfhttp -h # 忽略新消息运行 wcfhttp # 新消息转发到指定地址 wcfhttp --cb http://your_host:your_port/callback ``` ### Java 参考 [Java README.MD](java/README.MD) ### Python [![PyPi](https://img.shields.io/pypi/v/wcferry.svg)](https://pypi.python.org/pypi/wcferry) [![Downloads](https://static.pepy.tech/badge/wcferry)](https://pypi.python.org/pypi/wcferry) [![Documentation Status](https://readthedocs.org/projects/wechatferry/badge/?version=latest)](https://wechatferry.readthedocs.io/zh/latest/?badge=latest) * 安装 ```sh pip install --upgrade wcferry ``` * 参考框架:[🤖WeChatRobot](https://github.com/lich0821/WeChatRobot) ### Rust 参考 [Rust README.MD](rust/README.MD) ## 一起开发 ### 安装开发环境 #### 安装 vcpkg * 安装,参考[Vcpkg: 总览](https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md)。 ```sh cd C:\Tools git clone https://github.com/microsoft/vcpkg .\vcpkg\bootstrap-vcpkg.bat ``` * 添加全局配置: 环境变量增加 `vcpkg` 所在路径(本文为:`C:\Tools\vcpkg`)。 #### 安装相关组件 ```sh vcpkg install protobuf[zlib]:x86-windows-static vcpkg install spdlog:x86-windows-static vcpkg install nng:x86-windows-static vcpkg integrate install ``` #### 安装 VS2019 ### 编译 使用 VS2019 打开工程,编译即可。 ### 运行 双击 `Release` 里的 `launcher.exe`,`启动`。 ## 项目结构 ```sh WeChatFerry ├── docs # 文档 ├── go # Go 客户端 ├── http # HTTP 客户端 ├── java # Java 客户端 ├── launcher # 图形版启动器 ├── python # Python 客户端 ├── rpc # RPC 模块 ├── rust # Rust 客户端 ├── sdk # 注入及启动模块 ├── spy # 核心功能实现模块 ├── wcf # 命令行版启动器 ├── demo.gif # 示例图 ├── LICENSE # LICENSE ├── README.MD # 说明 ├── TEQuant.jpeg # 二维码,测试用图 └── WeChatFerry.sln # VS2019 工程文件 ``` ### go Go 客户端。 ### http HTTP 客户端。 ### java Java 客户端。 ### launcher > ⚠️ 不要与客户端同时使用! 图形启动器,调用 `sdk` 将 `spy` 注入微信。其他客户端可通过 RPC 连接到 `spy` 进行消息传递。默认监听的地址为 `tcp://0.0.0.0:10086` 和 `tcp://0.0.0.0:10087`。 ### python Python 客户端。 ### rpc RPC 的通信部分和序列化 / 反序列化部分。 ### rust Rust 客户端。 ### sdk 负责将 `spy` 注入微信进程,并启动 RPC 服务。 ### spy 间谍模块,注入到微信中,通过 RPC 做消息转发工作。 ### wcf 跟 `launcher` 类似,命令行版启动器,一般不需要显式运行,各客户端自动调用。 ## 版本更新
点击查看 ### v3.7.0.30.25 (2023.05.05) * 修复群消息判断错误 * 修复名片添加好友问题 * 修复获取数据库多余字符问题 * 添加 Python 文档 * Python 客户端发送图片支持网络路径 ### v3.7.0.30.24 (2023.04.19) 实现了一个功能。 ### v3.7.0.30.23 (2023.04.13) * 解密图片 * 获取登录账号信息 * 获取联系人备注 ### v3.7.0.30.22(2023.04.09) 将监听端口调整为可配置。 ### v3.7.0.30.21(2023.03.15) * 发送表情 ### v3.7.0.30.20(2023.03.12) 修复 wxid 获取问题。 ### v3.7.0.30.19(2023.03.06) 修复重复消息问题。 ### v3.7.0.30.18(2023.03.05) 修复添加好友问题。 ### v3.7.0.30.17(2023.03.05) 修复获取登录账号 wxid 问题。 ### v3.7.0.30.16(2023.03.04) 将错误码改成错误消息,方便调试。 ### v3.7.0.30.15(2023.03.01) * 发送 xml ### v3.7.0.30.14(2023.02.28) * 添加群成员 ### v3.7.0.30.13(2023.02.27) 去除 gRPC 框架,自定义更轻量的 RPC 轮子 `nnprc`。 ### v3.7.0.30.12(2023.01.20) * 更新 Python 客户端 * 修改监听地址为 `0.0.0.0:10086` * 增加 `Launcher`,直接注入 `spy` ### v3.7.0.30.11(2022.10.19) 更新 Python 客户端。 ### v3.7.0.30-gRPC-2(2022.10.18) 增加 Java 客户端。 ### v3.7.0.30-gRPC-1(2022.10.16) 将 RPC 框架切换为 gRPC! ### v3.7.0.30-8(2022.09.25) * 获取登录账号微信 ID ### v3.7.0.30-7(2022.09.24) 修复群聊有系统消息时会崩溃 bug。后续考虑把消息来源交还给客户端自己区别。 ### v3.7.0.30-6(2022.08.21) * 通过好友验证 ### v3.7.0.30-5(2022.08.20) * 执行 SQL 语句 ### v3.7.0.30-4(2022.08.20) 修复群消息 @人 功能。有几点注意事项: 1. `vAtWxids` 是要 `@` 的 `wxid` 清单,以 `,` 分隔。 2. 只有群主才能 `@所有人`,非群主硬发 `@所有人` 会导致消息发不出去;`@所有人` 对应 `vAtWxids` 为 `"notify@all"`。 3. 消息体里 `@` 的数量必须与 `vAtWxids` 里的数量一致,否则消息能发出但 `@` 功能失效。 ### v3.7.0.30-3(2022.08.20) 修复可重入 bug。 ### v3.7.0.30-2(2022.08.14) 优化 Hook 和 Inject 代码,实现可重入。 ### v3.7.0.30-1(2022.08.12) 适配微信 `3.7.0.30`。 ### v3.7.0.29-3(2022.08.7) * 查询数据库,获取库、表。 ### v3.7.0.29-2(2022.08.7) 优化 RPC。 ### v3.7.0.29-1(2022.08.7) 适配微信 `3.7.0.29`。 ### v3.3.0.115-3(2021.08.28) 适配微信 `3.3.0.115`,新增功能: * 获取所有联系人 ### v3.3.0.115-2(2021.08.22) 适配微信 `3.3.0.115`,新增功能: * 发送图片消息 ### v3.3.0.115-1(2021.08.22) 适配微信 `3.3.0.115`。 ### v3.0.0.57-1(2021.02.12) 适配微信 `3.0.0.57`,支持功能: * 登录状态判断 * 接收文本消息 * 发送文本消息