[Redirector] Support custom icmp delay

This commit is contained in:
Connection Refused
2021-09-29 19:28:09 +08:00
parent 2edf384f49
commit 518a193bfa
4 changed files with 13 additions and 3 deletions

View File

@@ -5,6 +5,7 @@ BOOL filterIntranet = FALSE;
BOOL filterICMP = TRUE;
BOOL filterTCP = TRUE;
BOOL filterUDP = TRUE;
DWORD icmping = 0;
wstring tgtHost = L"1.1.1.1";
wstring tgtPort = L"1080";
string tgtUsername = "";

View File

@@ -29,6 +29,8 @@ typedef enum _AIO_TYPE {
AIO_FILTERTCP,
AIO_FILTERUDP,
AIO_ICMPING,
AIO_TGTHOST,
AIO_TGTPORT,
AIO_TGTUSER,

View File

@@ -1,5 +1,7 @@
#include "IPEventHandler.h"
extern DWORD icmping;
USHORT IPv4Checksum(PBYTE buffer, ULONG64 size)
{
UINT32 sum = 0;
@@ -76,6 +78,7 @@ void ipSend(const char* buffer, int length, PNF_IP_PACKET_OPTIONS options)
data[options->ipHeaderSize + 2] = icmpsum & 0xff;
data[options->ipHeaderSize + 3] = (icmpsum >> 8);
Sleep(icmping);
printf("[Redirector][IPEventHandler][ipSend] Fake ICMP response for %d.%d.%d.%d\n", data[12], data[13], data[14], data[15]);
nf_ipPostReceive((PCHAR)data, length, options);

View File

@@ -8,6 +8,7 @@ extern BOOL filterIntranet;
extern BOOL filterICMP;
extern BOOL filterTCP;
extern BOOL filterUDP;
extern DWORD icmping;
extern wstring tgtHost;
extern wstring tgtPort;
extern string tgtUsername;
@@ -68,9 +69,8 @@ extern "C" {
case AIO_FILTERUDP:
filterUDP = (wstring(value).find(L"false") == string::npos);
break;
case AIO_CLRNAME:
bypassList.clear();
handleList.clear();
case AIO_ICMPING:
icmping = atoi(ws2s(value).c_str());
break;
case AIO_TGTHOST:
tgtHost = wstring(value);
@@ -84,6 +84,10 @@ extern "C" {
case AIO_TGTPASS:
tgtPassword = ws2s(value);
break;
case AIO_CLRNAME:
bypassList.clear();
handleList.clear();
break;
case AIO_BYPNAME:
try
{