【教程】微信4.1.12版本作为机器人对接无界(Bncr)

【教程】微信4.1.12版本作为机器人对接无界(Bncr)

时间煮雨-Master
2026-10-13 / 0 评论 / 36 阅读 / 正在检测是否收录...

微信机器人对接无界(Bncr)完整教程

用户微信发消息 → 无界匹配规则 → 业务插件处理 → 自动回复微信

⚠️ 开始前必读

本方案的技术路线:不 Hook、不逆向协议、封号风险低

做法本方案
逆向微信协议(iPad 协议 / Pad 协议)❌ 不采用
注入(Hook)微信进程 / 修改微信 DLL❌ 不采用
伪装异地设备登录❌ 不采用
连接第三方授权服务器❌ 不采用
只读微信本地加密数据库✅ 采用
模拟真人操作本机微信界面✅ 采用

关键点:微信看到的是你自己这台电脑上的微信客户端在正常使用 —— 没有异常登录、没有进程被改、没有 DLL 被注入。

微信版本要求(必须严格满足)

项要求
微信版本4.1.12 及以上(作者在 4.1.15.13 实测验证)
微信 3.x❌ 完全不支持(架构不同)
微信 4.0.x❌ 不支持(低于 4.1.12)
微信 4.1.12 ~ 4.1.15⚠️ 可用,但 UIA 布局可能需校准
微信 4.1.15.13✅ 最佳,作者已适配

查看版本:微信 → 设置 → 关于微信

版本太旧会怎样:控件树热激活的 gate RVA 位置对不上,发送会退回到纯 OCR/坐标路径,慢且不准。
版本太新会怎样:微信大版本升级后 UIA 布局可能漂移,作者需要跟进适配。

环境要求

项要求说明
操作系统Windows 10/11 x64必须 Windows,Linux/Mac 不支持
Python3.12(64 位)⚠️ 3.13+ 会因 winsdk 缺包安装失败
桌面必须可见窗口最小化会失效
微信状态已登录且运行中

目录

  1. 原理与选型
  2. 架构
  3. 第一步:Windows PC 装 wechatauto
  4. 第二步:云服务器部署无界适配器
  5. 第三步:PC 部署桥接脚本
  6. 第四步:端到端联调
  7. 第五步:安全加固
  8. 第六步:开机自启
  9. 排查手册
  10. 附录:文件清单
  11. 风险声明

一、原理与选型

1.1 为什么不选协议端

市面上让个人微信变机器人的方案,主流是「协议端」:

方案原理封号风险第三方依赖
WeChatPadPro / Gewechat逆向 iPad 协议,伪装异地设备登录🔴 高🔴 需连作者授权服务器
WeChatFerry / ntchat注入(Hook)微信 DLL🔴 极高⚠️ 闭源
网页版协议逆向网页微信🔴 高微信已关闭网页版
本方案(wechatauto)读本地加密库 + 驱动本机界面🟡 低✅ 无

为什么协议端和 Hook 风险高:

  • 协议端:微信服务器看到的是「一个新设备在异地登录」,与你的真实登录地/设备指纹不符 → 风控模型直接命中。号商自己都写「新号要挂机 3 天养号」「异地登录必须用同市 socks5 代理」。
  • Hook:微信 4.x 有完整性校验,检测到进程被改会直接判定为外挂 → 秒封。

1.2 本方案的技术原理

wechatauto-replica 用两条互相独立的路线:

┌─────────────────────────────────────────────────┐
│  读路径 = 本地 SQLCipher-4 数据库解密            │
│                                                  │
│  微信把消息存在加密 SQLite 里:                   │
│    xwechat_files/<wxid>/db_storage/              │
│      ├── contact.db                              │
│      ├── message_0.db / message_1.db / ...       │
│      └── media_0.db                              │
│                                                  │
│  密钥藏在 Weixin.exe 进程内存里,库用【只读扫描】 │
│  取出,再用 SQLCipher HMAC 规则逐个校验。         │
│                                                  │
│  ★ 只读本地文件,不产生任何网络请求               │
│  ★ 不修改微信任何文件                             │
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
│  发路径 = UIA 控件树 + 坐标/OCR 兜底              │
│                                                  │
│  微信 4.x 界面是自绘的,控件树默认隐藏。          │
│  库会【热激活】Weixin.dll 里一个标志字节,        │
│  让 mmui::* 控件树物化,然后:                    │
│    · 激活窗口 → 搜索会话 → 点输入框               │
│    · 剪贴板 Ctrl+V 粘贴 → 回读校验 → 回车         │
│                                                  │
│  ★ 走的是微信自己的 UI 流程,等同真人点击         │
│  ★ 不注入代码、不修改 DLL 内容(只翻一个标志位)  │
└─────────────────────────────────────────────────┘

