起步与概念
本章覆盖 安装启动、首页三种入口、多开数据库,以及贯穿全书的 核心概念。读完这一章,你会知道自己该走注入模式还是代理模式。
本教程按 2.5 版整理。界面是 Vue 3 + WebView2 的新界面(左侧导航 + 七种语言 + 深浅色),原来的 WinForms / AntdUI 界面已经不存在了。
书里的界面图都是 深色模式的真实截图(1280 × 800),不是手绘的结构图;图下的编号清单按屏幕上从上到下、从左到右的顺序讲,每条开头加粗的就是那个控件在界面上的名字。
仍在使用 1.0.0.36 老版本?请下载 旧版教程 PDF。
先照着走一遍,把「能看到封包」这件事跑通;每一步背后的原理,本章与后面几章会逐个拆开。
- 以管理员身份 运行压缩包里的
WPE64 v2.5.exe(首次运行会先释放程序文件),进入首页 —— 两张模式卡(注入 / 代理)+ 一条「多开设置」。 - 挑一条路:抓普通桌面程序 / 模拟器走 注入模式;要 HTTPS 明文、或要抓手机与另一台电脑走 代理模式(设备上用 WPC 接入)。
- 注入模式:先选一种 注入方式(选择进程 / 选择窗体 / 选择文件),挑好目标就附加上了。界面留在 WPE 自己的窗口里——目标程序里不会出现任何界面。
代理模式:到状态条右边的「设置 ▾ → 代理设置」勾上启用 SOCKS5(默认端口 1080),保存。 - 设置拦截范围:同一个「设置 ▾」菜单里——注入模式进「拦截设置」勾要挂钩的收发函数,代理模式进「过滤设置」挑 TCP / UDP 的请求与响应。这一步要在点「开始」之前做完。
- 点状态条上的「开始拦截」/「开始代理」,让目标程序产生一次网络行为,封包就会实时滚进列表。
- 双击任意一行 打开封包编辑,改几个字节后点「发送」,就完成了一次最小闭环的抓包 → 改包 → 重放。

