wxbot
所属分类:机器人/智能制造
开发工具:GO
文件大小:0KB
下载次数:0
上传日期:2023-11-11 13:31:19
上 传 者:
sh-1993
说明: PC微信Hook模块、Hook WeChat 微信逆向、微信机器人、WeChatRobot
(PC WeChat Hook module, Hook WeChat reverse, WeChat robot, WeChatRobot)
文件列表:
bin/ (0, 2024-01-03)
bin/wxbot-sidecar.exe (919552, 2024-01-03)
go-client/ (0, 2024-01-03)
go-client/go-client.exe (11455488, 2024-01-03)
go-client/go.mod (1338, 2024-01-03)
go-client/go.sum (7882, 2024-01-03)
go-client/main.go (11599, 2024-01-03)
public/ (0, 2024-01-03)
public/1.jpg (58398, 2024-01-03)
public/1.txt (11, 2024-01-03)
public/alipay_collection.jpg (285687, 2024-01-03)
public/wechat_collection.jpg (127766, 2024-01-03)
python_client/ (0, 2024-01-03)
python_client/main.py (2751, 2024-01-03)
wxbot-injector/ (0, 2024-01-03)
wxbot-injector/bin/ (0, 2024-01-03)
wxbot-injector/bin/injector.exe (37376, 2024-01-03)
wxbot-injector/bin/wxbot-3.9.7.29.dll (919552, 2024-01-03)
wxbot-injector/bin/wxbot-3.9.8.15.dll (373760, 2024-01-03)
wxbot-injector/go-client/ (0, 2024-01-03)
wxbot-injector/go-client/go-client.exe (11364352, 2024-01-03)
wxbot-injector/go-client/go.mod (1338, 2024-01-03)
wxbot-injector/go-client/go.sum (7882, 2024-01-03)
wxbot-injector/go-client/main.go (8691, 2024-01-03)
wxbot-injector/python_client/ (0, 2024-01-03)
wxbot-injector/python_client/main.py (2751, 2024-01-03)
# wxbot - 微信聊天机器人
> 适用于微信(WeChat **3.9.8.15** | 3.9.7.29)
> 可在Windows PC微信 **设置** - **关于微信** - **版本信息** 中获取您当前的微信版本,如果您当前的微信版本不在上述可用的版本列表中,请至下方 **3、可用版本微信安装包获取** 选择最新版微信重新安装使用
**未经过大量测试,使用远程线程注入方式可能会被报毒(无毒,请放心使用!),也可以尝试其它方式进行注入,注入手段并不重要,只要将wxbot.dll注入到wechat.exe中即可**
## 免责声明
**本仓库发布的内容,仅用于学习研究,请勿用于非法用途和商业用途!如因此产生任何法律纠纷,均与作者无关!**
**无任何后门、木马,也不获取、存储任何信息,请大家在国家法律、法规和腾讯相关原则下学习研究!**
**不对任何下载和使用者的任何行为负责,请于下载后24小时内删除!**
## 1、运行
bin目录下有如下两个文件(仅在windows 10 & windows server 2012 R2系统上进行测试):
* **injector.exe (bin/injector.exe)**
* **wxbot.dll (bin/wxbot.dll)**
简单方式可直接运行 `injector.exe` 即可自动拉起微信并完成注入!
默认wxbot.dll为最新版(3.9.8.15),低版本微信注入请选择对应版本的wxbot-xxxx.dll替换为wxbot.dll后注入即可
### Linux下Docker部署
> 在 `Linux` 下使用 `Docker` 部署 `Wechat` + `wxbot` 全部流程已经跑通了,后面我会构建成一个公共镜像供大家使用(但使用 `wine` 运行 `WeChat` 的稳定性如何到时还需要大家帮忙一起测试了)
## 2、使用
> **如果您在运行注入器(`injector.exe`)时遇到了缺少运行库的报错**
> **如:由于找不到 `MSVCP140.dll`,无法继续执行代码。重新安装程序可能会解决此问题**
> **如果您遇到了此类问题可通过文档最下方的网盘链接中下载 *微软常用运行库.exe* 进行安装**
> [或通过此链接下载最新微软常用运行库合集解决](https://www.lanzoux.com/b0dptvb0f)
### 2.1、注入器
> 注入器(`injector.exe`)目前支持:
> * 直接运行可启动微信并完成自动注入
> * 按微信PID(进程号)注入
> * 注入卸载(当您开启了隐藏注入时,此功能不可用!)
> * 指定注入的DLL路径
> * 开启微信多开(取消微信多开限制)
>
> 具体使用方式您可以使用`inject.exe --help`命令查看!
```powershell
$ injector.exe --help
Usage: injector.exe [ OPTIONS ] [ VALUE ]
Options:
-p, --pid [ pid ] Specify the process number for injection
-d, --dll [ path ] Specify the DLL path to be injected
-i, --inject inject DLL
-u, --uninject uninject DLL
-m, --multi Remove WeChat multi instance restrictions (allowing multiple instances)
-s, --silence Enable silent mode(without popping up the console)
-h, --help Output Help Information
```
**Tips:**
* 如果您只有一个微信实例在运行并需要注入,那么您无需关心其它参数,直接运行即可注入
* 如果您需要多开微信,那么请使用`inject.exe -m`解除微信多开限制(执行时机并不重要,您可以在任何情况下去解除多开限制),**但是您需要注意,如果您已经运行了多个微信实例,那么此时请不要尝试直接运行inject.exe进行注入了,而是使用`-p`参数对指定微信进程号进行注入!**
* 如果您已经解除了多开限制,并希望对运行中的多个微信实例进行注入,那么您需要使用`-p`参数对每个微信的进程号进行注入
### 2.2、配置文件
> 配置文件支持两种方式分别是:
> * **[wxid].json:** 支持登陆用户wxid的专属配置文件,如你登陆的微信用户wxid是abc,且微信根目录下有abc.json配置文件的话则优先读取此配置文件!
> * **wxbot.json:** 这是默认的配置文件(如果有的话)
>
> **Tips:**
> **配置文件路径为 `WeChat.exe` 所在的同级目录(也就是微信的安装目录)**
> **配置文件为json格式,默认不自动创建!**
> **配置文件优先级:[wxid].json > wxbot.json > 无配置文件时的默认值**
>
> **这样设计配置文件优先级是为了适配微信多开而不那么优雅的实现方式,具体您可以看 `4. 多开高级用法` 了解更多**
#### 2.2.1、配置文件示例
```json
{
"addr": "0.0.0.0:8080",
"sync-url": [
{
"timeout": 3000,
"url": "http://localhost:8081/callback"
}
],
"hide-module": false,
"authorization": {
"enable": false,
"users": [
{
"user": "admin",
"password": "123",
"token": "token123"
},
{
"user": "user",
"password": "321",
"token": "token321"
}
]
}
}
```
* **addr:** wxbot服务监听地址(固定为ip:port形式)
* **sync-url:** http回调地址列表(建议通过下面的/sync-url接口修改,不要手动修改)
* **url:** 回调url
* **timeout:** 回调超时时间
**Tips:这里的`http://localhost:8081/callback`只是一个例子,而并非必须的,如果您未启动此回调地址,那么请删除它!**
* **hide-module:** 是否隐藏注入,当开启隐藏注入时 inject.exe 的注入卸载将不可用,此时您只能通过重启微信的方式来卸载DLL!
* **authorization:** 鉴权 **鉴权使用方法请您至下方 `5、鉴权` 了解更多**
* **enable:** 是否开启鉴权
* **users:** 用户列表(这是一个对象数组)
* **user:** 用户名
* **password:** 密码
* **token:** 登陆后的token
**实际上配置文件中的所有字段都是非必填项,它们都可以独立存在!**
### 2.2、路由列表
> 响应信息
> **固定为JSON格式响应:** {"code": 200, data: xxxx, "message": "xxx"}
> * **code:** 固定200
> * **message:** 成功为success,失败为faild,或是其它错误提示信息
> * **data:** 根据请求接口不同数据不同,无特别描述时下面的请求接口返回字段全部为该data字段的子字段
**路由列表概览:**
* **功能类**
* **/checklogin** - 检查当前是否已登录(兼容接口,没什么用)
* **/userinfo** - 获取登陆用户信息
* **/contacts** - 获取通讯录信息(wxid从这个接口获取)
* **/sendtxtmsg** - 发送文本消息(好友和群聊组都可通过此接口发送,群聊组消息支持艾特)
* **/sendimgmsg** - 发送图片消息(支持json和form-data表单上传两种方式,json方式请将二进制数据使用base64编码后发送)
* **/sendfilemsg** - 发送文件消息(支持json和form-data表单上传两种方式,json方式请将二进制数据使用base64编码后发送)
* **/chatroom** - 获取群聊组信息,包括:管理员、公告、成员列表等
* **/accountbywxid** - WXID反查微信昵称(支持好友和群聊组等)
* **/sendcardmsg** - 发送卡片消息
* **/close** - 注入卸载(仅卸载 `wxbot.dll` 的注入,不会关闭或重启微信)
* **回调注册类(目前仅用来获取微信实时消息 - 同步消息接口,同时支持WebSocket和http两种方式!)**
* **/ws** - 注册websocket回调(支持注册多个ws通道)
* **/syncurl** - http回调相关(支持注册多个http接口,注册请带上协议头:http/https,注册成功会持久化到配置文件中)
#### 2.2.1、功能类接口
> **以`[]`中括号括起来的字段为可选字段**
> **目前所有请求和响应字段均按大驼峰命名法规范**
##### 2.2.1.1、检查当前是否已登录
**协议信息**
GET /checklogin
**别名**
/checkLogin
/check-login
/check_login
**响应字段**
* status *uint64*: 当前登陆状态:0 未登陆 - 1 已登陆
##### 2.2.1.2、登陆信息
**协议信息**
GET /userinfo
**别名**
/userInfo
/user-info
/user_info
**响应字段**
* customAccount *string*: 微信号
* nickname *string*: 微信昵称
* phone *string*: 手机号
* phoneSystem *string*: 手机系统
* profilePicture *string*: 头像
* profilePictureSmall *string*: 小头像
* wxid *string*
##### 2.2.1.3、通讯录
**协议信息**
GET /contacts
**响应字段**
* contacts *array*
* customAccount *string*: 微信号
* nickname *string*: 昵称
* note *string*: 备注
* pinyin *string*: 昵称拼音首字母大写
* pinyinAll *string*: 昵称拼音全
* type1 *uint64*: 用户类别1
* type2 *uint64*: 用户类别2
* wxid *string*
* total *uint64*: 通讯录成员总数
##### 2.2.1.4、发送文本消息
> 对于群聊组消息发送支持艾特
**协议信息**
POST /sendtxtmsg
**别名**
/sendTxtMsg
/send-txt-msg
/send_txt_msg
**请求字段**
* wxid *string*
* content *string*:发送消息内容(如果是群聊组消息并需要发送艾特时,**此content字段中需要有对应数量的`@[自定义被艾特人的昵称,不得少于2个字符] [每个艾特后都需要一个空格以进行分隔(包括最后一个艾特!)]`,这一点很重要! 如果您不理解,请继续看下面的Tips!**)
* [atlist] *array\*:如果是群聊组消息并需要发送艾特时,此字段是一个被艾特人的数组
**Tips:如果是群聊艾特消息,那么`content`字段中的`@`艾特符号数量需要和`atlist`中的被艾特人数组长度一致,简单来说,就是`atlist`中有多少个被艾特人的`wxid`,那么`content`字段中就需要有多少个艾特组合,位置随意,例如:**
`{"wxid": "xx@chatroom", "content": "这里@11 只是@22 想告诉你@33 每个被艾特人的位置并不重要", "atlist": ["wxid_a", "wxid_b", "wxid_c"]}`
**每个被艾特人在`content`中 固定为`@[至少两个字符的被艾特人名] + 一个空格`!**
**如果是发送`@所有人`消息,那么请在`atlist`字段中仅传入一个`notify@all`字符串,`content`字段中仅包含一个`@符号规范(最少两字符+一个空格)`, 一般建议是`@所有人`见名知意**
**响应示例**
{"code":200,"msg":"success"}
##### 2.2.1.5、发送图片消息
**协议信息**
POST /sendimgmsg
**别名**
/sendImgMsg
/send-img-msg
/send_img_msg
/sendimagemsg
/sendImageMsg
/send-image-msg
/send_image_msg
> 支持JSON和form-data表单两种方式提交
**请求头**
* **JSON:`Content-Type: application/json`**
* **form-data表单:`Content-Type: multipart/form-data`**
**请求字段**
* **JSON:**
* wxid *string*
* path *string*:图片路径(注意,这里的图片路径是bot登陆系统的路径!)
* image *string*: 图片二进制数据base64编码后字符串 **(不需要加 `data:image/jpeg;base64,` 前缀)**
* clear *bool*: 指定图片发送后是否需要删除,默认删除 **(需要注意的是,图片文件保存后并没有后缀,这意味着如果您需要查看历史发送图片,那么您需要至`[微信根目录]/temp`自行查看判断图片格式并添加后缀)**
* **form-data表单**
符合标准`form-data`数据格式,需要参数分别是`wxid`、`path`和`image`
`path`和`image`二选一即可,当`path`和`image`同时存在时,`path`优先
##### 2.2.1.6、发送文件消息
**协议信息**
POST /sendfilemsg
**别名**
/sendFileMsg
/send-file-msg
/send_file_msg
> 支持JSON和form-data表单两种方式提交
**请求头**
* **JSON:`Content-Type: application/json`**
* **form-data表单:`Content-Type: multipart/form-data`**
**请求字段**
* **JSON:**
* wxid *string*
* path *string*:文件路径(注意,这里的文件路径是bot登陆系统的路径!)
* file *string*: 文件二进制数据base64编码后字符串
* filename *string*: 文件名
* **form-data表单**
符合标准`form-data`数据格式,需要参数分别是`wxid`、`path`和`image`
**Tips:** 当文件大小大于`5M`时则建议使用`path`文件路径的方式传参,但这并不意味着`file`不支持大文件发送,只是它需要更久的调用时间,可能是分钟级!`path`和`file`二选一即可,当`path`和`file`同时存在时,`path`优先,当使用`JSON`格式和`file`参数直接传递文件数据时`filename`是必填项!
#### 2.2.1.7、获取群聊组信息
**协议信息**
> 同时支持GET和POST
GET /chatroom?wxid=xxxx&account=true
POST /chatroom
**别名**
/chatRoom
/chat-room
/chat_room
**请求字段**
* **JSON:**
* wxid *string*
* accoun *bool*:为 `true` 时输出中会将每个成员的微信昵称反查带出
**响应字段**
* admin1 *string*:群聊组管理员
* admin2 *string*:一般同上
* adminNickname *string*:管理员昵称
* notice *string*: 群公告
* pinyinAll *string*: 昵称拼音全
* member *array\*: 成员wxid列表
* memberNickname *map\*: 成员群聊昵称(MAP类型)
* [memberAccount] *map\*: 当请求参数中`account`为`true`时存在此字段,map类型,成员微信昵称,value是一个对象,字段为`wxid反查昵称的所有字段`
* xml
* wxid
#### 2.2.1.8、WXID反查微信昵称
**协议信息**
> 同时支持GET和POST
GET /accountbywxid?wxid=xxxx
POST /accountbywxid
**别名**
/accountByWxid
/account-by-wxid
/account_by_wxid
**请求字段**
* **JSON:**
* wxid *string*
**响应字段**
* customAccount *string*:微信号
* nickname *string*:微信昵称
* pinyin *string*:拼音
* pinyinAll *string*:拼音全
* profilePicture *string*:头像链接
* profilePictureSmall *string*:小头像(群聊组仅有小头像,没有`profilePicture`)
* v3 *string*
* wxid *string*
#### 2.2.1.9、发送卡片消息
**协议信息**
POST /sendcardmsg
**别名**
/sendCardMsg
/send-card-msg
/send_card_msg
**请求字段**
* **JSON/form-data:**
* wxid *string*
* title *string*:卡片标题
* url *string*:卡片链接
* [digest *string*]:卡片简介
* [image *string*]:卡片右侧小图(传url)
* [subscriptionAccountId *string*]:订阅号id **此字段在高级版中支持**
* [subscriptionAccountName *string*]:订阅号昵称 **此字段在高级版中支持**
##### 2.2.1.10、卸载
> 这个接口是用来卸载已注入的 `wxbot.dll`,而不关闭微信,可以算是 `injector.exe -u` 的平替
**协议信息**
GET /close
#### 2.2.2、回调注册类
> 目前仅用来同步微信消息
**响应字段**
* wxid *string*: 发送消息的消息人/群聊组wxid
* customAccount *string*: 发送消息的消息人微信号(如果是群聊组此字段为空)
* nickname *string*:发送消息的消息人/群聊组昵称
* content *string*: 消息内容
* toUser *string*: 消息接收人(一般为登陆用户wxid)
* msgid *uint64*: 消息唯一标识
* originMsg *string*: 原始消息(如:wxid:\nxxxxxxx)
* chatRoomSourceWxid *string*: 如果为群聊消息,则为消息发送人wxid
* chatRoomSourceCustomAccount *string*: 如果为群聊消息,则为消息发送人微信号
* chatRoomSourceNickname *string*: 如果为群聊消息,则为消息发送人微信昵称
* msgSource *string*: 加密消息
* type *uint32*: 消息类型
* displayMsg *string*: 展示消息(一般群聊消息下可用)
* [imgData] *string*: base64后的图片数据字符串
**Tips:当`type`为`3`时表示当次消息是图片消息,本次消息中会新增`imgData`字段**
##### 2.2.2.1、websocket协议消息
**协议信息**
GET ws://xxxxx/ws
> websocket没什么好说的,基本上第三方库都有直接可用的实现,协议升级后就是一条全双工通道,目前只用来接收同步微信的实时消息,不要发送消息到服务端,服务端不会响应。
##### 2.2.2.2、http协议
> 需要你自己起一个Http Server服务用来接收微信的实时消息,你自己的Http Server启动之后通过接口注册到wxbot即可
##### 2.2.2.2.1、注册接口
POST /syncurl
**别名**
/syncUrl
/sync-url
/sync_url
**请求字段**
* url: 你自己启动的Http Server地址路由(**ip:port/[subpath]**)
* timeout: 超时时间(当有一条新消息通过wxbot发送到你的回调地址时的最长连接等待时间)
##### 2.2.2.2.2、获取已注册接口列表
GET /syncurl
**别名**
/syncUrl
/sync-url
/sync_url
##### 2.2.2.2.3、删除接口
DELETE /syncurl
**别名**
/syncUrl
/sync-url
/sync_url
**请求字段**
* url: 已注册的Http Server地址(**ip:port/[subpath]**)
### 2.3、接口使用例子
**Windows**
**所有`powershell`或者是使用`cmd`测试发送的例子都可能有编码问题!建议直接用程序测试!**
```powershell
# 发送文本
curl -Method POST -Body '{"wxid":"47331170911@chatroom", "content": "测试内容\nhello world!"}' http://127.0.0.1:8080/sendtxtmsg
# 发送图片
curl -Method POST -ContentType "application/json" -Body '{"wxid":"47331170911@chatroom", "path": "D:\\gopath\\wxbot\\测试.txt"}' http://127.0.0.1:8080/sendfilemsg
# 发送卡片消息(例子仅仅是卡片消息,订阅号消息等待高级版支持)
curl -Method POST -ContentType "application/json" -Body '{"wxid": "47331170911@chatroom", "title": "测试标题", "url": "https://www.baidu.com"}' http://127.0.0.1:8080/sendcardmsg
```
**Linux**
```bash
# 获取登陆用户信息
curl 127.0.0.1:8080/userinfo
# 获取通讯录信息
curl 127.0.0.1:8080/contacts
# 发送文本消息
curl -XPOST -d'{"wxid": "47331170911@chatroom", "content": "测试内容\nHello World"}' 127.0.0.1:8080/sendtxtmsg
# 发送图片消息1(使用form-data表单方式提交)
curl -XPOST -F "wxid=47331170911@chatroom" -F "image=@/home/jwping/1.jpg" 127.0.0.1:8080/sendimgmsg
# 发送图片消息2(使用json方式提交)
curl -XPOST -H "Content-Type: application/json" -d'{"wxid": "47331170911@chatroom", "image": "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 ... ...
近期下载者:
相关文件:
收藏者: