常见问题
从下载安装、注入与代理,到滤镜、发送与机器人,各类常见问题的 解决方案。若下方未能解决你的问题,欢迎到 GitHub 提交 Issues 或直接发邮件给 wpe64@qq.com 反馈。
一定要用管理员权限运行吗?
是。WPE x64 检测到自己不是管理员时会 自动以 runas 重启,不存在「以普通权限凑合用」的模式。注入需要向别的进程写入并挂钩,代理模式的强制转代理要加载内核驱动、装根证书要写系统证书存储,这几件事都绕不开管理员权限。
支持 macOS 或 Linux 吗?
不支持。WPE x64 是 Windows 专属 的:基于 .NET Framework 4.8 + WinForms,挂钩的是 Windows 的 WinSock API(wsock32.dll / ws2_32.dll / mswsock.dll),强制转代理用的也是 Windows 内核驱动。跑在 macOS / Linux 上的虚拟机里的 Windows 可以正常使用。
能抓手机 / 模拟器的包吗?
能,走 代理模式:把 WPE 的 SOCKS5 / HTTP 代理开在本机,手机或模拟器填上电脑的 IP 与端口,再装上 WPE 的根证书就能看到 HTTPS 明文。完整步骤、各平台证书安装方式与故障对照见教程 代理模式 · 抓手机 / 模拟器 / 另一台电脑的包。
安卓模拟器还有更省事的一条路:模拟器本身就是 本机进程,可以直接用 注入模式 注入它,跳过整套代理与证书配置。
抓包会影响目标程序吗?两种模式哪个更「轻」?
取决于用哪种模式,这一点值得先想清楚:
- 注入模式:WPE 的程序集会被 加载进目标进程 并替换 WinSock 函数入口。正常情况下目标程序照常运行,但它 确实被改动过——带反注入 / 反作弊保护的程序可能因此报错、闪退或判定异常。点「停止」会卸载全部钩子,目标程序恢复原状。
- 代理模式:WPE 不碰目标进程,只是在网络路径上多一跳,对程序本身 侵入性最小。代价是目标必须愿意走代理(或用强制转代理接管),且保存进程设置时会断开它已建立的 TCP 连接。
在有反作弊机制的在线游戏里使用任何抓包 / 改包工具都可能触发处罚。请只在 自有程序、测试环境或已获授权的目标 上使用。
两种模式可以同时用吗?
同一个 WPE 实例里不行——首页选定模式后就直接进入对应窗口了。需要同时跑,就用 多开设置 给第二个实例指定另一个数据库路径,再启动一份 WPE 选另一种模式。两套配置各自独立,互不干扰。
网上说 WPE 只能抓 TCP、不支持 UDP,是真的吗?
那是在讲二十年前的 1.x 版本。WPE x64 对 UDP 是完整支持的:
- 注入模式:除了
send/recv,还挂了sendto/recvfrom/WSASendTo/WSARecvFrom四个 UDP 收发函数。 - 代理模式:SOCKS5 服务实现了完整的 UDP 中继,地址类型支持 IPv4 / IPv6 / 域名。
- 滤镜:「发送到 / 接收自」(注入)与「UDP 请求 / UDP 响应」(代理)都是独立的作用类别,可以单独匹配和改写。
真正抓不到的是 ICMP(Ping)与原始套接字——它们不经过 WinSock 的收发函数,代理协议里也没有对应通道。完整清单见 能力边界。
WPE 是工作在驱动层还是应用层?
两种模式 都在应用层,这一点常被网上的综述文章讲错:
- 注入模式:把 Hook 程序集注入目标进程,替换
ws2_32.dll等模块里收发函数的入口——挂的是 用户态 API,不是网络协议栈。 - 代理模式:WPE 自己起一个 SOCKS5 / HTTP 服务,流量绕道过来,本质是一个 应用层代理。
- 唯一用到内核驱动的是 强制转代理(NFAPI / Proxifier / WinDivert),它的作用是把指定进程的连接 导向 代理,而不是直接读写数据包。
这个区别有实际后果:不走 WinSock 的流量 WPE 看不到,例如内核态驱动直接发包的程序。这类目标需要用强制转代理把它拽到代理侧,否则超出 WPE 的处理范围。
能一次抓到本机所有程序的流量吗?
不能,也不建议那样用。WPE 是 面向单个目标 的调试工具:
- 注入模式 一次针对一个进程;要同时盯几个程序,用 多开设置 起多个实例,各自注入。
- 代理模式 只看得到 主动走代理 的流量。想连不支持代理设置的程序也一起接管,用 强制转代理 按 PID 或进程名指定——它同样是白名单式的,不会无差别接管全机。
这是设计取向的问题:WPE 的价值在 能改、能重放,而不是抓得全。先用上面的办法把范围收到目标进程上,分析效率反而更高。
怎么安装?为什么找不到安装程序?
因为 不需要安装。WPE x64 是单文件绿色版:压缩包解压出来只有一个 WinsockPacketEditor.exe,双击就能跑,不写注册表、不进「添加或删除程序」。放哪个目录都行,不想要了直接删掉 exe 即可。
下载走 下载中心 的 蓝奏云 或 百度网盘(网盘需要提取码,页面上有)。完整步骤见教程 下载与安装。
压缩包从网上下来会被 Windows 打标记。解压之前 先在压缩包上右键「属性 → 解除锁定 → 应用」,否则标记会跟着落到 exe 上,注入时报 Code 15。
怎么升级?以前的自动更新去哪了?
旧版本用过 ClickOnce 在线安装与自动更新,现在已经不用了。软件不会联网检查版本,也不会弹升级提示——升级就是手动下一个新的:
- 到 下载中心 看更新日志,下载新版压缩包。
- 解除锁定 → 解压 → 关掉正在运行的旧版(注入模式先「停止」并退出被注入的程序)→ 运行新的 exe。
- 旧 exe 删不删都行,两个版本放一起并不冲突。
配置库是 C:\WPE64DB\<程序集版本>.db,文件名跟着版本走。所以新版第一次打开时,滤镜、发送、机器人、代理账号都是空的——数据没丢,只是还在旧版本那个 .db 里。
迁移办法:在旧版 用「备份设置」导出 .sb,到新版 导入。详见教程 怎么升级到新版本。
注入报错 STATUS_INTERNAL_ERROR (Code: 15)
最常见的原因是 下载的文件被系统锁定:正确做法是在压缩包上右键「属性 → 解除锁定 → 应用 → 确定」之后 再解压。若已经解压过了,在解压出来的 WinsockPacketEditor.exe 上右键做同样的操作,或删掉重新解压一次。
另一种情况:曾用 多个版本 的 WPE64 注入过同一个进程。请退出所有注入程序、重启目标进程后再重新注入。
Windows 7 下注入后只显示空白界面
选中进程启动文件,右键「属性 → 兼容性」,勾选「以兼容模式运行」,下拉选择 Windows Server 2008,应用确定。若仍不行可尝试其它兼容模式。
启动或注入时崩溃退出
先尝试重启软件与电脑;若依旧,可删除配置文件夹后重试:
- WPE64 配置:
C:\Users\你的账号名\AppData\Local\X-NAS - 被注入软件配置:
C:\Users\你的账号名\AppData\Local\被注入软件名称
AppData 为隐藏文件夹,你可能需要先开启「显示隐藏文件」功能才能进入。
点「注入」后弹出「注入失败」
按顺序排查:① WPE 是否以 管理员权限 运行;② 目标是否有反作弊 / 反注入保护(有则改用 代理模式);③ 程序目录下 WPEHook.dll、EasyHook32/64.dll、EasyLoad32/64.dll 是否齐全;④ 压缩包是否已「解除锁定」;⑤ 看系统日志里的完整异常。
注入成功了,但点「开始」一个封包都抓不到
① 顶部信息条的 WinSock 版本 是否为空——只显示 WinSock 而没有 1.1 / 2.0 / Microsoft,说明目标进程还没加载任何 WinSock 模块,先让程序产生一次网络行为再重新注入;② 拦截设置 里对应的函数是否勾选(改完要「停止」再「开始」,挂钩只在点「开始」那一刻创建);③ 底部「过滤 :」计数在涨,说明被 过滤设置 挡掉了;④ 系统设置里的 极速模式 是否开着;⑤ 是否有滤镜的动作是「不修改 - 不显示」。
用「选择程序」注入后,目标程序像卡死了一样
正常现象。这种方式走的是 CreateAndInject,创建出来的是 挂起 的进程,点一次工具栏的 开始 才会唤醒它。
点「开始」提示「启动 SOCKS5 代理失败」
端口被占用,或选定的绑定 IP 不存在。换一个端口,或在 代理设置 里勾上「自动检测」。
保存代理设置时被拒绝
提示「代理类型未设置」→ 必须勾选 启用 SOCKS5 代理;提示「SOCKS 和 HTTP 端口不能相同」→ 把两个端口改成不同的值(默认 1080 / 1081)。
目标程序连上代理了,但抓不到封包
① 拦截设置 → 代理模式页的 TCP / UDP 请求响应是否勾选;② 过滤设置是否挡住(看「过滤 :」计数);③ 极速模式是否开着。
进程设置里选了进程,但滤镜不生效
必须启用 强制转代理 才能使用滤镜功能;同时要启用 HTTP 代理 才能拦截进程的数据——这两条在 进程设置 界面顶部的红字提示里已写明。
HTTPS 抓到的全是乱码
没有安装 WPE64 根证书。启动代理时系统日志里应出现「WPE64 证书安装成功」;其他设备(手机 / 另一台机器)需要用 代理设置 → 导出证书 导出后,手动安装为受信任的根证书。
驱动类型的单选框是灰的,改不了
驱动一旦加载就会锁定,必须先点「卸载驱动」再改。
卸载驱动会 立即重启电脑,操作前请先保存好手头的工作。
WPC 的订阅号怎么获取?自己能建吗?
不能自己建,需要向订阅服务器申请开通。 订阅号库放在 订阅服务器 上,WPC 客户端与 WPE x64 主程序都没有签发能力。
它的作用是把一串订阅号映射到 你那台 WPE x64 代理服务端的公网地址:WPC 先拿订阅号去订阅服务器换地址,再去你的 WPE 拉节点列表、转发规则与公告。所以想让别人用 WPC 一键连到你的服务器,得先把服务器的公网 IP 与端口提交上去建档。
- 申请方式:QQ 群 1121552990,或到 GitHub Issue 留言。
- 有效期:订阅号带到期时间,过期后客户端解析不到服务器地址,需要续期。
订阅只是省事,不是必需。不走订阅,把 SOCKS5 的 IP、端口、账号密码直接给使用者手动填进任意 SOCKS5 客户端,一样能连——少的只是「输入一串号就自动配好」的便利。完整说明见 代理客户端 · 订阅号从哪来。
滤镜怎么都不命中
按顺序逐条检查:
- 滤镜列表里的 启用开关 打开了吗?
- 作用类别 至少勾了一个吗?勾的类别和要抓的包类别一致吗(注入模式勾「发送」,代理模式勾「TCP 请求」)?
- 「指定类型」勾了套接字 / 长度 / 端口但填错值?这些是 AND 条件,全部要满足。
- 数据表的 搜索行 为空?没有搜索内容永远不会命中。
- 普通模式下下标是否 超出了封包长度?超出直接判不匹配。
- 「滤镜执行模式 = 优先原则」时,前面已有滤镜命中就轮不到它——把它 置顶 试试。
- 想改的是 HTTP / HTTPS / WebSocket 包?滤镜对这些类别无效,请改用 映射设置。
滤镜生效了,但改错了字节位置
注意列标题 001 对应的是字节 下标 0,数偏移时记得减一。高级模式选「自发现有连锁的位置」时,修改表的列号是 相对锚点的偏移(锚点自身为 0,可为负数),不是绝对位置。
发送执行了,但成功数一直是 0
① 封包的套接字是否有效(> 0 且连接仍然存活);② 勾了「使用系统套接字」但没设置过 → 系统日志会写「系统套接字未设置」,先在封包列表右键「设置系统套接字」;③ 代理模式下 HTTP_* / HTTPS_* 类别 不支持发送。
机器人点「执行」没有任何动静
看系统日志。出现 机器人指令 N 错误! [机器人名] 说明 校验没过,机器人会拒绝启动——最常见的原因是循环「开始 / 结束」没有配对,或者引用的发送项已被删除。
快捷键按了没反应
① 快捷键设置 里的「作用于」选对了吗(发送列表 / 机器人列表二选一);② 该组合键是否被别的软件全局占用;③ 对应序号的列表项存在吗(快捷键 1 = 列表第 1 项)。
抓包一多就卡顿,缓存区数字狂涨
按性价比从高到低依次尝试:
- 列表设置 关掉两个「所属地」列(省掉 IP 归属地查询与国旗渲染,效果最明显)。
- 打开「自动清理」并把阈值调小(默认 5000)。
- 关掉「自动滚动」。
- 标题栏的显示设置里关掉动画、阴影、文本高质量呈现。
- 用 过滤设置 只显示关心的包。
- 终极方案:打开 极速模式(界面不显示任何封包,但滤镜照常工作)。
导入备份提示「导入失败: 密码错误」
该 .sb 文件导出时设置了密码,导入时必须输入相同的密码。如果文件本来就没设密码,在弹出的密码框里直接点 取消 即可。
以上问题在 使用教程 的对应章节里有更完整的上下文与配图说明。