WeChatFerry/README.MD
2023-03-15 21:33:13 +08:00

208 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# WeChatFerry
一个玩微信的工具。更多介绍见:[WeChatFerry: 一个玩微信的工具](https://mp.weixin.qq.com/s/CGLfSaNDy8MyuyPWGjGJ7w)。
目前实现的功能:
* 检查登录状态
* 获取登录账号的 wxid
* 获取消息类型
* 获取所有联系人
* 获取所有好友
* 获取数据库
* 获取某数据库下的表
* 发送文本消息(可 @
* 发送图片
* 发送文件
* 发送 XML
* 允许接收消息
* 停止接收消息
* 执行 SQL 查询
* 接受好友申请
* 添加群成员
![Demo](demo.gif)
👉 [WeChatRobot](https://github.com/lich0821/WeChatRobot)一个基于WeChatFerry的Python机器人框架。
欢迎加群交流,后台回复 `WeChatFerry `
![碲矿](TEQuant.jpeg)
## 快速开始
下载 [最新发布的版本](https://github.com/lich0821/WeChatFerry/releases/latest)。根据技术栈,选择客户端,目前支持:
* 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)
> [gRPC 分支](https://github.com/lich0821/WeChatFerry/tree/grpc) 支持更多客户端:
> * C/C++
> * Java
> * Node.js
> * Python
### Python
* 安装
```sh
pip install --upgrade wcferry
```
* 运行
参考 [README.MD](python/README.MD)。
## 一起开发
### 安装开发环境
参见 [A gRPC Demo](https://github.com/lich0821/gRpcDemo/blob/wx/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
├── LICENSE # LICENSE
├── README.MD # 说明
├── TEQuant.jpeg # 二维码,测试用图
├── WeChatFerry.sln # VS2019 工程文件
├── demo.gif # 示例图
├── launcher # 图形版启动器
├── python # Python 客户端
├── rpc # RPC 模块
├── sdk # 注入及启动模块
├── spy # 核心功能实现模块
└── wcf # 命令行版启动器
```
### launcher
图形启动器,调用 `sdk``spy` 注入微信。其他客户端可通过 RPC 连接到 `spy` 进行消息传递。监听的地址为 `tcp://0.0.0.0:10086``tcp://0.0.0.0:10087`
### python
Python 客户端。
### rpc
RPC 的通信部分和序列化 / 反序列化部分。
### sdk
负责将 `spy` 注入微信进程,并启动 RPC 服务。
### spy
间谍模块,注入到微信中,通过 RPC 做消息转发工作。
### wcf
`launcher` 类似,命令行版启动器。
## 版本更新
### v3.7.0.30.212023.03.15
* 发送表情
### v3.7.0.30.202023.03.12
修复 wxid 获取问题。
### v3.7.0.30.192023.03.06
修复重复消息问题。
### v3.7.0.30.182023.03.05
修复添加好友问题。
### v3.7.0.30.172023.03.05
修复获取登录账号 wxid 问题。
### v3.7.0.30.162023.03.04
将错误码改成错误消息,方便调试。
### v3.7.0.30.152023.03.01
* 发送 xml
### v3.7.0.30.142023.02.28
* 添加群成员
### v3.7.0.30.132023.02.27
去除 gRPC 框架,自定义更轻量的 RPC 轮子 `nnprc`
### v3.7.0.30.122023.01.20
* 更新 Python 客户端
* 修改监听地址为 `0.0.0.0:10086`
* 增加 `Launcher`,直接注入 `spy`
### v3.7.0.30.112022.10.19
更新 Python 客户端。
### v3.7.0.30-gRPC-22022.10.18
增加 Java 客户端。
### v3.7.0.30-gRPC-12022.10.16
将 RPC 框架切换为 gRPC
### v3.7.0.30-82022.09.25
* 获取登录账号微信 ID
### v3.7.0.30-72022.09.24
修复群聊有系统消息时会崩溃 bug。后续考虑把消息来源交还给客户端自己区别。
### v3.7.0.30-62022.08.21
* 通过好友验证
### v3.7.0.30-52022.08.20
* 执行 SQL 语句
### v3.7.0.30-42022.08.20
修复群消息 @人 功能。有几点注意事项:
1. `vAtWxids` 是要 `@``wxid` 清单,以 `,` 分隔。
2. 只有群主才能 `@所有人`,非群主硬发 `@所有人` 会导致消息发不出去;`@所有人` 对应 `vAtWxids``"notify@all"`
3. 消息体里 `@` 的数量必须与 `vAtWxids` 里的数量一致,否则消息能发出但 `@` 功能失效。
### v3.7.0.30-32022.08.20
修复可重入 bug。
### v3.7.0.30-22022.08.14
优化 Hook 和 Inject 代码,实现可重入。
### v3.7.0.30-12022.08.12
适配微信 `3.7.0.30`
### v3.7.0.29-32022.08.7
* 查询数据库,获取库、表。
### v3.7.0.29-22022.08.7
优化 RPC。
### v3.7.0.29-12022.08.7
适配微信 `3.7.0.29`
### v3.3.0.115-32021.08.28
适配微信 `3.3.0.115`,新增功能:
* 获取所有联系人
### v3.3.0.115-22021.08.22
适配微信 `3.3.0.115`,新增功能:
* 发送图片消息
### v3.3.0.115-12021.08.22
适配微信 `3.3.0.115`
### v3.0.0.57-12021.02.12
适配微信 `3.0.0.57`,支持功能:
* 登录状态判断
* 接收文本消息
* 发送文本消息