1.3 为什么封号风险低

风控维度协议端本方案
登录设备❌ 伪装 iPad,与真实设备不符✅ 就是本机登录
登录地点❌ 异地,需代理伪装✅ 本机 IP,无异常
进程完整性❌ DLL 被注入/篡改✅ 进程未被修改
行为特征⚠️ 可被识别为机器人✅ 见下方拟人节奏层
数据流向⚠️ 经第三方服务器✅ 纯本地 + 你自己的服务器

作者的真实风控记录(原文引用):

本机账号在 2026-09-21 触发过一次风控(会话中途被要求重新登录),此后凡是驱动真实微信界面的动作都必须按真人节奏走,而且要做进库里。

注意:作者触发风控的原因是「驱动界面太快」(模拟点击频率机器化),不是「读数据库」。所以他做了拟人节奏层 rhythm.py:

拟人措施说明
光标移动走二次贝塞尔曲线,不是瞬移
落点在控件内随机取点,不打正中
键入type_gap() / key_hold() 打破匀速
写动作节流两次发送至少隔 2.5~6 秒
突发上限120 秒窗口内第 7 次写动作 → 冷却 30~75 秒
等待抖动所有 nap() 加随机抖动
跨进程生效节流状态落盘 ~/.wechatauto/rhythm.json
风控看到的是「动作的时间分布」而不是坐标 —— 固定间隔、光标瞬移、永远命中控件正中、逐字匀速键入、几秒内连发多条,这些特征才是风控的判据。拟人层正是针对这些。

读路径完全不节流 —— 因为读本地文件不产生任何风控信号。

1.4 本方案的代价

约束说明
必须 Windows依赖 UIA / pywin32,Linux 跑不了
必须有可见桌面微信窗口最小化 → 发送会退回 OCR 路径
发送会抢鼠标走剪贴板 + 模拟点击,这台机器别用于其他工作
回复延迟 5~8 秒UIA 发送 + 拟人节奏的固有成本

延迟构成:

用户发消息
   ↓ 约 1 秒   (监听轮询数据库)
上报无界
   ↓ 约 0.01 秒(规则匹配 + 插件执行)
PC 取回复
   ↓ 约 0.8 秒 (轮询间隔,可调)
UIA 发送
   ↓ 2~6 秒    (激活窗口 + 打开会话 + 粘贴 + 回读校验 + 回车)
   ↓ 2.5~6 秒  (拟人节奏写动作间隔)
用户看到回复
5~8 秒对大多数场景可接受(用户发「菜单」等几秒很正常)。
想更快只能上协议端 —— 但要拿封号风险换。

1.5 一句话总结

本方案不 Hook、不逆向协议、不伪装登录。
微信看到的是「本机微信在被真人缓慢使用」。
代价是慢几秒、必须 Windows、必须有小号常开的机器。

二、架构

