百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
W

wxbot

> 编程语言
开源

PC微信Hook模块、Hook WeChat/微信逆向、微信机器人、WeChatRobot

1.1K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

PC微信Hook模块、Hook WeChat/微信逆向、微信机器人、WeChatRobot

wxbot - 微信聊天机器人

适用于微信(WeChat 3.9.8.25 | 3.9.8.15 | 3.9.7.29) 可在Windows PC微信 设置 - 关于微信 - 版本信息 中获取您当前的微信版本,如果您当前的微信版本不在上述可用的版本列表中,请至下方 3、可用版本微信安装包获取 选择最新版微信重新安装使用

未经过大量测试,存在封号风险!

免责声明

本仓库发布的内容,仅用于学习研究,请勿用于非法用途和商业用途!如因此产生任何法律纠纷,均与作者无关! 无任何后门、木马,也不获取、存储任何信息,请大家在国家法律、法规和腾讯相关原则下学习研究! 不对任何下载和使用者的任何行为负责,请于下载后24小时内删除!

关于免注

因注入版本(注入DLL,功能多点)被举报了后续不再更新了,和使用方式(READNE.md)一起放在wxbot-injector目录下了 现在只更新免注版本了 (免注只是不注入DLL了,并不是真的不需要注入!)

1、运行

bin目录下wxbot-sidecar.exe,直接运行即可

  • wxbot-sidecar.exe (bin/wxbot-sidecar.exe)

多种情况说明:

  • 当无微信进程在运行时会主动拉起微信(会从注册表找微信安装目录,如果是非Setup方式安装的可能拉不起来,那么请手动启动微信并使用-p参数指定pid)
  • 如微信已运行(非多开模式下)会获取当前运行中的微信进程号
  • 您也可以使用-p参数手动指定微信进程号
…

目前免注入版本仅支持 3.9.8.25,请务必确认版本号正确

Linux下Docker部署

在 Linux 下使用 Docker 部署 Wechat + wxbot 全部流程已经跑通了,目前构建的公共镜像测试时间不长稳定性未知,建议各位使用时先测试 构建方式在docker路径下查看README.md和Dockerfile

…

2、使用

如果您在使用时遇到了缺少运行库的报错 如:由于找不到 MSVCP140.dll,无法继续执行代码。重新安装程序可能会解决此问题 如果您遇到了此类问题可通过文档最下方的网盘链接中下载 微软常用运行库.exe 进行安装 或通过此链接下载最新微软常用运行库合集解决

如果您不希望在启动时弹出命令行窗口(CMD黑框框),那么您可以使用-s参数以静默方式运行!

2.1、自动登陆

目前已支持自动登陆,这里有两种情况:

  • 之前微信已登陆过,再次启动时出现登陆按钮,如果您启动wxbot-sidecar时指定了-b参数,则会自动触发登陆,您只需在手机端确认登陆即可(请注意,当您使用-s/--silence参数进行静默运行时-b/--auto-click-login参数不生效!)
  • 之前微信未登陆过或被取消登陆,此时会渲染出二维码图片,您可以在命令行参数中指定-q参数,例如:-q http://127.0.0.1:8081/qrcode-callback 来指定一个二维码图像的回调地址,或者您也可以在配置文件中指定(参考下方的配置文件示例),当然如果您就在屏幕前,您可以直接扫码登陆

配置二维码图片回调时,命令行参数中指定的回调地址优先级要高于配置文件

2.2、多开

  • 如果您只有一个微信实例在运行并需要注入或快速上手,那么您无需关心其它参数,直接双击运行即可
  • 如果您需要多开微信,那么请先使用wxbot-sidecar.exe -m解除微信多开限制(执行时机并不重要,您可以在任何情况下去解除多开限制)
  • 如果您已经解除了多开限制,并希望对运行中的多个微信实例进行注入:
    • (可选)使用-a参数指定每个实例监听的地址(格式为:ip:port),如果您的配置文件中未指定addr或地址冲突,那么此-a参数是必选项,否则会导致端口冲突
    • (可选)使用-c参数指定第二个配置文件地址,如果您不指定一个新的配置文件地址,那么可能会导致您多个wxbot-sidecar实例共用一份配置文件(包括但不限于回调地址操作会同时影响该配置文件),推荐用法是对于多开实例每份实例使用-c参数去指定不同的配置文件运行
  • 请注意!如果您在多开模式下希望使用wxbot-sidecar.exe拉起新的微信实例,那么您需要为每个微信新实例加上-w参数,例如:wxbot-sidecar.exe -w 或是 wxbot-sidecar.exe -w -a 0.0.0.0:8081

