PC微信Hook模块、Hook WeChat/微信逆向、微信机器人、WeChatRobot
适用于微信(WeChat 3.9.8.25 | 3.9.8.15 | 3.9.7.29) 可在Windows PC微信 设置 - 关于微信 - 版本信息 中获取您当前的微信版本,如果您当前的微信版本不在上述可用的版本列表中,请至下方 3、可用版本微信安装包获取 选择最新版微信重新安装使用
未经过大量测试,存在封号风险!
本仓库发布的内容,仅用于学习研究,请勿用于非法用途和商业用途!如因此产生任何法律纠纷,均与作者无关! 无任何后门、木马,也不获取、存储任何信息,请大家在国家法律、法规和腾讯相关原则下学习研究! 不对任何下载和使用者的任何行为负责,请于下载后24小时内删除!
因注入版本(注入DLL,功能多点)被举报了后续不再更新了,和使用方式(
READNE.md)一起放在wxbot-injector目录下了 现在只更新免注版本了 (免注只是不注入DLL了,并不是真的不需要注入!)
bin目录下wxbot-sidecar.exe,直接运行即可
多种情况说明:
-p参数指定pid)-p参数手动指定微信进程号…目前免注入版本仅支持 3.9.8.25,请务必确认版本号正确
在
Linux下使用Docker部署wxbot全部流程已经跑通了,目前构建的公共镜像测试时间不长稳定性未知,建议各位使用时先测试 构建方式在docker路径下查看README.md和Dockerfile
…如果您在使用时遇到了缺少运行库的报错 如:由于找不到
MSVCP140.dll,无法继续执行代码。重新安装程序可能会解决此问题 如果您遇到了此类问题可通过文档最下方的网盘链接中下载 微软常用运行库.exe 进行安装 或通过此链接下载最新微软常用运行库合集解决
如果您不希望在启动时弹出命令行窗口(CMD黑框框),那么您可以使用-s参数以静默方式运行!
目前已支持自动登陆,这里有两种情况:
wxbot-sidecar时指定了-b参数,则会自动触发登陆,您只需在手机端确认登陆即可(请注意,当您使用-s/--silence参数进行静默运行时-b/--auto-click-login参数不生效!)-q参数,例如:-q http://127.0.0.1:8081/qrcode-callback 来指定一个二维码图像的回调地址,或者您也可以在配置文件中指定(参考下方的配置文件示例),当然如果您就在屏幕前,您可以直接扫码登陆配置二维码图片回调时,命令行参数中指定的回调地址优先级要高于配置文件
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配置文件支持两种方式分别是:
- wxbot.json: 这是默认的配置文件(如果有的话)
Tips: 配置文件路径为
wxbot-sidecar.exe所在的同级目录,或使用-c参数指定配置文件路径 配置文件为json格式,默认不自动创建! 配置文件优先级:-c参数指定的配置文件 > wxbot.json > 无配置文件时的默认值
…Tips:这里的http://localhost:8081/callback只是一个例子,而并非必须的,如果您未启动此回调地址,那么请删除它,否则一个不可达地址将会影响后续每个回调的到达时间!
5、鉴权 了解更多log.level指定为trace后收集日志反馈实际上配置文件中的所有字段都是非必填项,它们都可以独立存在,如果您不需要配置任何项,那么请不要创建它!
响应信息 固定为JSON格式响应: {"code": 200, data: xxxx, "message": "xxx"}
- code: 固定200
- message: 成功为success,失败为faild,或是其它错误提示信息
- data: 根据请求接口不同数据不同,无特别描述时下面的请求接口返回字段全部为该data字段的子字段
路由列表概览:
功能类
/api/dbcontacts/api/dbchatroom/api/dbaccountbywxidSQL语句wxbot-sidecar(此命令用来停止http server,并中止程序运行)回调注册类(目前仅用来获取微信实时消息 - 同步消息接口,同时支持WebSocket和http两种方式!)
以
[]中括号括起来的字段为可选字段 目前所有请求和响应字段均按大驼峰命名法规范
协议信息
GET /api/checklogin
别名
/api/checkLogin
/api/check-login
/api/check_login
响应字段
协议信息
GET /api/userinfo
别名
/api/userInfo
/api/user-info
/api/user_info
响应字段
不建议使用,请使用下面的从数据库中获取通讯录接口
协议信息
GET /api/contacts
响应字段
协议信息
GET /api/dbcontacts
别名
/api/dbContacts
/api/db-contacts
/api/db_contacts
响应字段
对于群聊组消息发送支持艾特
协议信息
POST /api/sendtxtmsg
别名
/api/sendTxtMsg
/api/send-txt-msg
/api/send_txt_msg
请求字段
@[自定义被艾特人的昵称,不得少于2个字符] [每个艾特后都需要一个空格以进行分隔(包括最后一个艾特!)],这一点很重要! 如果您不理解,请继续看下面的Tips!)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"}
如果您发送图片失败,那么可能是权限问题,如果您的程序工作目录(
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表单两种方式提交
请求头
Content-Type: application/jsonContent-Type: multipart/form-data请求字段
JSON:
data:image/jpeg;base64, 前缀)[微信根目录]/temp自行查看判断图片格式并添加后缀)form-data表单
符合标准form-data数据格式,需要参数分别是wxid、path和image
path和image二选一即可,当path和image同时存在时,path优先
如果您发送文件失败,那么可能是权限问题,如果您的程序工作目录(
wxbot-sidecar所在的目录)是在C盘,那么请尝试移动到其他分区中,例如D盘,如果还未解决,请您在github上提issue或加交流群反馈
协议信息
POST /api/sendfilemsg
别名
/api/sendFileMsg
/api/send-file-msg
/api/send_file_msg
支持JSON和form-data表单两种方式提交
请求头
Content-Type: application/jsonContent-Type: multipart/form-data请求字段
file字段时,此字段必填)form-data数据格式,需要参数分别是wxid、path和imageTips: 当文件大小大于5M时则建议使用path文件路径的方式传参,但这并不意味着file不支持大文件发送,只是它需要更久的调用时间,可能是分钟级!path和file二选一即可,当path和file同时存在时,path优先,当使用JSON格式和file参数直接传递文件数据时filename是必填项!
path和file二选一即可,当path和file同时存在时,path优先
不建议使用,请使用下面的从数据库中获取群聊组信息
协议信息
同时支持GET和POST
GET /api/chatroom?wxid=xxxx POST /api/chatroom
别名
/api/chatRoom
/api/chat-room
/api/chat_room
请求字段
响应字段
协议信息
同时支持GET和POST
GET /api/dbchatroom?wxid=xxxx POST /api/dbchatroom
别名
/api/dbChatRoom
/api/db-chat-room
/api/db_chat_room
请求字段
响应字段
不建议使用,请使用下面的从数据库中通过WXID反查信息 协议信息
同时支持GET和POST
GET /api/accountbywxid?wxid=xxxx POST /api/accountbywxid
别名
/api/accountByWxid
/api/account-by-wxid
/api/account_by_wxid
请求字段
响应字段
协议信息
同时支持GET和POST
GET /api/dbaccountbywxid?wxid=xxxx POST /api/dbaccountbywxid
别名
/api/dbAccountByWxid
/api/db-account-by-wxid
/api/db_account_by_wxid
请求字段
响应字段
协议信息
同时支持GET和POST
GET /api/forwardmsg?wxid=xxxxxxxxxxx&msgId=xxxxxxxxxxxx POST /api/forwardmsg
别名
/api/forwardMsg
/api/forward-msg
/api/forward_msg
请求字段
这里说明一下,因为前端精度问题,有些大佬可能传递
msgId字段时存在精度丢失或自动转字符串的问题,所以这里我将msgId字段设置为了同时支持uint64和string两种类型!
websocket回调获取到,当前是消息回调中的MsgSvrID字段)协议信息
GET /api/dbs
响应字段
map
SQL语句协议信息
同时支持GET和POST
GET /api/execsql?dbName=PublicMsg.db&sql='select * from Publi
暂无开放 Issues,或尚未同步最近议题。