┌─────────────────────────────┐        ┌──────────────────────────────┐
│  Windows PC                 │        │  云服务器                     │
│                             │        │                              │
│  ┌───────────────────────┐  │  HTTP  │  ┌────────────────────────┐  │
│  │ 微信 4.1.12+(已登录) │  │        │  │ 无界 Bncr 容器 (:9090)  │  │
│  │  ★ 窗口必须可见        │  │        │  │                        │  │
│  └───────────┬───────────┘  │        │  │  ├─ 无界本体            │  │
│              │ 读库 / UIA   │        │  │  └─ WeChatBridge 适配器 │  │
│  ┌───────────▼───────────┐  │        │  │     (挂 router)       │  │
│  │ wechat_bridge.py      │──┼───────→│  └───────────┬────────────┘  │
│  │  · AddListenAll 监听   │  │ POST   │             │ adapter.receive()
│  │  · 上报新消息          │  │/incoming│             ↓               │
│  │  · 轮询取回复          │←─┼────────│  ┌────────────────────────┐  │
│  │  · chat.SendMsg()      │  │ GET    │  │ 无界规则匹配 @rule      │  │
│  └───────────────────────┘  │ /pull  │  └───────────┬────────────┘  │
│                             │        │              ↓               │
│  出网:只需访问云服务器 9090 │        │  ┌────────────────────────┐  │
│  ★ 无需公网 IP、无需穿透     │        │  │ 业务插件(YYB查询等)   │  │
└─────────────────────────────┘        │  │  sender.reply(...)      │  │
                                       │  └────────────────────────┘  │
                                       └──────────────────────────────┘

穿透方向是「PC 主动连出去」 —— 所以 PC 在内网也能用,不需要公网 IP、不需要 frp。

数据流(六步)

#动作耗时
1用户发微信消息—
2AddListenAll 轮询数据库读到约 1 秒
3POST /wechat/incoming 上报~0.1 秒
4适配器 adapter.receive() 注入无界事件流⭐ 关键
5无界匹配 @rule → 业务插件 sender.reply()~0.01 秒
6PC 轮询 /wechat/pull → chat.SendMsg()0.8s + 发送耗时

为什么桥接层必须是「适配器」不是「插件」

无界的 @rule 只匹配框架自己的事件流。HTTP 收到外部消息后必须注入事件流,插件才会触发。

官方适配器 API(develop.md):

Ding.receive({
    userId, userName, groupId, groupName,
    msg, msgId,
    type: 'Social',
});
适配器 Adapter/插件 plugins/
能注入事件✅ receive()❌
热重载❌ 需重启✅

好处:业务插件零改动,照旧写 @rule。


三、第一步:Windows PC 装 wechatauto

3.1 装 Python 3.12(64 位)

⚠️ 必须 3.12,不能用 3.13/3.14/3.15

原因:winsdk 这个依赖没有新版本 Python 的预编译包,装到一半会报:

error: Microsoft Visual C++ 14.0 or greater is required
ERROR: Failed to build 'zstandard' when getting requirements to build wheel
ResolutionImpossible: ...winsdk

下载:

https://www.python.org/ftp/python/3.12.10/python-3.12.10-amd64.exe

安装时两个勾必须打:

☑ Install launcher for all users (recommended)
☑ Add python.exe to PATH          ← 关键
💡 如果已装 3.13+,不用卸载 —— 多版本可共存,用 py -3.12 指定即可。

验证:

py -0

期望输出包含 -V:3.12 Python 3.12 (64-bit)。

💡 若 Win+R 被系统精简:用 Ctrl+Shift+Esc 打开任务管理器 → 文件 → 运行新任务。

3.2 确认微信版本

微信 → 设置 → 关于微信

版本处理
≥ 4.1.15.13✅ 直接用
4.1.12 ~ 4.1.15⚠️ 可用,若发送异常可考虑升级到 4.1.15.13
< 4.1.12❌ 必须先升级
3.x❌ 完全不支持

确认后登录微信,保持运行。

3.3 装 wechatauto

py -3.12 -m pip install wechatauto-replica requests -i https://pypi.tuna.tsinghua.edu.cn/simple

成功标志:

Successfully installed wechatauto-replica-1.2.6.1 winsdk-1.0.0b10 ...

报错对照:

报错原因解决
Microsoft Visual C++ 14.0 is requiredPython 版本太新换 Python 3.12
ResolutionImpossible: ...winsdk同上换 3.12
'pip' 不是内部或外部命令PATH 问题用 py -3.12 -m pip
Read timed out网络换镜像 -i

3.4 体检

py -3.12 -m wechatauto 体检

期望输出:

