CN
v2.5
WPE_TUTORIAL_V2 // 06_AUTOMATION

发送 · 机器人 · 仓库

最新版教程

自动化三件套:发送列表 负责批量重放,机器人 负责编排流程与键鼠模拟,仓库 负责归档样本。三者可以互相调用,也能被滤镜和快捷键触发。

01三者的关系 · 谁能触发谁。
滤镜命中 全局快捷键 发送列表 机器人 仓库 执行 → 发送列表 执行 → 机器人 执行 → 仓库列表 作用于(二选一) 指令:发送 - 发送列表 右键「添加到仓库」/ 自动入库

00 · 三件套怎么选

名字都带「自动」,但触发方式与能做的事差别很大。动手前先对一眼这张表:

发送列表机器人仓库
本质一组封包 + 循环次数 + 间隔一串 指令序列(发包、等待、键鼠、调用其它列表)封包 样本库,只存不发
怎么触发手动「执行」/ 快捷键 / 被机器人调用 / 被滤镜执行联动手动「执行」/ 快捷键 / 被滤镜执行联动 / 被另一个机器人调用右键入库 / 自动入库 规则
能不能有分支与等待否,只能顺序发 N 遍能,指令里有延时、循环与条件—
能不能模拟键鼠否能(InputSimulator)—
典型用途把抓到的一串包原样重放;压测登录流程复现、定时心跳、多步骤脚本攒样本、对比不同版本的包、当滤镜与发送的素材来源
选它的信号「我只想把这几个包再发一遍」「发完要等一会儿,再根据情况发下一个」「这个包以后还要用,先存着」
// 一条常见的组合链

滤镜 命中特征包 → 执行联动 拉起机器人 → 机器人里先延时、再调用发送列表打出一组包 → 同时把原始样本丢进仓库留档。完整例子见 04 节。

快速上手 // 把抓到的包重放一遍
  1. 先建一条发送:发送列表工具条 → 新增发送。右键菜单里的「添加到发送」只能挑 已有 的发送,一条都没有时那一项是压暗的。
  2. 回封包列表,选中要重放的行(支持多选),右键 → 添加到发送 ▸ 选刚才那条。
  3. 进「发送列表」,双击那一行打开 发送编辑,填好 循环 次数与 间隔。
  4. 确认套接字:用每条封包自带的 socket,或勾 使用系统套接字(需先在封包列表右键设过 系统套接字,没设过这个勾选框点不开)。
  5. 保存,回列表页把「启用」打开,点 开始发送(也可以直接在发送编辑里点 执行 单跑这一条)。
  6. 看 成功 那一列是否在涨——一直是 0 通常是套接字失效,去 系统日志 看具体原因。

01 · 发送列表

一个「发送」= 一组封包 + 循环次数 + 间隔,可以一键批量重放。

列表页

02发送列表 · 与滤镜列表同一套骨架,多一条执行顺序提示。
WPE x64 发送列表:开始发送、新增、全部启停、重置计数与发送表
  1. 工具条:开始发送 · 新增发送 · 全部启用 · 全部禁用 · 重置计数;右边导入 / 导出 / 清空。正在跑的时候只锁按钮、不锁表——表还要能滚、能看着计数往上涨
  2. 执行顺序提示条:徽标显示当前的 列表执行模式(按顺序执行 / 同时执行,在 系统设置 里切,与机器人列表共用这一个开关)。⚠️ 「同时执行」那一档转 琥珀——那时顺序不决定先后
  3. 表列:序号 / 启用 / 发送名称 / 执行次数 / 成功 / 失败 / 套接字 / 循环 / 封包 / 备注 / 操作
  4. 「封包」那一列是发送集的条数,为 0 标红 并带提示——空发送集执行起来什么都不发
  5. 「套接字」那一格:勾了「使用系统套接字」的显示 系统套接字的编号,否则显示「自定义」(=用每条封包自带的那个)
  6. 「循环」那一格 把次数与间隔并排显示(1 次 / 100 毫秒)
  7. 启用 与 执行次数 各占一列,一眼就能看出哪条开着、跑过几次
  8. 备注列 不换行、超出用省略号,悬停可以看全文

工具条从左到右:开始发送(跑起来变成 停止,与其余按钮之间隔着一条竖线)· 新增发送 全部启用 全部禁用 重置计数;右端 导入(读 .sp)导出(写 .sp)清空。

列表右键七项,作用于选中的那些行:置顶 / 向上移动 / 向下移动 / 置底 / 导出 / 复制 / 删除,另有全选 / 取消选择。