- 主题在标题栏的 齿轮 里切(深色 / 浅色 / 跟随系统 三档),见 工具章 11 节
- 不是简单的反色:布局完全一样,只是换成了一套浅色配色
- 霓虹色在浅底上各自压到能读的程度,色相保持不变——一眼还是同一套配色
系统要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10 / 11 · Server 2019 / 2022(推荐 x64) |
| 运行库 | .NET Framework 4.8 |
| 界面运行时 | WebView2 Runtime(Win11 自带;Win10 通常随 Edge 已有)。缺失时程序会引导安装,见 首次启动 |
| 权限 | 必须管理员权限。双击启动器时就会弹 UAC 请求提权 |
| 目标程序 | 32 位 / 64 位均支持,按目标进程位数自动选择注入模块 |
| 数据存放 | SQLite,默认 C:\WPE64DB\<版本号>.db(2.5 正式版是 2.5.db) |
| 部署方式 | 压缩包 WPE64 v2.5.zip 里的 单文件启动器 WPE64 v2.5.exe:首次运行释放到 %LOCALAPPDATA%\WPE64\app\<版本>-<哈希>\,每次启动自动校验修复。不进「添加或删除程序」、无自动更新 |
下载与安装
WPE x64 不需要安装:下载到的压缩包里只有一个启动器 exe 和它的校验文件,不进「添加或删除程序」。不想要了,删掉启动器、%LOCALAPPDATA%\WPE64\ 与数据库目录就干净了。
压缩包里的 WPE64 v2.5.exe 装着完整的程序。首次运行或换了版本时,它会带进度窗把程序释放到 %LOCALAPPDATA%\WPE64\app\<版本>-<哈希>\;之后每次启动先快速检查文件,缺的、坏的自动修复,再启动里面的 WinsockPacketEditor.exe,并删掉没在运行的旧版本目录。注入与界面都要用到硬盘上的真实文件,所以程序必须先释放出来才能运行。
- 下载并解压:到 下载中心 下载
WPE64 v2.5.zip(蓝奏云,79.18 MB),解压得到WPE64 v2.5.exe和校验文件。 - 建议先解除锁定:在下载得到的 zip 上右键(解压之前;忘了就在解压出来的 exe 上做)→「属性」→ 勾选底部的「解除锁定」→ 应用。从网上下载的文件会被 Windows 打上
Zone.Identifier标记,解锁之后 SmartScreen 与「无法验证发布者」那两个提示就不会再出现。 - 双击运行:在 UAC 提示上选「是」(见 首次启动)。首次运行会显示释放进度,完成后自动进入程序;启动器放桌面、D 盘、U 盘都行。若系统弹出 SmartScreen 的「Windows 已保护你的电脑」,点「更多信息」→「仍要运行」。
启动器 每次启动都会按清单核对释放出来的文件,缺的、大小对不上的会单独补一次再启动——所以被安全软件删掉几个文件不至于要重装,但它下次照样会删。真要长期用,就把启动器与 %LOCALAPPDATA%\WPE64\ 一起加进白名单。
需要 .NET Framework 4.8。Windows 10 1903 及以后的版本已内置,一般不用管;若启动时报缺少运行库,到微软官网下载 .NET Framework 4.8 运行时装上再试。
怎么升级到新版本
没有自动更新——软件不会自己联网检查版本,也不会弹升级提示。换新版就是重新走一遍上面的流程:
- 到 下载中心 看更新日志,确认这一版有你要的东西。
- 下载新的压缩包 → 解除锁定 → 解压。
- 关掉正在运行的旧版(注入模式下先「停止」并退出被注入的程序),再运行新 exe。
- 旧版本目录不用手动删——新版启动后会删掉没在运行的旧版本目录。配置库在
C:\WPE64DB\,不会被删,但也不会自动继承(见下)。
配置存在 C:\WPE64DB\<版本号>.db 里,文件名跟着版本走。所以升级后打开新版,滤镜、发送、机器人、代理账号这些会是空的——数据没丢,只是在旧版本的那个 .db 里。
要把配置带过去:在旧版 用「备份设置」导出 .sb,到新版 再导入。建议每次升级前都顺手导一份。
首次启动
- 双击启动器,在 UAC 提权对话框里选「是」;首次运行(或换了版本)会先显示释放进度。
- 若机器上没有 WebView2 Runtime,会先弹一个对话框列出「下载 → 安装 → 重新打开」三步,点「是」会直接打开微软官方的安装引导;装完重新启动 WPE 即可。Win11 与多数 Win10 不会看到这一步。
- 进入 首页,在这里选择工作模式。
首页 · 两种模式 + 两条设置入口

- Mode 01 · 注入模式:整张卡都是热区(键盘 Tab 过去按 Enter / 空格也行)。点进去是「选择注入方式」那一屏 → 第 2 章。卡片底部的读数条
Target是 上一次注入的目标,没注入过就是一条短横 - Mode 02 · 代理模式:点进去直接进代理模式主界面 → 第 3 章。读数条
Socks5写的是0.0.0.0:加上代理设置里那个 SOCKS5 端口(默认 1080) - 多开设置(两张卡下面第一条窄行):切换本次运行使用的 SQLite 数据库目录,实现多套互不干扰的配置(见下一节)。右端显示当前库的 目录名
- MCP 设置(第二条窄行):把本机的 AI 客户端接到 WPE 上,右端写着当前可用的 工具数。见 第 8 章
- 系统自检(下方终端块):管理员权限、国家地理库版本与条数、数据库位置 —— 三项都是启动时实时检测的。启动出问题时先看这里
- 标题栏右侧:齿轮 打开「软件设置」(界面语言 / 外观 / 显示 / 文件图标),图钉 是窗口保持最前,再往右是最小化 / 最大化 / 退出
- 底部状态栏左边是官网 / 使用教程 / 常见问题 / GitHub 四条外链,右边是当前状态
底部那四条链接是交给系统默认浏览器打开的(只放行 http / https),没有备用地址:断网或官网不可达时点了不会有任何反应。
多开设置(数据库)
WPE 的 全部配置——系统设置、滤镜、发送、机器人、仓库、代理账号、映射、黑白名单、WPC 服务器与公告——都存放在 同一个 SQLite 文件 里。因此:
切换数据库路径 = 换一整套独立配置 = 实现多开。