wechatauto 1.2.6.1 | Python 3.12.10 (64 位) | win32
账号:wxid_xxxxxxxx(wxid wxid_xxxxxxxx)
数据库密钥:17/17 个库可解密
图片密钥:已拿到(已缓存,之后离线可用)
控件树(发消息/下载原图要用):拿不到——微信需要热激活一次
项期望说明
数据库密钥全部可解密不全 = 读库有问题
控件树"拿不到"正常实际发消息时会自动热激活

3.5 功能测试

# ① 列会话
py -3.12 -m wechatauto 会话

# ② 读消息
py -3.12 -m wechatauto 消息 文件传输助手

# ③ 发消息(⚠️ 会驱动微信窗口,抢鼠标)
py -3.12 -m wechatauto 发 测试 --to 文件传输助手 --verify

# ④ 监听(Ctrl+C 退出)
py -3.12 -m wechatauto 听 文件传输助手

④ 的测试方法:保持监听窗口开着,用手机给这个微信号发条消息。

期望几秒内出现:

[文件传输助手] 2026-10-13 09:22 wxid_xxx: 你好

3.6 两个常见"假故障"

WAL 合并警告

[WARNING] [db.py:1467] WAL 合并失败(微信持续写入),改用仅主库快照(可能缺少最近消息)

这是无害的降级行为。 微信正在写 WAL,合并失败就退回快照模式,消息照样能读到(只是可能滞后几秒)。

--verify 报"数据库未确认"

失败:消息已操作发送,但数据库未确认

消息通常已经发出去了(去看微信确认),只是主库快照还没 checkpoint 到最新那条。


四、第二步:云服务器部署无界适配器

4.1 确认无界位置

docker ps --format '{{.Names}}\t{{.Ports}}' | grep -i bncr
docker inspect bncr --format '{{json .Mounts}}'

记录三项:

项本文假设值你的实际值
容器名bncr
端口映射9090:9090
挂载路径/root/BncrData
⚠️ 关键:如果容器只有 9090 一个端口映射,适配器必须挂 router 复用 9090,不能自己起服务(否则外部访问不到)。

4.2 放置适配器

把包里的 云服务器/Adapter/WeChatBridge.js 上传到 /root/BncrData/Adapter/

或者用命令行直接创建:

# 用宝塔/文件管理器上传更简单
ls -la /root/BncrData/Adapter/

4.3 ★ 必须修改 token

打开 /root/BncrData/Adapter/WeChatBridge.js,找到:

