抓包工具:Sunny网络中间件

news/2025/2/21 7:32:03/

Sunny网络中间件 和 Fiddler 类似。 是可跨平台的网络分析组件

可用于HTTP/HTTPS/WS/WSS/TCP/UDP网络分析 为二次开发量身制作
支持 获取/修改 HTTP/HTTPS/WS/WSS/TCP/TLS-TCP/UDP 发送及返回数据
支持 对 HTTP/HTTPS/WS/WSS 指定连接使用指定代理
支持 对 HTTP/HTTPS/WS/WSS/TCP/TLS-TCP 链接重定向
支持 gzip, deflate, br 解码
支持 WS/WSS/TCP/TLS-TCP/UDP 主动发送数据

package mainimport ("fmt""github.com/qtgolang/SunnyNet/SunnyNet""github.com/qtgolang/SunnyNet/public""time"
)var Sunny = SunnyNet.NewSunny()func main() {//绑定回调函数Sunny.SetGoCallback(HttpCallback, TcpCallback, WSCallback, UdpCallback)//绑定端口号并启动Sunny.SetPort(2023).Start()//避免程序退出time.Sleep(24 * time.Hour)
}
func HttpCallback(Conn *SunnyNet.HttpConn) {if Conn.Type == public.HttpSendRequest {//发起请求//这里可以对请求数据修改if Conn.Request.Body != nil {Body, _ := io.ReadAll(Conn.Request.Body)_ = Conn.Request.Body.Close()//这里可以对Body修改Body = []byte("Hello Sunny Request")Conn.Request.Body = io.NopCloser(bytes.NewBuffer(Body))//直接响应,不让其发送请求//Conn.StopRequest(200, "Hello Word")}fmt.Println(Conn.Request.URL.String())} else if Conn.Type == public.HttpResponseOK {//请求完成if Conn.Response.Body != nil {Body, _ := io.ReadAll(Conn.Response.Body)_ = Conn.Response.Body.Close()//这里可以对Body修改Body = []byte("Hello Sunny Response")Conn.Response.Body = io.NopCloser(bytes.NewBuffer(Body))}} else if Conn.Type == public.HttpRequestFail {//请求错误}
}
func WSCallback(Conn *SunnyNet.WsConn) {//捕获到数据可以修改,修改空数据,取消发送/接收fmt.Println(Conn.Url)
}
func TcpCallback(Conn *SunnyNet.TcpConn) {//捕获到数据可以修改,修改空数据,取消发送/接收fmt.Println(Conn.Pid, Conn.LocalAddr, Conn.RemoteAddr, Conn.Type, Conn.GetBodyLen())
}
func UdpCallback(Conn *SunnyNet.UDPConn) {//在 Windows 捕获UDP需要加载驱动,并且设置进程名//其他情况需要设置Socket5代理,才能捕获到UDP//捕获到数据可以修改,修改空数据,取消发送/接收if public.SunnyNetUDPTypeReceive == Conn.Type {fmt.Println("接收UDP", Conn.LocalAddress, Conn.RemoteAddress, len(Conn.Data))}if public.SunnyNetUDPTypeSend == Conn.Type {fmt.Println("发送UDP", Conn.LocalAddress, Conn.RemoteAddress, len(Conn.Data))}if public.SunnyNetUDPTypeClosed == Conn.Type {fmt.Println("关闭UDP", Conn.LocalAddress, Conn.RemoteAddress)}
}

代码:
https://gitee.com/qtr/SunnyNet
https://esunny.vip/


http://www.ppmy.cn/news/1267415.html

相关文章

Failed to connect to github.com port 443 after 21055 ms: Timed out

目前自己使用了梯*子还是会报这样的错误,连接不到的github。 查了一下原因: 是因为这个请求没有走代理。 解决方案: 设置 -> 网络和Internet -> 代理 -> 编辑 记住这个IP和端口 使用以下命令: git config --global h…

CentOS使用kkFileView实现在线预览word excel pdf等

一、环境安装 1、安装LibreOffice wget https://downloadarchive.documentfoundation.org/libreoffice/old/7.5.3.2/rpm/x86_64/LibreOffice_7.5.3.2_Linux_x86-64_rpm.tar.gz # 解压缩 tar -zxf LibreOffice_7.5.3.2_Linux_x86-64_rpm.tar cd LibreOffice_7.5.3.2_Linux_x86…

Backtrader 文档学习-Quickstart

Backtrader 文档学习-Quickstart 0. 前言 backtrader,功能十分完善,有完整的使用文档,安装相对简单(直接pip安装即可)。 优点是运行速度快,支持pandas的矢量运算;支持参数自动寻优运算&#x…

Pytest自动化测试用例中的断言详解

前言 测试的主要工作目标就是验证实际结果与预期结果是否一致;在接口自动化测试中,通过断言来实现这一目标。Pytest中断言是通过assert语句实现的(pytest对Python原生的assert语句进行了优化),确定实际情况是否与预期一…

三天精通Selenium Web 自动化 - Selenium(Java)环境搭建 (new)

0 背景 开发工具idea代码管理mavenjdk1.8webdriver chrome 1 chromedriver & chrome chromedriver和chrome要对应上: chomedriver下载地址:淘宝镜像 这里用的是 chromedriver88-0-4324-96.zipchrome下载地址:如何降级和安装旧版本的C…

智能查券机器人:导购APP的新趋势

智能查券机器人:导购APP的新趋势 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在当今这个数字化时代,网络购物已经成为人们日常生活的一部…

深入理解Disruptor - 无锁并发框架的革命

1. Disruptor框架简介 概述: Disruptor是一种高性能的内存队列,最初由LMAX开发,目的是在低延迟交易系统中替代传统的阻塞队列。它通过使用环形数组和无锁的发布/订阅模式,显著降低了线程间通信的延迟。这种设计使得它在多生产者-…

(C++)最大连续1的个数--滑动窗口

个人主页:Lei宝啊 愿所有美好如期而遇 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://le…