hmlyn/SunnyNet-wpf

GitHub: hmlyn/SunnyNet-wpf

基于 SunnyNet Go 核心的 Windows 桌面抓包分析工具,使用 WPF 重绘界面,提供多协议流量捕获、断点拦截、请求构造与 AI 联动等能力。

Stars: 27 | Forks: 5

# SunnyNet WPF SunnyNet WPF 是基于 SunnyNet Go 核心的 Windows 抓包分析工具。项目使用 `C# + WPF` 重绘桌面界面,核心抓包、代理、脚本、证书与协议处理仍由 Go 后端提供,并以 `c-shared DLL` 方式供 WPF 直接调用。 仓库地址:https://github.com/hmlyn/SunnyNet-wpf 作者:`hmlyn` 仓库描述: ## 功能概览 - Windows x64 桌面应用,界面层使用 WPF,运行产物为 `SunnyNet.exe`。 - Go 后端编译为 `backend/SunnyNetBridge.dll`,WPF 通过 P/Invoke 直接调用 SunnyNet 核心能力。 - 仓库已随项目分发 SunnyNet 核心兼容源码,后端通过本地 `replace` 引用,不再依赖额外手动准备核心源码。 - 支持 HTTP/HTTPS、WebSocket、TCP、UDP 会话捕获、筛选、查看和分析。 - 支持进程筛选、域名筛选、会话收藏、备注、标记颜色、列宽记忆和窗口布局记忆。 - 支持会话比较视图,可拖入两条会话对比请求/响应差异,并显示哈希摘要。 - 支持请求/响应 XML 视图,内容匹配 XML 时自动显示,避免无关视图占用空间。 - 支持 TLS 指纹视图,可查看 JA3、JA3N、JA4、JA4-R、Akamai 等指纹信息。 - 支持断点拦截、普通重发、运行到结束、断开连接,以及请求/响应内容修改。 - 支持请求规则中心,包括请求断点、HTTP/WebSocket/TCP/UDP 屏蔽、请求重写、请求映射。 - 支持请求构造器,可自行构造 GET/POST 等请求,支持协议头/Body 多视图编辑、从会话列表回填重放和历史记录缓存。 - 支持会话右键复制请求代码,包含 C#、Java、Go、Python、JavaScript、易语言、火山等模板。 - 支持全局查找、查找替换、请求/响应文本高亮,查找窗口命中后可联动右侧详情视图。 - 支持 WebSocket 消息流、主动发送、消息重放、HEX/原文/JSON/Protobuf 视图。 - 支持 TCP/UDP 专用数据视图,避免复用 HTTP/WebSocket 视图造成信息冗余。 - 支持脚本扩展,可在脚本中处理、解密或转换数据,并写入显示层明文,不破坏原始请求/响应数据。 - 内置文本工具、JSON 结构编辑器、加密/解密工具、开源协议与赞赏页面。 - 文本工具支持 Base64/Base64URL、URL、UCS2、常用压缩解压、文本差异、文本去重、大小写转换、时间戳转换等。 - 加密/解密工具支持 AES/DES/RSA、常用哈希、HMAC,并支持文本/Base64/HEX/Base64URL 输入输出。 - 支持 GitHub Release 检查更新,可自动检测新版本并打开发布页。 - 支持 SunnyNet MCP,可让 AI 会话读取、搜索、标记、收藏、备注、查看 TLS 指纹和分析抓包会话。 ## 最新版本 当前发布版本:`v0.1.6` 发布包命名: SunnyNet-wpf-v0.1.6-win-x64.zip Release 包含 Windows x64 可运行程序、WPF 主程序、Go 后端 DLL、随程序运行所需资源,以及可选 MCP 桥接程序。 ## 本次核心更新 - 请求规则入口重构:主界面顶部“请求规则”现在直接进入规则中心,不再使用下拉菜单。 - 规则中心按方案 B 重绘:左侧分类导航、顶部统一工具条、右侧表格工作区,减少卡片堆叠和空间浪费。 - 原“拦截规则”迁移为规则中心内的“请求断点”,支持添加、编辑、删除、启用、备注保存与重复规则校验。 - 请求断点编辑窗口改为轻量表单,只保留方向、匹配范围、匹配方式、匹配值、备注等必要字段。 - 请求屏蔽保留 HTTP、WebSocket、TCP、UDP 二级分类,规则数量和当前页统计会同步显示。 - 规则中心新增当前页搜索过滤,方便在大量断点、屏蔽、重写、映射规则中快速定位。 - MCP 和后端配置同步补齐请求断点备注字段,AI 读取或管理断点规则时能保留备注信息。 ## 目录结构 - `backend/`:Go 后端桥接层,编译为 `backend/SunnyNetBridge.dll`。 - `third_party/SunnyNet/`:随仓库分发的 SunnyNet Go 核心兼容源码。 - `src/SunnyNet.Wpf/`:WPF 桌面程序源码。 - `docs/`:项目文档,例如 MCP 工具清单。 - `sunnymcptool/`:可选的上游 MCP 工具源码目录,默认不随仓库提交,需自行克隆。 - `_toolchain/`:可选本地工具链目录,例如 Zig。 - `build-debug.bat`:Debug 构建脚本,输出到 `artifacts/Debug/`。 - `build-release.bat`:Release 构建脚本,输出到 `artifacts/Release/`,并移除 pdb。 ## 编译环境 必须环境: - Windows 10/11 x64 - .NET SDK 8.0+ - Go 1.24.x - Zig 0.15.2 或兼容版本,用于让 Go 生成 Windows 可加载的 `c-shared DLL` - Git 推荐环境: - Visual Studio 2022,用于打开、调试 WPF 项目。 - PowerShell 7 或 Windows PowerShell,用于运行构建脚本和 MCP 构建脚本。 可选环境: - `sunnymcptool`,用于打包 MCP 桥接程序。 ## SunnyNet 核心分发说明 项目已随仓库分发 SunnyNet Go 核心兼容源码: third_party/SunnyNet 当前 `backend/go.mod` 使用本地 replace: replace github.com/qtgolang/SunnyNet => ../third_party/SunnyNet 这样首次拉取仓库后即可直接编译后端,也方便项目维护必要的核心层补丁。后续如果 SunnyNet 核心需要增强或修复,建议在 `third_party/SunnyNet` 内维护兼容补丁,并同步验证 WPF 调用链。 ## 获取源码 git clone https://github.com/hmlyn/SunnyNet-wpf.git cd SunnyNet-wpf 仓库当前不依赖 Git submodule,`third_party/SunnyNet` 已在仓库内分发。 ## Zig 准备 两种方式任选一种。 方式一:安装 `zig` 并加入 `PATH`: zig version 方式二:将 Zig 解压到项目本地路径: _toolchain/zig-x86_64-windows-0.15.2/zig.exe 项目会优先使用本地 `_toolchain`,如果不存在则使用 `PATH` 中的 `zig`。 ## MCP 准备 MCP 是可选项。若需要把 MCP 桥接程序一起打包,请在项目根目录旁准备上游 `sunnymcptool`: git clone https://github.com/a121400/sunnymcptool.git cd sunnymcptool .\scripts\build.ps1 -Target mcp 编译后应存在: sunnymcptool/build/bin/sunnynet-mcp.exe WPF 构建时会自动复制到运行目录: mcp/sunnynet-mcp.exe 如果没有该文件,主程序仍可编译运行,只是 MCP 功能不可用。 ## 编译方式 Debug: build-debug.bat Release: build-release.bat 也可以直接使用: dotnet build .\SunnyNet.sln -c Debug dotnet build .\SunnyNet.sln -c Release 建议发布包使用 `build-release.bat`,因为该脚本会输出到固定目录,并删除 pdb 文件。 ## 输出位置 使用脚本构建后: artifacts/Debug/SunnyNet.exe artifacts/Release/SunnyNet.exe 使用 `dotnet build` 默认构建后: src/SunnyNet.Wpf/bin/Debug/net8.0-windows/SunnyNet.exe src/SunnyNet.Wpf/bin/Release/net8.0-windows/SunnyNet.exe 运行时主程序会加载同目录下的 Go 后端 DLL: backend/SunnyNetBridge.dll 如果启用了 MCP,还会加载: mcp/sunnynet-mcp.exe ## 发布打包 推荐流程: build-release.bat 然后将下面目录压缩为 zip: artifacts/Release/ 推荐命名: SunnyNet-wpf-v0.1.6-win-x64.zip ## 常见问题 如果提示找不到 Zig: - 确认 `zig version` 可以在 PowerShell 中正常执行。 - 或确认本地路径 `_toolchain/zig-x86_64-windows-0.15.2/zig.exe` 存在。 如果 Go 后端 DLL 没有生成: - 确认已经安装 Go 1.24.x。 - 确认 Zig 可用。 - 确认 `third_party/SunnyNet` 目录存在。 - 重新运行 `build-debug.bat` 或 `build-release.bat`。 如果 MCP 文件没有出现在编译产物里: - 先编译 `sunnymcptool` 的 MCP 目标。 - 确认 `sunnymcptool/build/bin/sunnynet-mcp.exe` 存在。 - 重新运行 `build-debug.bat` 或 `build-release.bat`。 ## 文档 - `docs/MCP工具清单.md`:当前 WPF 版支持的 MCP 工具、参数与返回字段说明。 ## 开源协议 SunnyNet WPF 版采用 MIT 协议开源。你可以自由使用、复制、修改、合并、发布、分发或二次开发本项目,但需要保留原始版权声明和协议声明。 本项目仅用于合法的网络调试、接口分析、测试与技术研究场景。请勿将本工具用于未授权抓包、绕过访问控制、攻击或其它违法用途。
标签:API测试, C-shared DLL, Go语言, HTTPS抓包, HTTP代理, JA3指纹, JA4指纹, P/Invoke, Protobuf解析, TCP/UDP拦截, TLS指纹分析, WebSocket调试, Windows桌面应用, WPF, 中间人代理, 安全测试, 抓包工具, 接口调试, 攻击性安全, 数据包构造, 断点拦截, 日志审计, 服务管理, 流量映射, 混合开发, 程序破解, 网络协议分析, 网络安全, 网络数据重写, 网络流量分析, 网络调试工具, 请求构造器, 请求重放, 软件调试, 逆向分析, 防御绕过, 隐私保护