一个玩微信的工具。更多介绍见:WeChatFerry: 一个玩微信的工具。
本工具仅供学习和技术研究使用,不得用于任何商业或非法行为,否则后果自负。
本工具的作者不对本工具的安全性、完整性、可靠性、有效性、正确性或适用性做任何明示或暗示的保证,也不对本工具的使用或滥用造成的任何直接或间接的损失、责任、索赔、要求或诉讼承担任何责任。
本工具的作者保留随时修改、更新、删除或终止本工具的权利,无需事先通知或承担任何义务。
本工具的使用者应遵守相关法律法规,尊重微信的版权和隐私,不得侵犯微信或其他第三方的合法权益,不得从事任何违法或不道德的行为。
本工具的使用者在下载、安装、运行或使用本工具时,即表示已阅读并同意本免责声明。如有异议,请立即停止使用本工具,并删除所有相关文件。
📖 Python 文档 | 📺 Python 视频教程 | 🙋 FAQ |
---|
👉 WeChatRobot🤖,一个基于 WeChatFerry 的 Python 机器人框架。
后台回复 WCF 加群交流 |
如果你觉得有用 |
pip install --upgrade wcferry
开箱即用:快速开始。
❗ wcfhttp 不再维护,有需要可以使用 WcfRust 或者 GoHttp。
pip install --upgrade wcfhttp
# 查看版本
wcfhttp -v
# 查看帮助
wcfhttp -h
# 忽略新消息运行
wcfhttp
# 新消息转发到指定地址
wcfhttp --cb http://your_host:your_port/callback
其余客户端,可下载 最新发布的版本,根据技术栈,选择客户端,将相应 dll
和 exe
文件放到对应位置。
参考 Go README.MD
🚫 非开发用户不需要往下看。
cd C:\Tools
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat
vcpkg
所在路径(本文为:C:\Tools\vcpkg
)。vcpkg install protobuf[zlib]:x86-windows-static
vcpkg install spdlog:x86-windows-static
vcpkg install nng:x86-windows-static
vcpkg install magic-enum:x86-windows-static
vcpkg integrate install
安装完毕后,需要配置 protoc 的环境变量,并确保在命令行下可用,protoc 的路径在 <vcpkg_install_path>\installed\x86-windows-static\tools\protobuf
通过微软商店或者 python.org 自行下载均可,注意配置好环境变量,确保 python3
在命令行下可用
使用 VS2019 打开工程,编译即可。
注:如果遇到执行 protoc
时的 9009 错误,检查是否是 python3 环境有问题,或者 protoc 命令的环境变量配置不正确。
运行 wcf.exe
启动
wcf.exe --help
WeChatFerry
├── LICENSE # LICENSE
├── README.MD # 说明
├── WeChatFerry
│ ├── WeChatFerry.sln # VS2019 工程文件
│ ├── rpc # RPC 模块
│ ├── sdk # 注入及启动模块
│ ├── spy # 核心功能实现模块
│ └── wcf # 命令行版启动器
├── assets
│ ├── QR.jpeg # 二维码,测试用图
│ ├── TEQuant.jpg # 二维码,测试用图
│ └── demo.gif # 示例动图
├── clients
│ ├── go # Go 客户端
│ ├── gohttp # HTTP 客户端
│ ├── http # HTTP 客户端
│ ├── java # Java 客户端
│ ├── node # Node.js 客户端
│ ├── pyauto # 群友封装的客户端
│ ├── python # Python 客户端
│ └── rust # Rust 客户端
└── docs # 文档
Go 客户端。
HTTP 客户端,二进制发布无依赖
HTTP 客户端。
Node.js 客户端.
Java 客户端。
Python 客户端。
RPC 的通信部分和序列化 / 反序列化部分。
Rust 客户端。
负责将 spy
注入微信进程,并启动 RPC 服务。
间谍模块,注入到微信中,通过 RPC 做消息转发工作。
命令行版启动器,调用 sdk
将 spy
注入微信。其他客户端可通过 RPC 连接到 spy
进行消息传递。默认监听的地址为 tcp://0.0.0.0:10086
和 tcp://0.0.0.0:10087
。一般情况不需要显式运行,各客户端自动调用。
客户端越来越多了,版本号开始混乱,所以重新定义了版本号: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 开始is_group
为 True
问题升级到 3.9.2.23
。
更新版本编码。
根据新版本编码规则:
WeChatFerry
的 v3.7.0.30.25
应调整为:v37.1.25
,因为此前曾适配过 3.7.0.29
。wcferry
的 v3.7.0.30.25
应该调整为 v37.1.25.0
wcfhttp
的 v3.7.0.30.25
应该调整为 v37.1.25.0
实现了一个功能。
将监听端口调整为可配置。
修复 wxid 获取问题。
修复重复消息问题。
修复添加好友问题。
修复获取登录账号 wxid 问题。
将错误码改成错误消息,方便调试。
去除 gRPC 框架,自定义更轻量的 RPC 轮子 nnprc
。
0.0.0.0:10086
Launcher
,直接注入 spy
更新 Python 客户端。
增加 Java 客户端。
将 RPC 框架切换为 gRPC!
修复群聊有系统消息时会崩溃 bug。后续考虑把消息来源交还给客户端自己区别。
修复群消息 @人 功能。有几点注意事项:
vAtWxids
是要 @
的 wxid
清单,以 ,
分隔。@所有人
,非群主硬发 @所有人
会导致消息发不出去;@所有人
对应 vAtWxids
为 "notify@all"
。@
的数量必须与 vAtWxids
里的数量一致,否则消息能发出但 @
功能失效。修复可重入 bug。
优化 Hook 和 Inject 代码,实现可重入。
适配微信 3.7.0.30
。
优化 RPC。
适配微信 3.7.0.29
。
适配微信 3.3.0.115
,新增功能:
适配微信 3.3.0.115
,新增功能:
适配微信 3.3.0.115
。
适配微信 3.0.0.57
,支持功能:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。