const DEFAULTS = {
    // ★★★ 鉴权 token —— 必须修改!★★★
    token: 'CHANGE_ME_32位随机字符串',

生成一个随机 token(在 PC 上跑):

-join ((48..57)+(65..90)+(97..122) | Get-Random -Count 32 | ForEach-Object {[char]$_})

把结果填进去:

    token: 'A1b2C3d4E5f6G7h8I9j0K1l2M3n4O5p6',   // ← 换成你自己生成的
⚠️ 两处必须一致:云服务器这里 + PC 的 start_bridge.cmd 里 BNCR_TOKEN。
不一致 → PC 上报时返回 401 unauthorized。

4.4 重启无界

docker restart bncr
sleep 6
docker logs bncr 2>&1 | tail -40 | grep -i wechat

期望看到:

[WeChatBridge] ✓ 路由已挂载: /wechat/health | /wechat/incoming | /wechat/pull | /wechat/replies

4.5 验证

云服务器本机:

curl http://127.0.0.1:9090/wechat/health

期望:

{"ok":true,"service":"bncr-wechatbridge-adapter","version":"1.1.0","platform":"wechatBridge","queue":0}

验证鉴权生效:

# 不带 token → 应 401
curl -s http://127.0.0.1:9090/wechat/pull; echo ""

# 带 token → 应 200
curl -s -H "X-Auth-Token: 你的token" http://127.0.0.1:9090/wechat/pull; echo ""

五、第三步:PC 部署桥接脚本

5.1 建目录

mkdir C:\wechat-bridge
⚠️ 避开中文路径和空格。

把包里的 Windows PC/wechat_bridge.py 放进 C:\wechat-bridge\。

5.2 修改服务器地址

打开 wechat_bridge.py,找到第 55 行附近:

"bncr_base": env("BNCR_URL", "http://YOUR_SERVER_IP:9090").rstrip("/"),

把 YOUR_SERVER_IP 换成你云服务器的实际 IP。

5.3 连通性测试

cd C:\wechat-bridge
py -3.12 wechat_bridge.py --test

期望:

✓ 无界适配器可达: 200 {"ok":true,...}
--test 模式,退出

不通的排查:

现象检查
Connection refused云服务器上先 curl 127.0.0.1:9090/wechat/health 确认适配器活着
超时云厂商安全组是否放行 9090
401token 没设或与云服务器不一致

5.4 正式运行

cd C:\wechat-bridge
$env:BNCR_TOKEN="你的token"
py -3.12 wechat_bridge.py

期望:

✓ 无界适配器可达: 200
正在连接微信...
✓ 微信连接成功
✓ 回复轮询已启动
✓ 监听已启动 —— 私聊 + 群聊 + 自动发现新会话
桥接运行中。Ctrl+C 退出。

六、第四步:端到端联调

保持桥接窗口开着,用手机给这个微信号发 菜单。

观察三处

① 桥接窗口

→ [私聊] 时间煮雨: 菜单
  ✓ 已回复: 功能菜单
━━━━━━━━━━━━
· 1 脚本   各类脚本与代挂
· 2 返利   商品转链与收益查询
· 3 提现

② 云服务器无界日志

docker logs -f bncr
[WARN] > 收到[/wechat/incoming]请求~
[WeChatBridge] 注入 38 ㅤ时间煮雨ㅤ(私聊): 菜单
[INFO] [新] wechatBridge/0@ㅤ时间煮雨ㅤ: 菜单
[INFO] C:[\s\S]+ R:python.ts
[INFO] C:^(菜单|主菜单|功能菜单|菜单列表)$ R:功能菜单.js     ← 命中插件
[WeChatBridge] reply -> 38 : 功能菜单
[WARN] > 收到[/wechat/pull]请求~

③ 手机:收到菜单。

日志解读

日志含义
[新] wechatBridge/0@昵称✅ 注入成功,平台名与私聊判定(0@)正确
C:^...$ R:你的插件.js✅ 规则命中
[WeChatBridge] reply ->✅ 插件回复回传
收到[/wechat/pull]请求✅ PC 取走回复

关键:业务插件完全没改,靠 @rule 自动匹配。


七、第五步:安全加固

7.1 token 必须设置

为什么:9090 通常对公网开放,不设 token 时任何人都能伪造微信消息注入你的无界。

生成(PC 上):

-join ((48..57)+(65..90)+(97..122) | Get-Random -Count 32 | ForEach-Object {[char]$_})

设置位置:

位置文件变量
云服务器WeChatBridge.jstoken: '...'
PCstart_bridge.cmdset BNCR_TOKEN=...

验证(浏览器打开):

http://YOUR_SERVER_IP:9090/wechat/pull
→ {"ok":false,"error":"unauthorized"}          ✅ 鉴权生效

http://YOUR_SERVER_IP:9090/wechat/pull?token=你的token
→ {"ok":true,"count":0,"items":[]}             ✅ 放行
/wechat/health 故意不鉴权,方便排障。

7.2 安全组白名单(推荐)

云厂商控制台 → 安全组 → 9090 入站规则 → 来源限制为你的家宽出口 IP。

7.3 加固清单

项做法
token✅ 32 位随机,两处一致
安全组✅ 限制 9090 来源 IP
专用小号✅ 绝不用主号
数据库容器⚠️ 别把 MySQL/Redis 端口映射到公网
日志⚠️ 避免把用户隐私打进日志

八、第六步:开机自启

8.1 建启动脚本

创建 C:\wechat-bridge\start_bridge.cmd:

@echo off
chcp 65001 >nul
cd /d C:\wechat-bridge

set BNCR_URL=http://YOUR_SERVER_IP:9090
set BNCR_TOKEN=你的token
set POLL_INTERVAL=0.8
set BRIDGE_QUIET=1

py -3.12 wechat_bridge.py >> bridge_stdout.log 2>&1

⚠️ 编码必须选 ANSI(记事本 → 另存为 → 编码)。
.cmd 带 UTF-8 BOM 会导致第一行报错。

8.2 注册计划任务

⚠️ 如果 Win+R 被精简:用 Ctrl+Shift+Esc → 文件 → 运行新任务 → 勾选「以系统管理权限创建此任务」。

方式 A:图形界面

  1. 打开 taskschd.msc
  2. 右侧 → 「创建任务」(⚠️ 不是"创建基本任务")
  3. 常规:

    • 名称 WeChatBridge
    • 选 「只在用户登录时运行」 ⭐
    • 勾 「使用最高权限运行」
  4. 触发器 → 新建:

    • 开始任务 = 「登录时」
    • 勾 「延迟任务时间」 填 30 秒 ⭐(等微信启动)
  5. 操作 → 新建:

    • 脚本 = C:\wechat-bridge\start_bridge.cmd
    • 起始于 = C:\wechat-bridge
  6. 设置:

    • 勾 「如果任务失败,按以下频率重新启动」 → 1 分钟 / 3 次
    • 取消勾选 「如果任务运行时间超过以下时间,停止任务」 ⭐

方式 B:一条命令

powershell -ExecutionPolicy Bypass -File C:\wechat-bridge\add-autostart.ps1

8.3 重启后流程

① 开机 → 登录 Windows(必须真实登录到桌面,不能只锁屏)
        ↓
② 打开微信,确认已登录、窗口显示在桌面上
        ↓
③ 等 30 秒 → 桥接自动启动
        ↓
✅ 无需任何操作

8.4 验证在跑

方法操作
最可靠手机发条消息,看是否自动回复
任务计划taskschd.msc → 看「上次运行结果」= 0x0
任务管理器看有没有 python.exe
日志Get-Content C:\wechat-bridge\bridge_stdout.log -Tail 30

九、排查手册

9.1 桥接侧

现象原因解决
无界适配器不可达端口/地址错云服务器 curl 127.0.0.1:9090/wechat/health 先确认本机通
鉴权token : 未设置 + HTTP 401PC 没设 token设 BNCR_TOKEN,与云服务器一致
微信连接失败微信没登录 / 32 位 Python / 窗口最小化py -3.12 -m wechatauto 体检
收不到消息微信窗口最小化恢复窗口,用 听 命令单独测
回复重复msgId 不稳定检查 build_payload 的 id 生成
回复超时队列 key 对不上curl :9090/wechat/replies 看队列

9.2 无界侧

现象原因解决
日志无 [WeChatBridge]适配器没加载确认在 Adapter/ 下,docker restart bncr
收到[/wechat/incoming] 但无 [新]receive() 失败看适配器后续日志
有 [新] 但无 R:你的插件.js@rule 不匹配检查插件规则;确认 @admin/@public 都写了
有 R:xxx.js 但无回复插件没走到 reply看插件自身日志
404路由没挂上router 全局不存在?看启动日志

9.3 常见误判(别被吓到)

现象真相
控件树:拿不到正常 —— 发消息时会自动热激活
WAL 合并失败无害 —— 降级到快照模式,仍能读到消息
--verify 报"数据库未确认"消息通常已发出,只是快照滞后;去微信确认
文件传输助手 共 0 条你从没用过文件传输助手,换别的会话测

9.4 延迟优化

环节默认可调
监听轮询1 秒❌ 库内部
取回复轮询0.8 秒✅ POLL_INTERVAL(最低建议 0.5)
UIA 发送2~6 秒❌ 固有
拟人节奏2.5~6 秒间隔⚠️ WECHATAUTO_RHYTHM

拟人节奏档位:

档位说明
natural(默认)✅ 推荐
calm更慢,最安全
fast更快,⚠️ 风险上升
off🔴 无节流,别用
⚠️ 强烈建议保持 natural。 这层就是作者为真实风控加的。
慢几秒换号安全,值得。

十、附录:文件清单

本压缩包结构

微信机器人对接无界/
├── 微信机器人对接无界教程.md     ← 本文档
├── 云服务器/
│   └── Adapter/
│       └── WeChatBridge.js       ← 放到无界 Adapter 目录
├── Windows PC/
│   ├── wechat_bridge.py          ← 桥接主程序
│   └── add-autostart.ps1         ← 自启注册脚本
└── 测试/
    ├── WeChatBridge.test.js      ← 适配器测试(node)
    └── test_log_filter.py        ← 日志过滤测试(python)

部署位置

文件放到哪
WeChatBridge.js云服务器 /root/BncrData/Adapter/
wechat_bridge.pyPC C:\wechat-bridge\
start_bridge.cmdPC C:\wechat-bridge\(需自建,见 8.1)
add-autostart.ps1PC C:\wechat-bridge\

必须先改的两处

#文件改什么
1WeChatBridge.jstoken: 'CHANGE_ME_...' → 你的 32 位随机串
2wechat_bridge.pyYOUR_SERVER_IP → 你的云服务器 IP

环境变量

变量默认说明
BNCR_URLhttp://YOUR_SERVER_IP:9090无界地址
BNCR_TOKEN空鉴权 token(与云服务器一致)
POLL_INTERVAL0.8取回复轮询间隔(秒)
HANDLE_PRIVATE1是否处理私聊
HANDLE_GROUP1是否处理群聊
GROUP_WHITELIST空群白名单(逗号分隔)
PRIVATE_WHITELIST空私聊白名单
IGNORE_SELF1忽略自己发的消息
BRIDGE_QUIET1压制 WAL 刷屏日志

HTTP 接口

方法路径鉴权说明
GET/wechat/health❌健康检查
POST/wechat/incoming✅上报消息 → 注入事件流
GET/wechat/pull✅取回复队列(取走即清空)
GET/wechat/replies✅查看队列(不清空,调试用)

运行测试

# 适配器测试(需 node)
node 测试\WeChatBridge.test.js          # 期望 53 项全绿

# 日志过滤测试(需 Python 3.12)
py -3.12 测试\test_log_filter.py

十一、风险声明

技术层面:本方案做了什么、没做什么

事项状态
逆向微信通信协议❌ 完全没有
注入微信进程 / Hook API❌ 完全没有
修改微信 DLL / 程序文件❌ 完全没有
伪装异地设备登录❌ 完全没有
连接第三方授权服务器❌ 完全没有
读取微信本地加密数据库✅ 只读
模拟真人操作本机界面✅ 带拟人节奏
数据出网✅ 只发到你自己的云服务器

风险等级

项评估
封号风险🟡 低,但非零
风险来源仅「自动化操作界面」这一项,已用拟人节奏层缓解
作者实测2026-09-21 触发过一次风控(当时无节奏层),加层后持续使用
数据安全✅ 无第三方服务器,消息不经他人之手
合规⚠️ 自动化操作微信界面仍属非官方用途

降低风险的建议

  1. ✅ 用专用小号(绝不用主号)
  2. ✅ 保持 natural 节奏(别调 fast/off)
  3. ✅ 专用机器(不用于其他工作的 Windows,最好虚拟机)
  4. ✅ 不群发、不批量加好友(这些是风控重灾区)
  5. ✅ 微信窗口保持可见(最小化会退回不可靠的 OCR 路径)
  6. ✅ 版本保持 4.1.15.13 附近(作者已适配)

如果被封怎么办

  • 本方案不会导致设备封禁(未改微信程序)
  • 最坏情况是该微信号被限制,换小号重来即可
  • 不像协议端会连带同 IP 的其他号

十二、参考

资源链接
wechatauto-replica 仓库https://github.com/fanyuantaier/wechatauto-replica
PyPIhttps://pypi.org/project/wechatauto-replica/
无界 Bncr 开发文档https://anmours.github.io/Bncr/md/develop
本项目开发速查docs/Bncr插件开发速查.md

十三、文件下载


文档版本:2026-10-13
技术路线:不 Hook、不逆向协议、本地只读 + 拟人化 UI 自动化

0

评论 (0)

取消