架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 12|回复: 0

[资料] .NET/C# 使用 WinDivert 在 Windows 抓包、修改数据包

[复制链接]
发表于 2 小时前 | 显示全部楼层 |阅读模式
需求:需要在 Windows 系统下抓取 TCP 数据包,并且能够修改数据包,类似网络安全中的中间人攻击。

回顾:
.net下的抓包工具SharpPcap写的
https://www.itsvse.com/thread-2914-1-1.html

.NET Core 在 Linux 流量抓包实战
https://www.itsvse.com/thread-9524-1-1.html

WinDivert: Windows Packet Divert

Windows Packet Divert(WinDivert)是适用于 Windows 10、Windows 11 和 Windows Server 的用户模式数据包捕获和转移包。

官网:超链接登录可见。

WinDivert 允许用户模式应用程序捕获/修改/丢弃发送到/来自 Windows 网络堆栈的网络数据包。总而言之,WinDivert 可以:

  • 捕获网络数据包
  • 过滤/丢弃网络数据包
  • 嗅探网络数据包
  • (重新)注入网络数据包
  • 修改网络数据包


WinDivert 可用于实现用户模式数据包过滤器、数据包嗅探器、防火墙、NAT、VPN、隧道应用程序等。

WinDivert 的主要功能包括:

  • 数据包拦截、嗅探或丢弃模式
  • 支持环回(本地主机)流量
  • 全面支持 IPv6
  • 网络层
  • 简单但功能强大的 API
  • 高级过滤语言
  • 过滤优先级
  • 静默安装
  • 根据 GNU 宽通用公共许可证 (LGPL) 条款免费提供


搭建 httpbin

httpbin(1): HTTP 请求和响应服务,搭建一个 http 服务,通过 WinDivert 修改请求的数据包内容,能够通过响应内容直观的查看到数据包被修改了,服务器接收到的是被中间人拦截修改的数据包内容。

源码:超链接登录可见。

Docker 搭建 httpbin 命令如下:
如下图:

QQ截图20250926104602.jpg QQ截图20250926104617.jpg

.NET 控制台

首先,新建 .NET 8 控制台应用,nuget 引用如下:
代码如下:

未拦截修改数据库之前,如下图:

QQ截图20250926104953.jpg

启动拦截修改数据包,如下图:

QQ截图20250926105208.jpg

(完)




上一篇:Git 将主仓库分支代码同步到私有仓库分支
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2025-9-26 13:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表