列表执行模式点「执行」时的行为
按顺序执行(默认)一个发送执行完再执行下一个
同时执行所有启用的发送同时跑

该模式在 系统设置 → 列表执行模式 切换,对机器人列表同样生效。

发送编辑

双击发送列表里的一行(或点行尾那支笔)打开。改的是一份 工作副本:排序、删除、导入、清空都只动这一份,按取消就真的什么都没发生。

03发送编辑 · 上半是四个字段,中间一条执行条,下半是发送集。
WPE x64 发送编辑:名称、系统套接字、循环与间隔、备注、执行条、发送集表
  1. 发送名称:默认 发送 N
  2. 套接字:勾「使用系统套接字」则 忽略每条封包自带的套接字,统一用全局那一个;后面那枚描边标签就是它当前的值(设过是绿的数字,没设过是红的「未设置」)。没设过时这个勾选框点不开(那是一个必然失败的选择),去封包列表右键「设置系统套接字」先设一个。⚠️ 系统套接字是 纯运行期 的,每次重启回到未设置;所以这个勾选框 也不会被记住,每次打开一律未勾
  3. 循环:整个发送集重复几遍 · 间隔:每条封包之间等多少毫秒。旁边那句灰字说的是「间隔为 0 时不汇报进度,当前行不会高亮」
  4. 备注:自由文本,列表页那一列显示它
  5. 执行条:执行(跑起来变成 停止)与紧挨着的三个实时计数(执行次数 / 成功 / 失败)。点执行会 先保存,跑的是保存后的那一份;条子右端三颗按钮是 导入发送集 / 导出发送集 / 清空发送集
  6. 发送集:序号 / 类型 / 套接字 / 本机地址 / 远端地址 / 长度 / 数据 / 操作。行尾那支笔打开 封包编辑 改字节(双击行也行),× 删掉这一条;右键还有置顶 / 上移 / 下移 / 置底等
  7. 这一屏没有十六进制面板:它只管「有哪些封包、按什么顺序」,要看或改字节请点进封包编辑

往发送集里加封包的三种方法

  1. 封包列表 / 代理数据列表右键 → 添加到发送 ▸ 选择发送项(支持多选行)。
  2. 十六进制面板右键 → 添加到发送 ▸ …(若选中了字节则只加选中片段)。
  3. 封包编辑窗口的十六进制区右键 → 添加到发送 ▸ …。

⚠️ 三处都一样:一条发送都没有时这一项是压暗的,得先去发送列表新增一条。

// 循环次数最小是 1

循环次数填 0 会自动按 1 处理。间隔可以是 0,那是「不间隔、连着发」。

导入导出

格式内容入口
.sp整个发送列表发送列表工具条右端的 导入 / 导出
.sc单个发送的发送集发送编辑执行条右端的 导入发送集 / 导出发送集
// 发送成功数是 0?

① 目标连接已经关闭或套接字不可用;② 勾了「使用系统套接字」但没设过,发送编辑、发送列表、机器人与全局快捷键都会提示,先设置一个;③ 当前流量不支持按原连接回发。请结合系统日志确认原因。

02 · 机器人

「机器人」= 一串 指令集,顺序执行,可循环、可延时、可模拟键鼠、可触发发送、可动态开关其他列表。

列表页

04机器人列表 · 与发送列表逐条对应,只有列不同。
WPE x64 机器人列表:开始执行、新增、全部启停、重置计数与机器人表
  1. 工具条 与发送列表一致,第一颗是「开始执行」
  2. 表列:序号 / 启用 / 机器人名称 / 执行次数 / 指令条数 / 操作
  3. 「指令条数」为 0 标红 并带提示——空指令集执行起来什么都不做
  4. 执行顺序提示条与发送列表 共用同一个开关(系统设置里的「列表执行模式」)
  5. 双击一行 打开机器人编辑(见下)

工具条与发送列表逐颗对应,只是第一颗写的是 开始执行,新增那颗是 新增机器人;右端仍是 导入(.rp)导出 清空。右键菜单也与发送列表一致。

机器人编辑