- 本次运行有效:数据库目录 不会永久保存,重启后仍使用默认目录。配置本身就存在库里,所以「这次要用哪个库」没法存在库里 —— 每次启动都要重新设
- 01 · 数据库目录:目录路径 默认
C:\WPE64DB,可以直接改输入框、点「浏览」用系统文件夹对话框挑目录,或点「默认目录」一键还原。目录不存在会自动创建,选已有目录则沿用其中的数据库文件 - 02 · 数据库状态:改完路径立刻显示四行 —— 数据库文件(
<版本号>.db)、目录状态(已存在 / 将自动创建)、数据库状态(沿用已有数据库 / 将新建)、当前数据库。保存之前就知道会发生什么,不必先试一遍 - 数据库名称 跟着版本号走,改不了:2.5 正式版是
2.5.db。换版本自动换库,所以升级后是一个空库 - 保存后立即在该路径下建库建表,并重新载入系统配置
多开操作步骤
- 首页 → 多开设置,把路径改为
D:\WPE_A,保存。 - 回首页选择模式,此后所有配置读写都指向新库。
- 要开第二份:再启动一个 WPE 实例,路径改为
D:\WPE_B,保存后再选模式。
注入模式下,被注入的程序本身 不读写数据库——滤镜、发送、机器人这些配置都由 WPE 窗口统一管理再下发过去。所以「这次用哪个库」只由 WPE 这一侧决定,多开时两边不会串库。
核心概念 · 两种模式怎么选
| 能力 | 注入模式 | 代理模式 |
|---|---|---|
| 原理 | EasyHook 注入 + WinSock API Hook | 自建 SOCKS5 服务器 + 内置 mihomo 进程接管 |
| 界面宿主 | WPE 自己的窗口(目标程序里没有界面) | WPE 自己的窗口 |
| 抓包类别 | 发送 / 接收 / 发送到 / 接收自 / WSA* | TCP、UDP、HTTP(S)、WebSocket 的请求与响应 |
| HTTPS 明文 | ✗ 拿到的是加密字节 | ✓ 内置 CA 中间人解密 |
| 需要目标配合 | 不需要,但可能被反作弊拦截 | 需走代理(其他设备用 WPC 接入,本机程序在「进程设置」用内置内核接管) |
| 端口 / 域名映射 | ✗ | ✓ 本地映射 / 远程映射 |
| 账号体系 / 防火墙 | ✗ | ✓ 代理账号 + 黑白名单 |
| 改包 / 重放 | ✓ / ✓ | ✓ / ✓(HTTP(S) 类不支持重放) |
目标是 普通桌面程序 / 模拟器 → 优先注入模式,数据最贴近程序逻辑。
目标 有反注入保护、需要抓 HTTPS 明文、或要抓 移动端 / 其他机器 → 走代理模式,设备上装 WPC 接入(见 用 WPC 接入设备)。
核心概念 · 封包是怎么到界面上的
抓到的封包不会直接塞进界面,中间隔着一层 消息队列,这是软件能扛住百万级封包不卡死的关键。
- 界面上的 缓存区(注入模式叫 待入列)就是队列里堆积的条数。持续增长 = 渲染跟不上抓包速度,参考 性能调优
- 界面 分批 取出封包显示,一时搬不过来的先留在队列里;开着 自动清理 时队列也按同一个「保留条数」封顶,超出的丢最旧的
- 极速模式(系统设置)会完全跳过入队,界面不显示任何封包,但 滤镜照常工作——用于只改包不看数据的高压场景
核心概念 · 「过滤设置」不是「滤镜」
这是新手最容易踩的坑,两者名字像,作用完全不同:
| 过滤设置(Leach) | 滤镜(Filter) | |
|---|---|---|
| 作用对象 | 只影响界面显示 | 影响真实网络数据 |
| 是否改包 | 否 | 是(替换 / 换包 / 拦截) |
| 生效时机 | 出队入列表时 | Hook / 转发时 |
| 典型用途 | 只看某个端口 / 某个长度的包 | 改数值、屏蔽心跳、自动应答 |
| 入口 | 状态条「设置 ▾」→ 过滤设置 | 左侧导航 → 滤镜列表 |
核心概念 · 四道关卡,一个封包要过几层
WPE 里有四处地方名字都像「过滤」,但它们串在链路的不同位置上。抓不到包 或 改不动包 时,按这张表从上往下逐层排查,比乱试快得多:
| # | 关卡 | 位置 | 管什么 | 关掉的后果 |
|---|---|---|---|---|
| 1 | 拦截设置 | Hook / 转发的 源头 | 决定 挂哪些钩子、抓哪几类封包(注入 12 个函数开关 / 代理 TCP · UDP 请求响应) | 这一类封包 根本不产生,后面几层都白搭 |
| 2 | 滤镜 | 封包进队列 之前 | 唯一能 改真实数据 的一层:替换 / 换包 / 拦截 / 只显示 / 不显示 | 数据原样通过,不做任何改写 |
| 3 | 过滤设置 | 出队 入列表时 | 只决定 界面上看不看得见,不碰网络数据 | 全部封包都显示,列表容易被刷屏 |
| 4 | 映射设置 | 内置 SOCKS5 转发 HTTP 的那一段 | 改 HTTP 的响应体与目标地址——滤镜管不到这一类。⚠️ 只对 HTTP,HTTPS 是加密的、匹配不到主机与路径 | HTTP 内容原样返回 |
「一个包都没抓到」→ 查第 1 层;「列表里看不见但计数在涨」→ 查第 3 层(看统计格里的「已过滤」);「滤镜显示命中却没改成」→ 看是不是 HTTP / HTTPS / WebSocket 类别,那几类滤镜根本不匹配。
核心概念 · 套接字与「系统套接字」
- 套接字(Socket):列表里那一列数字,是目标进程内该连接的 socket 句柄。发包必须指定一个有效套接字,否则发不出去
- 系统套接字:一个全局变量,供「发送列表」和「机器人」这类事先不知道用哪个 socket 的场合使用
- 设置:在封包列表 / 代理数据列表右键 → 设置系统套接字
- 使用:发送编辑里勾「使用系统套接字」;或机器人指令「设置 - 系统套接字」
- 若它 ≤ 0,日志会记「系统套接字未设置」并放弃发送
核心概念 · 滤镜动作与行颜色
封包列表每一行的底色,代表它被滤镜处理的结果:
| 动作 | 含义 | 默认配色 |
|---|---|---|
| 替换 | 按规则修改封包的部分字节 | 暗洋红底 / 亮洋红字 |
| 换包 | 用滤镜「修改」行的内容重新生成一个全新封包 | 暗琥珀底 / 亮琥珀字 |
| 拦截 | 丢弃该封包,不发送 / 不接收 | 暗红底 / 亮红字 |
| 仅显示 | 不改内容,但确保这条被显示 | 暗青底 / 亮青字 |
| 不显示 | 不改内容,且不入列表(静默) | —(看不到) |
出厂配色是 暗调底 + 同色相亮字,命中行靠颜色区分,不会盖过正文。要改就 点封包列表工具条左边那四个色块(代理数据页与注入数据页都有),就地改「动作配色」,每项带一个「还原」——挑颜色要看着它在表里的样子,所以入口在图例本身,不在系统设置里。
这四组颜色 会落库,所以从旧版本导入配置时会连同那时的颜色一起带过来,想换成新的出厂配色,点色块里的「还原」即可。
核心概念 · 封包类别
程序内部定义 23 种封包类别,注入模式产生前 13 种,代理模式产生后 10 种。滤镜编辑里的「作用于哪些封包」把它们归并成 12 个开关(注入 8 个 + 代理 4 个,弹窗按当前模式只显示对应的那一半):
| 模式 | 原始类别 | 滤镜「作用于哪些封包」 |
|---|---|---|
| 注入 | WS1_Send / WS2_Send | 发送 |
WS1_SendTo / WS2_SendTo | 发送到 | |
WS1_Recv / WS2_Recv | 接收 | |
WS1_RecvFrom / WS2_RecvFrom | 接收自 | |
WSASend / WSASendTo / WSARecv / WSARecvFrom,另加 WSARecvEx(并入 WSA接收) | WSA发送 / WSA发送到 / WSA接收 / WSA接收自 | |
| 代理 | TCP_Req / TCP_Resp | TCP 请求 / TCP 响应 |
UDP_Req / UDP_Resp | UDP 请求 / UDP 响应 | |
HTTP(S)_* / WebSocket_* | 不参与滤镜匹配 |
HTTP / HTTPS / WebSocket 类别的包 不会被滤镜命中——那 12 个开关里没有对应项。HTTP 的内容可以用 映射设置 改;HTTPS 与 WebSocket 目前两条路都改不了,只能看。