README.md 4.3 KB
Newer Older
L
ljc545w 已提交
1
# 描述
L
ljc545w 已提交
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
PC微信机器人,实现以下功能:
1. 获取通讯录  
2. 发送文本、图片、文件、xml文章、名片、群艾特消息  
3. 根据wxid查询好友信息  
4. 根据群ID获取所有群成员wxid  
5. 检测好友状态(是否好友、被删除、被拉黑)  
6. 接收各类消息,可写回调函数进行处理  
7. 封装COM接口,方便使用自己喜欢的语言进行调用  

# 用途
1. 淘客发单  
2. 无痕清粉  
3. 微信公众号采集  
4. 聊天记录备份  
5. 其他你能想到的用途  

L
ljc545w 已提交
18
# 可用版本
L
ljc545w 已提交
19
微信电脑版**3.5.0.46**  
L
ljc545w 已提交
20
微信电脑版**3.6.0.18**  
L
ljc545w 已提交
21 22
微信电脑版**3.7.0.26**  
主分支对应微信3.7.0.26版本,其他版本请查看对应分支。    
L
ljc545w 已提交
23
 
L
ljc545w 已提交
24
# 编译环境
L
ljc545w 已提交
25
**Visual Studio 2019**(平台配置:win32(x86))
L
ljc545w 已提交
26
# 原理
L
ljc545w 已提交
27 28
通过逆向PC微信,定位到关键CALL,dll内联汇编调用  
注册32位COM组件,供64位/32位进程外部调用  
L
ljc545w 已提交
29 30 31 32
# 目录说明
`./CWeChatRobot`:COM组件的实现代码  
`./DWeChatRobot`:注入的DLL实现代码  
`./wxRobot`:  包含C#的调用示例  
J
Jack Li 已提交
33
`./Python`:python示例和接口测试文件  
L
ljc545w 已提交
34
`./Release/CWeChatRobot.exe`:编译的COM组件  
L
ljc545w 已提交
35
`./Release/DWeChatRobot.dll`:编译的DLL文件  
L
ljc545w 已提交
36
`./Release/WeChatTools.exe`:用于调试时注入或卸载DLL程序,具体参阅相关代码  
L
ljc545w 已提交
37
# 注册COM
L
ljc545w 已提交
38
以管理员权限执行以下命令:  
L
ljc545w 已提交
39 40 41 42 43 44 45
```shell
# 安装
CWeChatRobot.exe /regserver
# 卸载
CWeChatRobot.exe /unregserver
```
# 调用
L
ljc545w 已提交
46
**Python:**  
J
Jack Li 已提交
47
参考[wxRobot.py](/Python/wxRobot.py)  
L
ljc545w 已提交
48 49
**C#:**  
参考[Program.cs](/wxRobot/Program.cs)
L
ljc545w 已提交
50
# 更多功能 
L
ljc545w 已提交
51
后续计划功能:  
L
ljc545w 已提交
52 53
1. 修改好友备注  
2. 优化语音和图片Hook  
L
ljc545w 已提交
54

L
ljc545w 已提交
55
有空的时候会按照上述顺序进行开发,不过嘛,计划只是计划,如果未实现也请见谅    
L
ljc545w 已提交
56
**也欢迎您提交PR**  
L
ljc545w 已提交
57 58
# 更新记录
## 2022.04.01
L
ljc545w 已提交
59 60
1. 使用SAFEARRAY返回通讯录列表,可正确显示好友昵称中的特殊符号  
2. README中添加目录说明  
L
ljc545w 已提交
61 62 63 64
3. 更新C#示例代码,添加好友列表的遍历示例  
## 2022.04.11  
1. 修改获取个人信息接口和发送文章接口,兼容老版wxid(未经测试,如有问题请提ISSUE)  
2. 添加接收消息的接口,可以写回调对消息进行处理(参考Python示例文件)  
L
ljc545w 已提交
65
## 2022.04.12
L
ljc545w 已提交
66 67 68
1. 添加发送群艾特消息的接口  
## 2022.04.12
1. 添加通过群ID获取所有群成员wxid接口  
L
ljc545w 已提交
69 70
## 2022.04.13
1. 更新群艾特接口,可同时艾特多人  
L
ljc545w 已提交
71 72 73 74
## 2022.04.18
1. 添加获取数据库句柄接口(部分句柄,获取全量句柄需Hook)  
2. 添加执行SQL命令接口  
3. 添加在线数据库备份接口  
L
ljc545w 已提交
75 76
## 2022.06.01  
1. 适配微信**3.7.0.26**版本,部分功能未经测试,如有问题请报issue  
L
ljc545w 已提交
77 78 79 80
## 2022.06.02  
1. 添加通过好友申请接口(配合接收消息接口可自动通过好友)  
2. 添加获取聊天记录数据库句柄(好友申请消息类型为0x25)  
3. 优化了StartService接口,重复注入时不再关闭远程进程  
L
ljc545w 已提交
81 82 83 84
## 2022.06.04  
1. 完成通过wxid和v3数据加好友的COM接口(后续添加通过微信号、手机号、QQ号查询V3数据接口)  
2. 优化接收消息逻辑,添加消息时间;新增Hook发送消息,返回数据中以一个BOOL值区分发送和接收  
3. 修复了一个BUG,该BUG可能导致Release配置下,COM接口无法正常加载DWeChatRobot.dll计算偏移  
L
ljc545w 已提交
85 86 87
## 2022.06.07  
1. 添加获取当前微信版本(读注册表)和启动微信的接口  
2. 优化数据库查询接口,现在可以正常查询BLOB类型  
L
ljc545w 已提交
88 89 90
## 2022.06.10  
1. 新增关注公众号、网络查询用户信息、Hook语音、未加密图片、自定义微信版本号接口  
2. Hook语音和图片的接口暂时还有瑕疵,图片收到后有可能不会自动下载;语音消息的文件名暂时是时间戳,计划替换为该条消息id。有空再做优化。  
L
ljc545w 已提交
91 92 93 94 95
## 2022.06.13  
1. 优化发送艾特消息接口,新增一个参数,指示是否自动填充被艾特人昵称  
2. 优化发送文章消息接口,新增一个参数,用于展示消息卡片缩略图  
3. 新增删除好友接口  
4. 新增发送小程序接口  
L
ljc545w 已提交
96
# 打赏作者
L
ljc545w 已提交
97
请给作者一个star,感谢感谢  
L
ljc545w 已提交
98
# 免责声明
L
ljc545w 已提交
99
代码仅供交流学习使用,请勿用于非法用途和商业用途!如因此产生任何法律纠纷,均与作者无关!