Skip to content

PC微信机器人,实现获取通讯录,发送文本、图片、文件等消息,封装COM接口供Python、C#调用

Notifications You must be signed in to change notification settings

ZdDroid/ComWeChatRobot

 
 

Repository files navigation

描述

PC微信机器人,实现获取通讯录、发送文本、图片、文件、xml文章、分享名片消息
封装COM接口,可供Python、C#调用

可用版本

微信电脑版3.5.0.46
微信电脑版3.6.0.18
主分支对应微信3.6.0.18版本,其他版本请查看对应分支。

编译环境

Visual Studio 2019(平台配置:win32(x86))

原理

通过逆向PC微信,定位到关键CALL,dll内联汇编调用
注册32位COM组件,供64位/32位进程外部调用

目录说明

./CWeChatRobot:COM组件的实现代码
./DWeChatRobot:注入的DLL实现代码
./wxRobot: 包含C#的调用示例
./wxRobot.py:python示例文件
./Release/CWeChatRobot.exe:编译的COM组件
./Release/DWeChatRobot.dll:编译的DLL文件
./Release/WeChatTools.exe:用于调试时注入或卸载DLL程序,具体参阅相关代码

注册COM

以管理员权限执行以下命令:

# 安装
CWeChatRobot.exe /regserver
# 卸载
CWeChatRobot.exe /unregserver

调用

Python:
参考wxRobot.py
C#:
参考Program.cs

更多功能

已找到如下功能的CALL或HOOK位置:

  1. 检测好友状态(已添加的功能)
  2. 接收文本消息和各类xml消息(已添加的功能)
  3. 未加密图片数据
  4. 未加密聊天表情
  5. 语音消息(SILK_V3格式)
  6. 微信Duilib界面xml文件

暂时没有空闲时间开发上述功能,如果想开发相关功能请发邮件到ljc545w@qq.com
也欢迎您提交PR

更新记录

2022.04.01

  1. 使用SAFEARRAY返回通讯录列表,可正确显示好友昵称中的特殊符号
  2. README中添加目录说明
  3. 更新C#示例代码,添加好友列表的遍历示例

2022.04.11

  1. 修改获取个人信息接口和发送文章接口,兼容老版wxid(未经测试,如有问题请提ISSUE)
  2. 添加接收消息的接口,可以写回调对消息进行处理(参考Python示例文件)

2022.04.12

  1. 添加发送群艾特消息的接口(后续考虑添加根据群ID查询所有群成员接口)

打赏作者

请给作者一个star,感谢感谢

免责声明

代码仅供交流学习使用,请勿用于非法用途和商业用途!如因此产生任何法律纠纷,均与作者无关!

About

PC微信机器人,实现获取通讯录,发送文本、图片、文件等消息,封装COM接口供Python、C#调用

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 57.6%
  • C 36.6%
  • Python 4.5%
  • C# 1.3%