mirror of
https://github.com/bol-van/zapret2.git
synced 2026-03-14 06:13:09 +00:00
nfqws2: harden wireguard detector
This commit is contained in:
@@ -1,3 +1,3 @@
|
|||||||
udp.PayloadLength=148 and udp.Payload[0]=0x01 or
|
udp.PayloadLength=148 and udp.Payload32[0]=0x01000000 or
|
||||||
udp.PayloadLength=92 and udp.Payload[0]=0x02 or
|
udp.PayloadLength=92 and udp.Payload32[0]=0x02000000 or
|
||||||
udp.PayloadLength=64 and udp.Payload[0]=0x03
|
udp.PayloadLength=64 and udp.Payload32[0]=0x03000000
|
||||||
|
|||||||
@@ -1378,24 +1378,24 @@ bool IsDNSResponse(const uint8_t *data, size_t len)
|
|||||||
}
|
}
|
||||||
bool IsWireguardHandshakeInitiation(const uint8_t *data, size_t len)
|
bool IsWireguardHandshakeInitiation(const uint8_t *data, size_t len)
|
||||||
{
|
{
|
||||||
return len==148 && data[0]==1;
|
return len==148 && pntoh32(data)==0x01000000;
|
||||||
}
|
}
|
||||||
bool IsWireguardHandshakeResponse(const uint8_t *data, size_t len)
|
bool IsWireguardHandshakeResponse(const uint8_t *data, size_t len)
|
||||||
{
|
{
|
||||||
return len==92 && data[0]==2;
|
return len==92 && pntoh32(data)==0x02000000;
|
||||||
}
|
}
|
||||||
bool IsWireguardHandshakeCookie(const uint8_t *data, size_t len)
|
bool IsWireguardHandshakeCookie(const uint8_t *data, size_t len)
|
||||||
{
|
{
|
||||||
return len==64 && data[0]==3;
|
return len==64 && pntoh32(data)==0x03000000;
|
||||||
}
|
}
|
||||||
bool IsWireguardData(const uint8_t *data, size_t len)
|
bool IsWireguardData(const uint8_t *data, size_t len)
|
||||||
{
|
{
|
||||||
// 16 bytes wg header + min 20 bytes for ipv4 encrypted header + 16 byte auth tag
|
// 16 bytes wg header + min 20 bytes for ipv4 encrypted header + 16 byte auth tag
|
||||||
return len>=52 && data[0]==4;
|
return len>=52 && pntoh32(data)==0x04000000;
|
||||||
}
|
}
|
||||||
bool IsWireguardKeepalive(const uint8_t *data, size_t len)
|
bool IsWireguardKeepalive(const uint8_t *data, size_t len)
|
||||||
{
|
{
|
||||||
return len==32 && data[0]==4;
|
return len==32 && pntoh32(data)==0x04000000;
|
||||||
}
|
}
|
||||||
bool IsDht(const uint8_t *data, size_t len)
|
bool IsDht(const uint8_t *data, size_t len)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user