Update goodbyedpi.c
This commit is contained in:
parent
7724fff4e2
commit
3f4a99cc54
|
|
@ -390,14 +390,15 @@ static int find_header_and_get_info(const char *pktdata, unsigned int pktlen,
|
|||
*/
|
||||
static int extract_sni(const char *pktdata, unsigned int pktlen,
|
||||
char **hostnameaddr, unsigned int *hostnamelen) {
|
||||
unsigned int ptr = 0;
|
||||
const unsigned char *d = (const unsigned char *)pktdata;
|
||||
const unsigned char *hnaddr = NULL;
|
||||
size_t hnlen = 0;
|
||||
int hnlen = 0;
|
||||
|
||||
for (size_t ptr = 0; ptr + 8 < pktlen; ptr++) {
|
||||
while (ptr + 8 < pktlen) {
|
||||
if (d[ptr] == '\0' && d[ptr+1] == '\0' && d[ptr+2] == '\0' &&
|
||||
d[ptr+4] == '\0' && d[ptr+6] == '\0' && d[ptr+7] == '\0' &&
|
||||
d[ptr+3] - d[ptr+5] == 2 && d[ptr+5] - d[ptr+8] == 3)
|
||||
(d[ptr+3] ^ d[ptr+5]) == 2 && (d[ptr+5] ^ d[ptr+8]) == 3)
|
||||
{
|
||||
hnaddr = &d[ptr+9];
|
||||
hnlen = d[ptr+8];
|
||||
|
|
@ -406,7 +407,7 @@ static int extract_sni(const char *pktdata, unsigned int pktlen,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < hnlen; i++) {
|
||||
for (int i = 0; i < hnlen; i++) {
|
||||
if (!((hnaddr[i] >= '0' && hnaddr[i] <= '9') ||
|
||||
(hnaddr[i] >= 'a' && hnaddr[i] <= 'z') ||
|
||||
hnaddr[i] == '.' || hnaddr[i] == '-'))
|
||||
|
|
@ -419,12 +420,14 @@ static int extract_sni(const char *pktdata, unsigned int pktlen,
|
|||
*hostnamelen = (unsigned int)hnlen;
|
||||
return TRUE;
|
||||
}
|
||||
ptr++;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static inline void change_window_size(const PWINDIVERT_TCPHDR ppTcpHdr, unsigned int size) {
|
||||
if (size >= 1 && size <= 0xFFFFu) {
|
||||
ppTcpHdr->Window = htons((u_short)size);
|
||||
|
|
|
|||
Loading…
Reference in New Issue