my-wx-4 是一个多平台微信管理解决方案,通过 Hook 技术实现微信客户端的深度集成,提供数据同步、远程控制等功能。
项目采用多端协同架构:
- Windows 客户端 (.NET 9.0 + WPF / Rust + egui): Hook 微信客户端,同步数据到服务器,接收并执行命令
- 移动端应用 (Flutter): 展示好友列表、朋友圈,发送操作命令
- 后端服务 (Python FastAPI): 提供 RESTful API 和 WebSocket 服务,存储数据并转发命令
- ✅ Hook 微信客户端,实时同步数据
- ✅ 好友列表、朋友圈、标签数据同步
- ✅ 远程发送消息、点赞、评论朋友圈
- ✅ 多端数据实时同步
- ✅ 授权码管理系统
- ✅ 版本更新管理
关键特征:
data是数组([...])- 数组元素包含:
wxid,nickname,account,avatar,city,country,province,remark,sex,source,labelid_list - 每个元素都有
wxid和nickname字段 - 可能包含
account和avatar字段(可能为空,但字段存在)
智能判断逻辑:
- 检查
data是否为数组(JArray或字符串以[开头) - 检查数组元素是否包含
wxid和nickname字段 - 可选:检查是否包含
account和avatar字段
真实日志数据示例:
{
"data": [
{
"account": "xi******91",
"avatar": "https://wx.qlogo.cn/mmhead/ver_1/Kd*******vs/0",
"city": "Kunming",
"country": "CN",
"labelid_list": "4",
"nickname": "***",
"province": "Yunnan",
"remark": "D💋",
"sex": 2,
"source": 0,
"wxid": "wxid_np*******e22"
}
],
"type": 11126
}关键特征:
data是对象({...})- 包含
wx_type: 49(公众号消息类型) - 包含
wx_sub_type: 5(公众号文章子类型) - 包含
raw_msg字段(XML格式,包含<appmsg>,<title>,<des>,<url>等标签) - 包含
from_wxid,to_wxid,msgid,timestamp字段
智能判断逻辑:
- 检查
data是否为对象(JObject) - 检查是否包含
wx_type: 49或wx_sub_type: 5 - 检查是否包含
raw_msg字段(且包含<appmsg>或<msg>标签)
真实日志数据示例:
{
"data": {
"from_wxid": "wxid_dg*******w12",
"is_pc": 0,
"msgid": "7116695054182577718",
"raw_msg": "<?xml version=\"1.0\"?>\n<msg>\n\t<appmsg appid=\"\" sdkver=\"0\">\n\t\t<title>商品笔记有阅读,但商品没人点?我把种草笔记改了这3点,30天就卖了1000单!</title>\n\t\t<des>如何提高种草内容商品点击率的小技巧,都在这篇里了,写了3h,超级干货!</des>\n\t\t<type>5</type>\n\t\t<url>https://mp.weixin.qq.com/s?__biz=Mzk5MDIzMzg5OQ==&mid=2247483862&idx=1&sn=53795342aa64a2e9b85e68ada7a83e27&chksm=c498dc2f18730cd27c4d389b9a1fb41bd68f5da5bbbe62dfd6d677e5cac00467e37b51e119fe&mpshare=1&scene=1&srcid=1120AcltgflKvLMcy6CwlR2m&sharer_shareinfo=5480bb6d96082d1e6a671c34ff815cd6&sharer_shareinfo_first=5480bb6d96082d1e6a671c34ff815cd6#rd</url>\n\t\t<appattach>...</appattach>\n\t\t<sourceusername>gh_42*******fe</sourceusername>\n\t\t<sourcedisplayname>麦子的成长笔记</sourcedisplayname>\n\t</appmsg>\n\t<fromusername>wxid_dg*******w12</fromusername>\n\t<scene>0</scene>\n\t<appinfo>\n\t\t<version>1</version>\n\t\t<appname></appname>\n\t</appinfo>\n</msg>",
"room_wxid": "",
"timestamp": 1763635252,
"to_wxid": "filehelper",
"wx_sub_type": 5,
"wx_type": 49
},
"type": 11135
}关键特征:
data是对象({...})- 必须同时包含所有特征键:
wxid,nickname,phone,account,avatar - 不包含
wx_type或raw_msg字段(区别于11135)
智能判断逻辑:
- 检查
data是否为对象(JObject) - 检查是否同时包含所有特征键:
wxid,nickname,phone,account,avatar - 排除包含
wx_type或raw_msg的情况(避免与11135混淆)
真实日志数据示例:
{
"data": {
"account": "dx***d",
"avatar": "http://wx.qlogo.cn/mmhead/ver_1/kl*******PG/0",
"nickname": "云*****务",
"phone": "13*******37",
"pid": 29120,
"unread_msg_count": 0,
"wx_user_dir": "C:\\Users\\Administrator\\xwechat_files\\wxid_dg*******w12_e24b",
"wxid": "wxid_dg*******w12"
},
"type": 1112
}关键特征:
data是对象({...})- 包含
msg,from_wxid,to_wxid,timestamp字段 - 可能包含
room_wxid(群聊消息)和msgid字段 - 不包含
wx_type或raw_msg字段(区别于11135)
智能判断逻辑:
- 检查
data是否为对象(JObject) - 检查是否包含
msg,from_wxid,to_wxid,timestamp字段 - 排除包含
wx_type或raw_msg的情况(避免与11135混淆)
真实日志数据示例(基于代码推断):
{
"data": {
"msg": "消息内容",
"from_wxid": "wxid_xxx",
"to_wxid": "wxid_yyy",
"timestamp": 1763635252,
"room_wxid": "",
"msgid": "7116695054182577718"
},
"type": 11132
}注意:11132消息的实际日志数据较少,上述示例基于代码逻辑推断。实际数据格式可能包含更多字段。
数据结构:
{
"data": {
"voice": "...",
"audio": "...",
...
},
"type": 11144
}关键特征:
data是对象({...})- 包含
voice或audio字段
智能判断逻辑:
- 检查
data是否为对象(JObject) - 检查是否包含
voice或audio字段
真实日志数据示例(基于代码推断):
{
"data": {
"voice": "...",
"audio": "...",
"from_wxid": "wxid_xxx",
"to_wxid": "wxid_yyy",
"timestamp": 1763635252,
"msgid": "7116695054182577718"
},
"type": 11144
}注意:11144消息的实际日志数据较少,上述示例基于代码逻辑推断。实际数据格式可能包含更多字段。
当 type 字段不完整或缺失时,智能判断按以下优先级进行:
- 11135(应用消息) - 优先级最高,避免与其他类型混淆
- 11126(联系人列表) - 通过数组结构判断
- 1112(账号信息) - 通过所有特征键判断
- 11132(文本消息) - 通过消息字段判断
- 11144(语音消息) - 通过语音字段判断
- 所有判断逻辑都基于实际日志数据分析得出
- 判断时需要考虑字段的存在性,而不是值的内容(值可能被截断)
- 某些字段可能为空字符串,但只要字段存在即可用于判断
- 当
type字段完整时,优先使用type字段,不进行智能判断
{
"type": "command",
"action": "send_message",
"data": {
"wxid": "xxx",
"message": "hello"
}
}- 法律合规:本工具仅供学习和研究使用,请遵守相关法律法规
- 数据安全:注意保护用户隐私和数据安全
- 生产环境:生产环境部署时请关闭调试模式,配置安全措施
- 版本兼容:确保三端版本兼容,建议使用相同版本
- 权限管理:Windows端需要管理员权限,请谨慎使用
- ✨ 完成多平台架构搭建
- ✨ 实现 Windows 客户端 Hook 功能
- ✨ 实现数据同步功能(好友、朋友圈、标签)
- ✨ 实现远程命令执行功能
- ✨ 完成 Flutter 移动端应用
- ✨ 实现授权码管理系统
- ✨ 实现版本更新管理
- 🐛 修复账号信息检测逻辑(数据驱动策略)
- 🐛 修复 WebSocket 连接稳定性问题
- 📝 完善项目文档和启动脚本
- ✅ 完成项目基础设施
- ✅ 完成基础模块(错误处理、日志、配置、加密)
- ✅ 完成数据模型和状态管理
- ✅ 完成进程管理和 DLL 管理
- ✅ 完成 Hook 管理和连接管理
- ✅ 完成网络模块和服务层
- ✅ 完成 UI 模块(登录窗口、主窗口)
详细的启动和部署指南请查看:启动部署.md
该文档包含:
- 🏗️ 项目架构说明
- 🔧 环境要求和配置
- 🚀 快速启动指南
- 📝 详细启动步骤(后端服务、Windows 客户端、Flutter 应用)
- 🚢 部署说明(开发环境和生产环境)
- ❓ 常见问题解答
- 📚 相关资源和技术支持
快速启动:
- 启动后端服务:
cd server && start.bat - 启动 Windows 客户端:
cd windows && start-all.bat - 启动 Flutter 应用:
cd app && auto.bat
更多详细信息请参考 启动部署.md。
如果这个项目对您有帮助,欢迎通过微信赞助支持项目发展:
加入我们的 QQ 付费技术群,获取技术支持、最新更新和项目交流:
注意:本项目仅供学习研究使用,请遵守相关法律法规和微信使用条款。