05机器人编辑 · 左边是指令块,右边是程序流。
WPE x64 机器人编辑:四个指令分组、参数区、带缩进的程序流
  1. 工作条(横跨两栏):机器人名称 · 执行 · 执行次数 · 记录。它管的是「这个机器人整体」,所以不属于右边的程序流
  2. 指令块(左上):四个分组页签 封包 / 控制 / 键盘 / 鼠标,下面是 13 块瓷砖(图标 + 名字)。挑中哪一块,下面那 唯一一处 参数区才画它的表单 —— 屏幕上永远只有一份表单
  3. 参数区(左下):当前这块瓷砖的参数。图中选的是「延迟」,所以出的是定时 / 随机两个单选与毫秒输入框
  4. 插入:有选中行时插在 它前面,否则追加到末尾(按钮下面那句灰字就是这个意思)
  5. 程序流(右):一块块带 类型色轨 的积木,不是一张平表。发送=绿 · 设置=青 · 延迟=天蓝 · 循环=琥珀 · 开关=洋红 · 键盘与鼠标=两档紫
  6. 循环用缩进 + 竖轨画出嵌套,而且是按 执行栈 算的 —— 屏幕上的嵌套等于真实的执行嵌套。配不上对的(多一个「循环结束」、或有「循环开始」没闭合)当场标红,不必等到保存才报「循环指令不正确」
  7. 每块右端的 × 删掉这一条;右键还有置顶 / 向上移动 / 向下移动 / 置底 / 删除 / 清空所有指令 + 全选 / 取消选择
  8. 跑的时候 正在执行的那一块整块点亮、步号转青,左边整个指令面板锁住

指令速查

分组指令参数与说明
封包发送 - 发送列表选一个发送项。会等待它执行完 才继续下一条指令
发送 - 封包列表发送「封包列表中选中的封包」。⚠️ 它读的是 注入模式 封包列表里的选中行,代理模式下不会发任何东西(参数区里就写着这句)
设置 - 系统套接字三选一:选中封包的套接字 / 调用滤镜的套接字 / 自定义 + 一个号码(必须 > 0,否则「插入」按钮点不开)
控制延迟定时(固定毫秒,默认 100)或 随机(区间毫秒,默认 1~100)
循环开始 / 循环结束两块独立的瓷砖:循环开始 带次数(≥ 1),循环结束 没有参数。两者 必须成对,程序流里当场按执行栈画嵌套并标出没配上的那一条,保存 / 执行时还会再校验一次
开关启用 / 禁用 + 类型(发送列表 / 机器人列表 / 滤镜列表)+ 具体对象
键盘按键类型:按键(Press) / 按下(Down) / 弹起(Up);输入框 直接按键录制
组合按键直接按组合键录制,如 Ctrl+Shift+A
文本输入一串文本,运行时模拟键盘打字
鼠标按键左/右键 单击、双击、按下、弹起 共 8 种
滚轮滚动 下拉二选一(向上移动 / 向下移动)+ 距离(默认 10)
移动移动到(绝对坐标 X, Y)/ 相对移动(增量 X, Y)
// 键鼠模拟

基于 InputSimulator,作用于 当前前台窗口。跑机器人时别去点别的窗口。

// 执行时要知道的几点

① 组合按键(如 Ctrl + Shift + A)按写法原样模拟。
② 延迟按真实时间计算,按下停止会立即响应。
③ 随机延迟 每次都在区间里重新取值。
④ 执行结束会分别报告 执行完毕 / 已停止 / 出错,出错的原因记在系统日志里。

// 循环次数与随机区间

循环填 0 会按 1 次执行;随机区间写反(100-1)会自动摆正。

启动机器人的四种途径

  1. 机器人列表点 开始执行(批量,受「列表执行模式」影响)。
  2. 机器人编辑窗口点 执行(单个调试)。
  3. 滤镜命中触发:滤镜勾「命中后执行」→ 类型选「机器人列表」。
  4. 全局快捷键:快捷键设置里把「作用于」切到「机器人列表」,快捷键 1~10 分别触发列表里第 1~10 条,另外两行 「执行」「停止」 管整份列表。快捷面板的页签旁边有一枚青色键盘图标,指着快捷键当前作用的那一份列表,按之前就知道会动哪一边。
// 点执行没动静?

看系统日志。出现 机器人指令 N 错误! [机器人名] 说明 校验没过——最常见是循环「开始 / 结束」没配对,或引用的发送项已被删除。校验不通过时机器人 拒绝启动。

正常日志:启动机器人 [名称] → 机器人 [名称] 执行完毕 / 已停止 / 发生错误: …。

03 · 仓库与自动入库

「仓库」用于 归档封包样本,方便日后对比、重放和分析。

仓库列表