2.3、配置文件

配置文件支持两种方式分别是:

  • wxbot.json: 这是默认的配置文件(如果有的话)

Tips: 配置文件路径为 wxbot-sidecar.exe 所在的同级目录,或使用-c参数指定配置文件路径 配置文件为json格式,默认不自动创建! 配置文件优先级:-c 参数指定的配置文件 > wxbot.json > 无配置文件时的默认值

2.3.1、配置文件示例

…
  • addr: wxbot服务监听地址(固定为ip:port形式)
  • sync-url: http回调地址列表(建议通过下面的/sync-url接口修改,不要手动修改)
    • qrcode: 登陆界面出二维码图像时,二维码URL的回调地址
      • url: 回调url
      • timeout: 回调超时时间
    • general-msg: 普通类型消息回调地址
      • url: 回调url
      • timeout: 回调超时时间

Tips:这里的http://localhost:8081/callback只是一个例子,而并非必须的,如果您未启动此回调地址,那么请删除它,否则一个不可达地址将会影响后续每个回调的到达时间!

  • authorization: 鉴权 鉴权使用方法请您至下方 5、鉴权 了解更多
    • enable: 是否开启鉴权
    • users: 用户列表(这是一个对象数组)
      • user: 用户名
      • password: 密码
      • token: 登陆后的token
  • root-dir: 发送和获取的泛文件(图片、语音、视频、文件)存放路径,同时也会启动一个文件服务端,默认值是微信安装目录下
  • log
    • level: 日志级别:分为 trace、debug、info、warn,如果您在使用中遇到了闪退、崩溃等问题,那么请将此log.level指定为trace后收集日志反馈

实际上配置文件中的所有字段都是非必填项,它们都可以独立存在,如果您不需要配置任何项,那么请不要创建它!

2.2、路由列表

响应信息 固定为JSON格式响应: {"code": 200, data: xxxx, "message": "xxx"}

  • code: 固定200
  • message: 成功为success,失败为faild,或是其它错误提示信息
  • data: 根据请求接口不同数据不同,无特别描述时下面的请求接口返回字段全部为该data字段的子字段

路由列表概览:

  • 功能类

    • /api/checklogin - 检查登陆状态
    • /api/userinfo - 获取登陆用户信息
    • /api/contacts - 获取通讯录信息(wxid从这个接口获取),不建议使用,请使用下面的/api/dbcontacts
    • /api/dbcontacts - 从数据库中获取通讯录信息(wxid从这个接口获取)
    • /api/sendtxtmsg - 发送文本消息(好友和群聊组都可通过此接口发送,群聊组消息支持艾特)
    • /api/sendimgmsg - 发送图片消息(支持json和form-data表单上传两种方式,json方式请将二进制数据使用base64编码后发送)
    • /api/sendfilemsg - 发送文件消息(支持json和form-data表单上传两种方式,json方式请将二进制数据使用base64编码后发送)
    • /api/chatroom - 获取群聊组成员列表,不建议使用,请使用下面的/api/dbchatroom
    • /api/dbchatroom - 从数据库中获取群聊组信息和成员列表
    • /api/accountbywxid - WXID反查微信昵称(支持好友、群聊组和群聊组内成员等),不建议使用,请使用下面的/api/dbaccountbywxid
    • /api/dbaccountbywxid - 从数据库中通过WXID反查微信昵称(支持好友、群聊组和群聊组内成员等)
    • /api/forwardmsg - 消息转发
    • /api/dbs - 获取支持查询的数据库句柄
    • /api/execsql - 通过数据库句柄执行SQL语句
    • /api/lz4decode - 将lz4压缩的数据进行解码(请求数据需要base64)
    • /close - 停止 wxbot-sidecar(此命令用来停止http server,并中止程序运行)
  • 回调注册类(目前仅用来获取微信实时消息 - 同步消息接口,同时支持WebSocket和http两种方式!)

    • /ws/generalMsg - 注册websocket回调(支持注册多个ws通道):通用消息回调
    • /ws/publicMsg - 注册websocket回调(支持注册多个ws通道):订阅号(公众号)消息回调
    • /api/syncurl - http回调相关(支持注册多个http接口,注册请带上协议头:http/https,注册成功会持久化到配置文件中)

