Divert

WinDivert: Windows Packet Divert

Github星跟蹤圖

WinDivert 2.2: Windows Packet Divert

  1. Introduction

Windows Packet Divert (WinDivert) is a user-mode packet interception library
for Windows 7, Windows 8 and Windows 10.

WinDivert enables user-mode capturing/modifying/dropping of network packets
sent to/from the Windows network stack. In summary, WinDivert can:
- capture network packets
- filter/drop network packets
- sniff network packets
- (re)inject network packets
- modify network packets
WinDivert can be used to implement user-mode packet filters, sniffers,
firewalls, NATs, VPNs, IDSs, tunneling applications, etc..

WinDivert supports the following features:
- packet interception, sniffing, or dropping modes
- support for loopback (localhost) traffic
- full IPv6 support
- network layer
- simple yet powerful API
- high-level filtering language
- filter priorities
- freely available under the terms of the GNU Lesser General Public
License (LGPLv3)

For more information see doc/windivert.html

  1. Architecture

The basic architecture of WinDivert is as follows:

                          +-----------------+, +------->, PROGRAM, --------+, (WinDivert.dll), +-----------------+, (3) re-injected, (2a) matching packet, packet, [user mode], ...................., ..................................., ...................

[kernel mode], +---------------+ +----------------->
(1) packet, (2b) non-matching packet
------------>, WinDivert.sys, -------------------------------------------->, +---------------+

The WinDivert.sys driver is installed below the Windows network stack. The
following actions occur:

(1) A new packet enters the network stack and is intercepted by WinDivert.sys
(2a) If the packet matches the PROGRAM-defined filter, it is diverted. The
PROGRAM can then read the packet using a call to WinDivertRecv().
(2b) If the packet does not match the filter, the packet continues as normal.
(3) PROGRAM either drops, modifies, or re-injects the packet. PROGRAM can
re-inject the (modified) using a call to WinDivertSend().

  1. License

WinDivert is dual-licensed under your choice of the GNU Lesser General Public
License (LGPL) Version 3 or the GNU General Public License (GPL) Version 2.
See the LICENSE file for more information.

  1. About

WinDivert was written by basil.

For further information, or bug reports, please contact:

basil@reqrypt.org

The homepage for WinDivert is:

https://reqrypt.org/windivert.html

The source code for WinDivert is hosted by GitHub at:

https://github.com/basil00/Divert

主要指標

概覽
名稱與所有者basil00/WinDivert
主編程語言C
編程語言C (語言數: 4)
平台
許可證Other
所有者活动
創建於2011-08-19 12:07:10
推送於2023-03-15 23:09:58
最后一次提交2022-04-10 06:51:38
發布數21
最新版本名稱v2.2.2 (發布於 )
第一版名稱v1.1.0-rc (發布於 )
用户参与
星數2.9k
關注者數115
派生數545
提交數280
已啟用問題?
問題數371
打開的問題數44
拉請求數7
打開的拉請求數5
關閉的拉請求數7
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?