README.md 4.1 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 24 25 26 27

## 祝大家端午安康  
今天微信更新了3.7.0.29,人已经麻了,新加的添加好友功能甚至还没做COM接口。看来更新太快也不行。  
有想继续使用3.7.0.26的,可以去找一下原来的安装包,然后修改hosts文件禁用自动更新即可。  
过段时间再适配3.7.0.29吧,以上~  
L
ljc545w 已提交
28
# 编译环境
L
ljc545w 已提交
29
**Visual Studio 2019**(平台配置:win32(x86))
L
ljc545w 已提交
30
# 原理
L
ljc545w 已提交
31 32
通过逆向PC微信,定位到关键CALL,dll内联汇编调用  
注册32位COM组件,供64位/32位进程外部调用  
L
ljc545w 已提交
33 34 35 36
# 目录说明
`./CWeChatRobot`:COM组件的实现代码  
`./DWeChatRobot`:注入的DLL实现代码  
`./wxRobot`:  包含C#的调用示例  
J
Jack Li 已提交
37
`./Python`:python示例和接口测试文件  
L
ljc545w 已提交
38
`./Release/CWeChatRobot.exe`:编译的COM组件  
L
ljc545w 已提交
39
`./Release/DWeChatRobot.dll`:编译的DLL文件  
L
ljc545w 已提交
40
`./Release/WeChatTools.exe`:用于调试时注入或卸载DLL程序,具体参阅相关代码  
L
ljc545w 已提交
41
# 注册COM
L
ljc545w 已提交
42
以管理员权限执行以下命令:  
L
ljc545w 已提交
43 44 45 46 47 48 49
```shell
# 安装
CWeChatRobot.exe /regserver
# 卸载
CWeChatRobot.exe /unregserver
```
# 调用
L
ljc545w 已提交
50
**Python:**  
J
Jack Li 已提交
51
参考[wxRobot.py](/Python/wxRobot.py)  
L
ljc545w 已提交
52 53
**C#:**  
参考[Program.cs](/wxRobot/Program.cs)
L
ljc545w 已提交
54
# 更多功能 
L
ljc545w 已提交
55 56 57 58 59 60 61 62
后续计划功能:  
1. HOOK未加密图片数据  
2. HOOK语音消息(SILK_V3格式)  
3. 自定义微信版本号(无法屏蔽微信启动时的检查更新,启动后可以)  
4. 手机号、微信号查询信息及加好友  
5. 好友相关操作,删除好友、修改备注等  
6. 群相关操作,拉群、踢人、退群等  
7. 数据库xml消息主体解压缩  
L
ljc545w 已提交
63

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