首页 > 其他分享 >抓包工具:Sunny网络中间件

抓包工具:Sunny网络中间件

时间:2023-12-21 14:06:24浏览次数:30  
标签:Body UDP 中间件 Sunny TCP SunnyNet 抓包 Type Conn


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 main

import (
	"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/SunnyNethttps://esunny.vip/


标签:Body,UDP,中间件,Sunny,TCP,SunnyNet,抓包,Type,Conn
From: https://blog.51cto.com/lilongsy/8923372

相关文章

  • pycharm中间件简介
    个人理解:#中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。因为改变的是全局,所以需要谨慎实用,用不好会影响到性能#django内置中间件 'django.middleware.security.SecurityMiddleware','django.contrib.s......
  • 《分布式中间件核心原理与RocketMQ最佳实践》
    ......
  • 消息中间件的选择:RabbitMQ是一个明智的选择
    ......
  • Charles对Android手机Https请求的抓包
    Charles对Android手机Https请求的抓包•前情提要:本文只是对android手机进行抓包的描述,由于android手机系统原因,android7.0系统及以上需要在app中配置证书信任才能进行https抓包,android7.0(不含)以下系统,只需要配置好证书即可进行https抓包,本文分CharlesWindows版使用说明一、......
  • gin 中间件流程控制:Next()、 Abort()
    Next()源码注释:应该只在中间件内部使用。它执行调用处理程序内部链中的挂起处理程序。通俗的说,就是中间件放行,当一个中间件代码执行到Next(),会先执行它之后的函数,最后再来执行完本函数。packagemainimport("fmt""github.com/gin-gonic/gin""net/http")f......
  • 一个能用的微信小程序抓包方式
    [一个能用的微信小程序抓包方式(亲测)-『精品软件区』-吾爱破解-LCG-LSG|安卓破解|病毒分析|www.52pojie.cn](https://www.52pojie.cn/thread-1849166-1-2.html)今天接到复测微信小程序的任务,需要对微信小程序进行抓包,从上午到现在试了很多方式,分别为Burp+Proxifier、Burp......
  • 使用 fiddler 进行抓包处理
    1.概述fiddler是一个抓包工具,有时候方便我们在访问网页上,看看网页的参数和返回结果。其中很重要的一条是,可以看看网页的响应速度,在对于调优方面提供一些依据。2.软件安装我们可以通过360软件管家来安装比较好,可以选择fiddler4.3.增加过滤一般情况下,fiddler会有很多其他的......
  • linux下的抓包工具tcpdump命令用法
     ############linux下的抓包工具tcpdump命令详解#########tcpdump命令--详解 tcpdump是工作中必用的一道指令,如果熟悉掌握,将会很快的帮你解决问题!先看看tcpdump的具体参数及意义:-i:指定tcpdump监听的网络接口-s:指定要监听数据包的长度-c:指定要监听的数据包数量,达到指定......
  • FolkMQ 内存型消息中间件,v1.0.21 发布
    简介采用“多路复用”+"内存运行"+"快照持久化"+"Broker集群模式"(可选)+基于Socket.D网络应用协议开发。全新设计,自主架构!角色功能生产端发布消息(Qos0、Qos1)、发布定时消息(Qos0、Qos1)、发布重试消费端订阅、取消订阅消费端消费-ACK(自动、手......
  • 微信小程序抓包及测试案例
    网上大多数的小程序测试抓包都是用的安卓模拟器,这里使用的是BurpSuite+Proxifer+微信客户端的抓包方式环境准备Burp2023.9.2Proxifier4.5Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器,工作的网络程序能通过HTTPS或socks或代理链。其是收费软件,免费试......