06仓库列表 · 工具条上第二颗就是「自动入库」。
WPE x64 仓库列表:新增仓库、自动入库与空态提示
  1. 工具条:新增仓库 · 自动入库(那一屏见下面 自动入库);右边导入 / 导出 / 清空
  2. 表列:序号 / 仓库名称 / 仓储数量 / 操作
  3. 空态那句话就把三条入库路径写全了:新增一个仓库,然后在封包列表里右键「添加到仓库」,或用「自动入库」按包头自动收集
  4. 双击一行 进仓库编辑,看这个仓库里存了哪些封包
  5. ⚠️ 自动入库不在「设置 ▾」那 12 项里,就在这条工具条上——它是「往仓库里放东西」的另一条路,与新增仓库是一类

工具条:新增仓库 自动入库(琥珀色);右端 导入(.whp)导出 清空。

仓库编辑

双击一行打开。上面一行是 仓库名称,下面整宽一张 仓储数据 表:序号 / 长度 / 数据,行尾一个 × 删这一条。表头那条工具条上是 复制十六进制(作用于选中的行)导入数据 导出所有数据 清空所有数据;右键还有置顶 / 上移 / 下移 / 置底 / 复制十六进制 / 导出选中 / 复制 / 删除 + 全选 / 取消选择。

// 这一屏的「取消」只撤名称

对 仓储数据 的改动(排序、删除、导入、清空)立即生效,按「取消」不会撤销;只有 仓库名称 是按「保存」才写回的。界面下方那句灰字说的就是这件事。
这一屏没有十六进制面板:要看字节用右键「复制十六进制」拿出去。

入库的三种方式

  1. 封包列表 / 代理数据右键 → 添加到仓库 ▸ 选择仓库。
  2. 滤镜联动:滤镜勾「命中后执行」→ 类型选「仓库列表」→ 选仓库。
  3. 自动入库(见下)。

自动入库

07自动入库 · 总开关 + 仓库上限 + 规则表。入口在仓库列表的工具条上。
WPE x64 自动入库:启用开关、仓库上限与保留条数、规则表
  1. 启用自动入库:总开关,旁边那句琥珀色的提示是 每次重启软件后需手动开启 —— 它 不落库,因为开着就意味着每个经过的封包都要多跑一遍规则比对,默认关着是刻意的
  2. 仓库上限:「超过上限丢弃最旧的」+ 保留条数(1 ~ 1000000,默认 5000)。⚠️ 它管的是 所有入库路径,不只自动入库:右键「添加到仓库」、滤镜命中后执行的「仓库列表」、仓库编辑里的「导入数据」都受它管。语义是 环形 —— 满了丢最旧的,不是整仓清空。⚠️ 从数据库加载时 不裁,老库里已经攒着的几万条不会在升级那一刻被删掉,等你 真的又往里加 时才收到上限。这一项 要落库,与总开关相反
  3. 规则表:启用 / 指定包头 / 入库名称,工具条上是规则条数与新增规则 / 导入 / 导出 / 清空。每条规则 = 一个十六进制包头(如 16 03 01)+ 一个目标仓库;封包开头的字节与它 逐字节相同 才算命中
  4. 总开关关着时规则表 只压暗、不锁:规则得能先备好,回头再开启(与防火墙名单同一条口径)
  5. 保存时会检查:包头必须是 合法的十六进制字节,而且 不能与已有规则重复
  6. 弹窗里的保存只管总开关与仓库上限;规则的增删改、启停、顺序在各自的动作里已经落过库了
// 两种模式都生效

抓到的每条封包都会按启用中的规则比对,包头匹配就存一份进对应仓库,代理模式与注入模式都一样。

比对发生在 过滤判断之前:被 过滤设置 挡在列表之外的封包,照样能被自动入库收走。

导入导出

格式内容
.whp仓库列表
.whs仓储数据
.pas自动入库规则

04 · 组合技示例

自动应答

滤镜(匹配服务器某个通知包,动作 = 仅显示)→ 命中后执行 → 发送列表(回发确认包)。目标程序看起来像是自己回的。

条件触发脚本

滤镜(匹配战斗开始包)→ 命中后执行 → 机器人(设置 - 系统套接字 = 调用滤镜的套接字 → 循环开始 5 次 → 发送 - 发送列表 → 延迟 → 循环结束)。

样本自动归档

自动入库按包头 01 00 0A 把所有登录包收进「登录包仓库」,事后统一导出 .whs 做离线分析。

自我关闭

机器人最后一条指令用「开关 → 禁用 → 滤镜列表 → 某滤镜」,让触发它的滤镜跑一次后自动停掉。