2.2.1、功能类接口

以[]中括号括起来的字段为可选字段 目前所有请求和响应字段均按大驼峰命名法规范

2.2.1.0、检查登陆状态

协议信息

GET /api/checklogin

别名

/api/checkLogin

/api/check-login

/api/check_login

响应字段

  • status string: 1: 登陆正常,其余非1值都为异常状态
  • wxid string: 登陆用户wxid
2.2.1.1、登陆用户信息

协议信息

GET /api/userinfo

别名

/api/userInfo

/api/user-info

/api/user_info

响应字段

  • customAccount string: 微信号
  • city string: 城市
  • country string:国家
  • dbKey string:数据库加密key,可解密读取数据库
  • nickname string: 微信昵称
  • phone string: 手机号
  • phoneSystem string: 手机系统
  • privateKey string:私钥
  • profilePicture string: 头像
  • province string:省
  • publicKey string:公钥
  • signature string:个性签名
  • wxid string
2.2.1.2、通讯录

不建议使用,请使用下面的从数据库中获取通讯录接口

协议信息

GET /api/contacts

响应字段

  • contacts array
    • customAccount string: 微信号
    • nickname string: 昵称
    • v3 string
    • note string: 备注
    • notePinyin string: 备注拼音首字母大写
    • notePinyinAll string: 备注拼音全
    • pinyin string: 昵称拼音首字母大写
    • pinyinAll string: 昵称拼音全
    • profilePicture string:头像
    • profilePictureSmall string:小头像
    • reserved1 string
    • reserved1 string
    • type string
    • verifyFlag string
    • wxid string
  • total uint64: 通讯录成员总数
2.2.1.3、从数据库中获取通讯录

协议信息

GET /api/dbcontacts

别名

/api/dbContacts

/api/db-contacts

/api/db_contacts

响应字段

  • contacts array
    • Alias string: 微信号
    • NickName string: 昵称
    • EncryptUserName string:v3
    • Remark string: 备注
    • RemarkPYInitial string: 备注拼音首字母大写
    • RemarkQuanPin string: 备注拼音全
    • PYInitial string: 昵称拼音首字母大写
    • QuanPin string: 昵称拼音全
    • profilePicture string:头像
    • profilePictureSmall string:小头像
    • type string
    • UserName string:wxid
    • 其余字段请自测
  • total uint64: 通讯录成员总数
2.2.1.4、发送文本消息

对于群聊组消息发送支持艾特

协议信息

POST /api/sendtxtmsg

别名

/api/sendTxtMsg

/api/send-txt-msg

/api/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、发送图片消息

如果您发送图片失败,那么可能是权限问题,如果您的程序工作目录(wxbot-sidecar所在的目录)是在C盘,那么请尝试移动到其他分区中,例如D盘,如果还未解决,请您在github上提issue或加交流群反馈

协议信息

POST /api/sendimgmsg

别名

/api/sendImgMsg

/api/send-img-msg

/api/send_img_msg

/api/sendimagemsg

/api/sendImageMsg

/api/send-image-msg

/api/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、发送文件消息

如果您发送文件失败,那么可能是权限问题,如果您的程序工作目录(wxbot-sidecar所在的目录)是在C盘,那么请尝试移动到其他分区中,例如D盘,如果还未解决,请您在github上提issue或加交流群反馈

协议信息

POST /api/sendfilemsg

别名

/api/sendFileMsg

/api/send-file-msg

/api/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: 文件名(使用file字段时,此字段必填)
  • form-data表单 符合标准form-data数据格式,需要参数分别是wxid、path和image

Tips: 当文件大小大于5M时则建议使用path文件路径的方式传参,但这并不意味着file不支持大文件发送,只是它需要更久的调用时间,可能是分钟级!path和file二选一即可,当path和file同时存在时,path优先,当使用JSON格式和file参数直接传递文件数据时filename是必填项!

