README.md 2.2 KB
Newer Older
L
ljc545w 已提交
1
# 描述
L
ljc545w 已提交
2 3
PC微信机器人,实现获取通讯录、发送文本、图片、文件、xml文章、分享名片消息  
封装COM接口,可供Python、C#调用
L
ljc545w 已提交
4
# 可用版本
L
ljc545w 已提交
5
微信电脑版**3.5.0.46**  
L
ljc545w 已提交
6
微信电脑版**3.6.0.18**  
L
ljc545w 已提交
7
主分支对应微信3.6.0.18版本,其他版本请查看对应分支。    
L
ljc545w 已提交
8
# 编译环境
L
ljc545w 已提交
9
**Visual Studio 2019**(平台配置:win32(x86))
L
ljc545w 已提交
10
# 原理
L
ljc545w 已提交
11 12
通过逆向PC微信,定位到关键CALL,dll内联汇编调用  
注册32位COM组件,供64位/32位进程外部调用  
L
ljc545w 已提交
13 14 15 16 17 18 19 20
# 目录说明
`./CWeChatRobot`:COM组件的实现代码  
`./DWeChatRobot`:注入的DLL实现代码  
`./wxRobot`:  包含C#的调用示例  
`./wxRobot.py`:python示例文件  
`./Release/CWeChatRobot.exe`:编译的COM组件  
`./Release/DWeChatRobot.dll`:编译的动态库  
`./Release/WeChatTools.exe`:用与调试时注入或卸载DLL程序,具体参加相关代码  
L
ljc545w 已提交
21
# 注册COM
L
ljc545w 已提交
22
以管理员权限执行以下命令:  
L
ljc545w 已提交
23 24 25 26 27 28 29
```shell
# 安装
CWeChatRobot.exe /regserver
# 卸载
CWeChatRobot.exe /unregserver
```
# 调用
L
ljc545w 已提交
30
**Python:**  
L
ljc545w 已提交
31
参考[wxRobot.py](/wxRobot.py)  
L
ljc545w 已提交
32 33
**C#:**  
参考[Program.cs](/wxRobot/Program.cs)
L
ljc545w 已提交
34
# 更多功能
L
ljc545w 已提交
35 36
目前没有添加更多功能的计划  
已找到如下功能的CALL或HOOK位置:  
37
1. 检测好友状态(已添加的功能)  
L
ljc545w 已提交
38 39 40 41 42
2. 文本消息和各类xml消息  
3. 未加密图片数据  
4. 未加密聊天表情  
5. 语音消息(SILK_V3格式)  
6. 微信Duilib界面xml文件  
L
ljc545w 已提交
43

L
ljc545w 已提交
44
暂时没有空闲时间继续开发,如果想开发相关功能请发邮件到ljc545w@qq.com  
L
ljc545w 已提交
45
**也欢迎您提交PR**  
L
ljc545w 已提交
46
# 已知BUG
L
ljc545w 已提交
47 48
~~获取个人信息的接口不能很好的工作,因为需要判断数据是否是一个指针。~~  
~~使用该接口将导致微信崩溃。~~  
L
ljc545w 已提交
49
已对个人信息接口做了简单的修复,如果还有问题可报issue或搜索报错解决。
L
ljc545w 已提交
50 51 52 53
# 2022.04.01更新
1. 使用SAFEARRAY返回通讯录列表,可正确显示好友昵称中的特殊符号  
2. README中添加目录说明  
3. 更新C#示例代码,添加好友列表的遍历示例
L
ljc545w 已提交
54
# 打赏作者
L
ljc545w 已提交
55
请给作者一个star,感谢感谢  
L
ljc545w 已提交
56
# 免责声明
L
ljc545w 已提交
57
代码仅供交流学习使用,请勿用于非法用途和商业用途!如因此产生任何法律纠纷,均与作者无关!