path和file二选一即可,当path和file同时存在时,path优先

2.2.1.7、获取群聊组信息

不建议使用,请使用下面的从数据库中获取群聊组信息

协议信息

同时支持GET和POST

GET /api/chatroom?wxid=xxxx POST /api/chatroom

别名

/api/chatRoom

/api/chat-room

/api/chat_room

请求字段

  • JSON:
    • wxid string

响应字段

  • data map
    • wxid string:
      • customAccount string:微信号
      • nickname string:昵称
      • note string:备注
      • pinyin string: 昵称拼音首字母大写
      • pinyinAll string: 昵称拼音全
      • profilePicture string:头像
      • profilePictureSmall string:小头像
      • v3 string

2.2.1.8、从数据库中获取群聊组成员信息

协议信息

同时支持GET和POST

GET /api/dbchatroom?wxid=xxxx POST /api/dbchatroom

别名

/api/dbChatRoom

/api/db-chat-room

/api/db_chat_room

请求字段

  • JSON:
    • wxid string

响应字段

  • data map
    • Announcement string:群公告
    • AnnouncementEditor string:群公告编辑人
    • AnnouncementPublishTime string:群公告编辑秒级时间戳
    • wxid string:
      • Alias string: 微信号
      • NickName string: 昵称
      • EncryptUserName string:v3
      • Remark string: 备注
      • RemarkPYInitial string: 备注拼音首字母大写
      • RemarkQuanPin string: 备注拼音全
      • PYInitial string: 昵称拼音首字母大写
      • QuanPin string: 昵称拼音全
      • profilePicture string:头像
      • profilePictureSmall string:小头像
      • type string
      • UserName string:wxid
    • 其余字段请自测

2.2.1.9、WXID反查信息

不建议使用,请使用下面的从数据库中通过WXID反查信息 协议信息

同时支持GET和POST

GET /api/accountbywxid?wxid=xxxx POST /api/accountbywxid

别名

/api/accountByWxid

/api/account-by-wxid

/api/account_by_wxid

请求字段

  • JSON:
    • wxid string

响应字段

  • customAccount string:微信号
  • nickname string:昵称
  • note string:备注
  • pinyin string: 昵称拼音首字母大写
  • pinyinAll string: 昵称拼音全
  • profilePicture string:头像
  • profilePictureSmall string:小头像
  • v3 string

2.2.1.10、从数据库中通过WXID反查信息

协议信息

同时支持GET和POST

GET /api/dbaccountbywxid?wxid=xxxx POST /api/dbaccountbywxid

别名

/api/dbAccountByWxid

/api/db-account-by-wxid

/api/db_account_by_wxid

请求字段

  • JSON:
    • wxid string

响应字段

  • Alias string: 微信号
  • NickName string: 昵称
  • EncryptUserName string:v3
  • Remark string: 备注
  • RemarkPYInitial string: 备注拼音首字母大写
  • RemarkQuanPin string: 备注拼音全
  • PYInitial string: 昵称拼音首字母大写
  • QuanPin string: 昵称拼音全
  • profilePicture string:头像
  • profilePictureSmall string:小头像
  • type string
  • UserName string:wxid
  • 其余字段请自测

2.2.1.11、转发消息

协议信息

同时支持GET和POST

GET /api/forwardmsg?wxid=xxxxxxxxxxx&msgId=xxxxxxxxxxxx POST /api/forwardmsg

别名

/api/forwardMsg

/api/forward-msg

/api/forward_msg

请求字段

这里说明一下,因为前端精度问题,有些大佬可能传递msgId字段时存在精度丢失或自动转字符串的问题,所以这里我将msgId字段设置为了同时支持uint64和string两种类型!

  • JSON:
    • wxid string:本次转发消息的接收对象
    • msgId uint64|string:消息id(通常可以用消息回调或者websocket回调获取到,当前是消息回调中的MsgSvrID字段)

2.2.1.12、获取数据库句柄

协议信息

GET /api/dbs

响应字段

map

  • string: 数据库名
  • uint64: 句柄

2.2.1.13、执行SQL语句

协议信息

同时支持GET和POST

GET /api/execsql?dbName=PublicMsg.db&sql='select * from Publi

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Go

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言