Skip to content

Commit 5322fd2

Browse files
author
=
committed
set internal EAPOL AUTHLEN LIMIT to 1024 bytes
1 parent 2bd2d84 commit 5322fd2

2 files changed

Lines changed: 120 additions & 92 deletions

File tree

hcxpcapngtool.c

Lines changed: 119 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -312,14 +312,18 @@ static long int eapolm4zeroedcount;
312312
static long int eapolm4kdv0count;
313313
static long int eapolm4errorcount;
314314
static long int eapolwrittencount;
315+
static long int eapolnotwrittencount;
315316
static long int eapolftpskwrittencount;
316317
static long int eapolncwrittencount;
317318
static long int eapolftpskncwrittencount;
318319
static long int eapolaplesscount;
319320
static long int eapolwrittenjcountdeprecated;
321+
static long int eapolnotwrittenjcountdeprecated;
320322
static long int eapolwrittenhcpxcountdeprecated;
321323
static long int eapolncwrittenhcpxcountdeprecated;
324+
static long int eapolnotwrittenhcpxcountdeprecated;
322325
static long int eapolwrittenhcpcountdeprecated;
326+
static long int eapolnotwrittenhcpcountdeprecated;
323327
static long int eapolm12e2count;
324328
static long int eapolm14e4count;
325329
static long int eapolm32e2count;
@@ -647,13 +651,17 @@ eapolm4zeroedcount = 0;
647651
eapolm4kdv0count = 0;
648652
eapolm4errorcount = 0;
649653
eapolwrittencount = 0;
654+
eapolnotwrittencount = 0;
650655
eapolncwrittencount = 0;
651656
eapolncwrittencount = 0;
652657
eapolftpskncwrittencount = 0;
653658
eapolaplesscount = 0;
654659
eapolwrittenjcountdeprecated = 0;
660+
eapolnotwrittenjcountdeprecated = 0;
655661
eapolwrittenhcpxcountdeprecated = 0;
662+
eapolnotwrittenhcpxcountdeprecated = 0;
656663
eapolwrittenhcpcountdeprecated = 0;
664+
eapolnotwrittenhcpcountdeprecated = 0;
657665
eapolm12e2count = 0;
658666
eapolm14e4count = 0;
659667
eapolm32e2count = 0;
@@ -858,14 +866,14 @@ if(eapolnccount == 0)
858866
if(eapolm1count > 0) fprintf(stdout, "EAPOL M1 messages (total)................: %ld\n", eapolm1count);
859867
if(eapolm1kdv0count > 0) fprintf(stdout, "EAPOL M1 messages (KDV:0 AKM defined)....: %ld (not supported by hashcat/JtR)\n", eapolm1kdv0count);
860868
if(eapolm2count > 0) fprintf(stdout, "EAPOL M2 messages (total)................: %ld\n", eapolm2count);
861-
if(eapolm2oversizedcount > 0) fprintf(stdout, "EAPOL M2 messages (oversized)............: %ld (not supported by hashcat/JtR)\n", eapolm2oversizedcount);
869+
if(eapolm2oversizedcount > 0) fprintf(stdout, "EAPOL M2 messages (oversized)............: %ld\n", eapolm2oversizedcount);
862870
if(eapolm2kdv0count > 0) fprintf(stdout, "EAPOL M2 messages (KDV:0 AKM defined)....: %ld (not supported by hashcat/JtR)\n", eapolm2kdv0count);
863-
if(eapolm2ftpskcount > 0) fprintf(stdout, "EAPOL M2 messages (FT using PSK).........: %ld (not supported by hashcat/JtR)\n", eapolm2ftpskcount);
871+
if(eapolm2ftpskcount > 0) fprintf(stdout, "EAPOL M2 messages (FT using PSK).........: %ld (JtR)\n", eapolm2ftpskcount);
864872
if(eapolm3count > 0) fprintf(stdout, "EAPOL M3 messages (total)................: %ld\n", eapolm3count);
865-
if(eapolm3oversizedcount > 0) fprintf(stdout, "EAPOL M3 messages (oversized)............: %ld (not supported by hashcat/JtR)\n", eapolm3oversizedcount);
873+
if(eapolm3oversizedcount > 0) fprintf(stdout, "EAPOL M3 messages (oversized)............: %ld\n", eapolm3oversizedcount);
866874
if(eapolm3kdv0count > 0) fprintf(stdout, "EAPOL M3 messages (KDV:0 AKM defined)....: %ld (not supported by hashcat/JtR)\n", eapolm3kdv0count);
867875
if(eapolm4count > 0) fprintf(stdout, "EAPOL M4 messages (total)................: %ld\n", eapolm4count);
868-
if(eapolm4oversizedcount > 0) fprintf(stdout, "EAPOL M4 messages (oversized)............: %ld (not supported by hashcat/JtR)\n", eapolm4oversizedcount);
876+
if(eapolm4oversizedcount > 0) fprintf(stdout, "EAPOL M4 messages (oversized)............: %ld\n", eapolm4oversizedcount);
869877
if(eapolm4zeroedcount > 0) fprintf(stdout, "EAPOL M4 messages (zeroed NONCE).........: %ld\n", eapolm4zeroedcount);
870878
if(eapolm4kdv0count > 0) fprintf(stdout, "EAPOL M4 messages (KDV:0 AKM defined)....: %ld (not supported by hashcat/JtR)\n", eapolm4kdv0count);
871879
if(eapolmpcount > 0) fprintf(stdout, "EAPOL pairs (total)......................: %ld\n", eapolmpcount);
@@ -890,12 +898,16 @@ else
890898
if(eapolaplesscount > 0) fprintf(stdout, "EAPOL ROGUE pairs........................: %ld\n", eapolaplesscount);
891899
if(eapolwrittencount > 0) fprintf(stdout, "EAPOL pairs written to 22000 hash file...: %ld (RC checked)\n", eapolwrittencount);
892900
if(eapolncwrittencount > 0) fprintf(stdout, "EAPOL pairs written to 22000 hash file...: %ld (RC not checked)\n", eapolncwrittencount);
901+
if(eapolnotwrittencount > 0) fprintf(stdout, "EAPOL pairs ignored (oversized)...........: %ld (RC checked)\n", eapolnotwrittencount);
893902
if(eapolftpskwrittencount > 0) fprintf(stdout, "EAPOL pairs written to 37100 hash file...: %ld (RC checked)\n", eapolftpskwrittencount);
894903
if(eapolftpskncwrittencount > 0) fprintf(stdout, "EAPOL pairs written to 37100 hash file...: %ld (RC not checked)\n", eapolftpskncwrittencount);
895-
if(eapolwrittenhcpxcountdeprecated > 0) fprintf(stdout, "EAPOL pairs written to old format hccapx.: %ld (RC checked)\n", eapolwrittenhcpxcountdeprecated);
896-
if(eapolncwrittenhcpxcountdeprecated > 0) fprintf(stdout, "EAPOL pairs written to old format hccapx.: %ld (RC not checked)\n", eapolncwrittenhcpxcountdeprecated);
897-
if(eapolwrittenhcpcountdeprecated > 0) fprintf(stdout, "EAPOL pairs written to old format hccap..: %ld (RC checked)\n", eapolwrittenhcpcountdeprecated);
898-
if(eapolwrittenjcountdeprecated > 0) fprintf(stdout, "EAPOL pairs written to old format JtR....: %ld (RC checked)\n", eapolwrittenjcountdeprecated);
904+
if(eapolwrittenhcpxcountdeprecated > 0) fprintf(stdout, "EAPOL pairs written (hccapx).............: %ld (RC checked)\n", eapolwrittenhcpxcountdeprecated);
905+
if(eapolncwrittenhcpxcountdeprecated > 0) fprintf(stdout, "EAPOL pairs written (hccapx).............: %ld (RC not checked)\n", eapolncwrittenhcpxcountdeprecated);
906+
if(eapolnotwrittenhcpxcountdeprecated > 0) fprintf(stdout, "EAPOL pairs not written (hccapx).........: %ld\n", eapolnotwrittenhcpxcountdeprecated);
907+
if(eapolwrittenhcpcountdeprecated > 0) fprintf(stdout, "EAPOL pairs written (hccap)..............: %ld (RC checked)\n", eapolwrittenhcpcountdeprecated);
908+
if(eapolnotwrittenhcpcountdeprecated > 0) fprintf(stdout, "EAPOL pairs not written (hccap)..........: %ld)\n", eapolnotwrittenhcpcountdeprecated);
909+
if(eapolwrittenjcountdeprecated > 0) fprintf(stdout, "EAPOL pairs written (JtR).................: %ld (RC checked)\n", eapolwrittenjcountdeprecated);
910+
if(eapolnotwrittenjcountdeprecated > 0) fprintf(stdout, "EAPOL pairs not wirtten (JtR)...............: %ld (RC checked)\n", eapolnotwrittenjcountdeprecated);
899911
if(eapolm12e2count > 0) fprintf(stdout, "EAPOL M12E2 (challenge - ANONCE from M1).: %ld\n", eapolm12e2count);
900912
if(eapolm32e2count > 0) fprintf(stdout, "EAPOL M32E2 (authorized - ANONCE from M3): %ld\n", eapolm32e2count);
901913
if(eapolm14e4count > 0) fprintf(stdout, "EAPOL M14E4 (authorized).................: %ld\n", eapolm14e4count);
@@ -2297,25 +2309,29 @@ for(zeigerhs = zeigerhsakt; zeigerhs < handshakelistptr; zeigerhs++)
22972309
}
22982310
if(fh_pmkideapol != 0)
22992311
{
2300-
//WPA*TYPE*PMKID-ODER-MIC*MACAP*MACSTA*ESSID_HEX*ANONCE*EAPOL*MP
2301-
fprintf(fh_pmkideapol, "WPA*%02d*%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x*%02x%02x%02x%02x%02x%02x*%02x%02x%02x%02x%02x%02x*",
2302-
HCX_TYPE_EAPOL,
2303-
wpak->keymic[0], wpak->keymic[1], wpak->keymic[2], wpak->keymic[3], wpak->keymic[4], wpak->keymic[5], wpak->keymic[6], wpak->keymic[7],
2304-
wpak->keymic[8], wpak->keymic[9], wpak->keymic[10], wpak->keymic[11], wpak->keymic[12], wpak->keymic[13], wpak->keymic[14], wpak->keymic[15],
2305-
zeigerhs->ap[0], zeigerhs->ap[1], zeigerhs->ap[2], zeigerhs->ap[3], zeigerhs->ap[4], zeigerhs->ap[5],
2306-
zeigerhs->client[0], zeigerhs->client[1], zeigerhs->client[2], zeigerhs->client[3], zeigerhs->client[4], zeigerhs->client[5]);
2307-
for(p = 0; p < zeigermac->essidlen; p++) fprintf(fh_pmkideapol, "%02x", zeigermac->essid[p]);
2308-
fprintf(fh_pmkideapol, "*");
2309-
fprintf(fh_pmkideapol, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x*",
2310-
zeigerhs->anonce[0], zeigerhs->anonce[1], zeigerhs->anonce[2], zeigerhs->anonce[3], zeigerhs->anonce[4], zeigerhs->anonce[5], zeigerhs->anonce[6], zeigerhs->anonce[7],
2311-
zeigerhs->anonce[8], zeigerhs->anonce[9], zeigerhs->anonce[10], zeigerhs->anonce[11], zeigerhs->anonce[12], zeigerhs->anonce[13], zeigerhs->anonce[14], zeigerhs->anonce[15],
2312-
zeigerhs->anonce[16], zeigerhs->anonce[17], zeigerhs->anonce[18], zeigerhs->anonce[19], zeigerhs->anonce[20], zeigerhs->anonce[21], zeigerhs->anonce[22], zeigerhs->anonce[23],
2313-
zeigerhs->anonce[24], zeigerhs->anonce[25], zeigerhs->anonce[26], zeigerhs->anonce[27], zeigerhs->anonce[28], zeigerhs->anonce[29], zeigerhs->anonce[30], zeigerhs->anonce[31]);
2314-
for(p = 0; p < zeigerhs->eapauthlen; p++) fprintf(fh_pmkideapol, "%02x", eapoltemp[p]);
2315-
if(addtimestampflag == false) fprintf(fh_pmkideapol, "*%02x\n", zeigerhs->status);
2316-
else fprintf(fh_pmkideapol, "*%02x\t%s\t%" PRIu64 "\n", zeigerhs->status, timestringhs, zeigerhs->timestampgap);
2317-
if(zeigerhs->rcgap == 0) eapolwrittencount++;
2318-
else eapolncwrittencount++;
2312+
if(zeigerhs->eapauthlen <= EAPOL_AUTHLEN_OLD_MAX)
2313+
{
2314+
//WPA*TYPE*PMKID-ODER-MIC*MACAP*MACSTA*ESSID_HEX*ANONCE*EAPOL*MP
2315+
fprintf(fh_pmkideapol, "WPA*%02d*%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x*%02x%02x%02x%02x%02x%02x*%02x%02x%02x%02x%02x%02x*",
2316+
HCX_TYPE_EAPOL,
2317+
wpak->keymic[0], wpak->keymic[1], wpak->keymic[2], wpak->keymic[3], wpak->keymic[4], wpak->keymic[5], wpak->keymic[6], wpak->keymic[7],
2318+
wpak->keymic[8], wpak->keymic[9], wpak->keymic[10], wpak->keymic[11], wpak->keymic[12], wpak->keymic[13], wpak->keymic[14], wpak->keymic[15],
2319+
zeigerhs->ap[0], zeigerhs->ap[1], zeigerhs->ap[2], zeigerhs->ap[3], zeigerhs->ap[4], zeigerhs->ap[5],
2320+
zeigerhs->client[0], zeigerhs->client[1], zeigerhs->client[2], zeigerhs->client[3], zeigerhs->client[4], zeigerhs->client[5]);
2321+
for(p = 0; p < zeigermac->essidlen; p++) fprintf(fh_pmkideapol, "%02x", zeigermac->essid[p]);
2322+
fprintf(fh_pmkideapol, "*");
2323+
fprintf(fh_pmkideapol, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x*",
2324+
zeigerhs->anonce[0], zeigerhs->anonce[1], zeigerhs->anonce[2], zeigerhs->anonce[3], zeigerhs->anonce[4], zeigerhs->anonce[5], zeigerhs->anonce[6], zeigerhs->anonce[7],
2325+
zeigerhs->anonce[8], zeigerhs->anonce[9], zeigerhs->anonce[10], zeigerhs->anonce[11], zeigerhs->anonce[12], zeigerhs->anonce[13], zeigerhs->anonce[14], zeigerhs->anonce[15],
2326+
zeigerhs->anonce[16], zeigerhs->anonce[17], zeigerhs->anonce[18], zeigerhs->anonce[19], zeigerhs->anonce[20], zeigerhs->anonce[21], zeigerhs->anonce[22], zeigerhs->anonce[23],
2327+
zeigerhs->anonce[24], zeigerhs->anonce[25], zeigerhs->anonce[26], zeigerhs->anonce[27], zeigerhs->anonce[28], zeigerhs->anonce[29], zeigerhs->anonce[30], zeigerhs->anonce[31]);
2328+
for(p = 0; p < zeigerhs->eapauthlen; p++) fprintf(fh_pmkideapol, "%02x", eapoltemp[p]);
2329+
if(addtimestampflag == false) fprintf(fh_pmkideapol, "*%02x\n", zeigerhs->status);
2330+
else fprintf(fh_pmkideapol, "*%02x\t%s\t%" PRIu64 "\n", zeigerhs->status, timestringhs, zeigerhs->timestampgap);
2331+
if(zeigerhs->rcgap == 0) eapolwrittencount++;
2332+
else eapolncwrittencount++;
2333+
}
2334+
else eapolnotwrittencount++;
23192335
}
23202336
if((fh_pmkideapolftpsk != 0) && (zeigerhs->mdidlen != 0) && (zeigerhs->r0khidlen != 0) && (zeigerhs->r1khidlen != 0))
23212337
{
@@ -2344,77 +2360,89 @@ for(zeigerhs = zeigerhsakt; zeigerhs < handshakelistptr; zeigerhs++)
23442360
else eapolftpskncwrittencount++;
23452361
}
23462362

2347-
if((fh_pmkideapoljtrdeprecated != 0) && (zeigerhs->rcgap == 0) && (zeigerhs->eapauthlen <= EAPOL_AUTHLEN_OLD_MAX))
2363+
if((fh_pmkideapoljtrdeprecated != 0) && (zeigerhs->rcgap == 0))
23482364
{
2349-
memset (&hccap, 0, sizeof(hccap_t));
2350-
memcpy(&hccap.ap, zeigerhs->ap, 6);
2351-
memcpy(&hccap.client, zeigerhs->client, 6);
2352-
memcpy(&hccap.anonce, zeigerhs->anonce, 32);
2353-
memcpy(&hccap.snonce, wpak->nonce, 32);
2354-
memcpy(&hccap.keymic, &wpak->keymic, 16);
2355-
hccap.keyver = keyvertemp;
2356-
hccap.eapol_size = zeigerhs->eapauthlen;
2357-
memcpy(&hccap.eapol, &eapoltemp, zeigerhs->eapauthlen);
2358-
#ifdef BIG_ENDIAN_HOST
2359-
hccap.eapol_size = byte_swap_16(hccap.eapol_size);
2360-
#endif
2361-
fprintf(fh_pmkideapoljtrdeprecated, "%.*s:$WPAPSK$%.*s#", zeigermac->essidlen, zeigermac->essid, zeigermac->essidlen, zeigermac->essid);
2362-
hcpos = (unsigned char*)&hccap;
2363-
for (i = 36; i + 3 < (int)HCCAP_SIZE; i += 3) hccap2base(&hcpos[i], 1);
2364-
hccap2base(&hcpos[i], 0);
2365-
fprintf(fh_pmkideapoljtrdeprecated, ":%02x-%02x-%02x-%02x-%02x-%02x:%02x-%02x-%02x-%02x-%02x-%02x:%02x%02x%02x%02x%02x%02x",
2366-
zeigerhs->client[0], zeigerhs->client[1], zeigerhs->client[2], zeigerhs->client[3], zeigerhs->client[4], zeigerhs->client[5],
2367-
zeigerhs->ap[0], zeigerhs->ap[1], zeigerhs->ap[2], zeigerhs->ap[3], zeigerhs->ap[4], zeigerhs->ap[5],
2368-
zeigerhs->ap[0], zeigerhs->ap[1], zeigerhs->ap[2], zeigerhs->ap[3], zeigerhs->ap[4], zeigerhs->ap[5]);
2369-
if(keyvertemp == 1) fprintf(fh_pmkideapoljtrdeprecated, "::WPA");
2370-
else fprintf(fh_pmkideapoljtrdeprecated, "::WPA2");
2371-
if((zeigerhs->status &0x7) == 0) fprintf(fh_pmkideapoljtrdeprecated, ":not verified");
2372-
else fprintf(fh_pmkideapoljtrdeprecated, ":verified");
2373-
fprintf(fh_pmkideapoljtrdeprecated, ":%s\n", basename(jtrbasenamedeprecated));
2374-
eapolwrittenjcountdeprecated++;
2365+
if (zeigerhs->eapauthlen <= EAPOL_AUTHLEN_OLD_MAX)
2366+
{
2367+
memset (&hccap, 0, sizeof(hccap_t));
2368+
memcpy(&hccap.ap, zeigerhs->ap, 6);
2369+
memcpy(&hccap.client, zeigerhs->client, 6);
2370+
memcpy(&hccap.anonce, zeigerhs->anonce, 32);
2371+
memcpy(&hccap.snonce, wpak->nonce, 32);
2372+
memcpy(&hccap.keymic, &wpak->keymic, 16);
2373+
hccap.keyver = keyvertemp;
2374+
hccap.eapol_size = zeigerhs->eapauthlen;
2375+
memcpy(&hccap.eapol, &eapoltemp, zeigerhs->eapauthlen);
2376+
#ifdef BIG_ENDIAN_HOST
2377+
hccap.eapol_size = byte_swap_16(hccap.eapol_size);
2378+
#endif
2379+
fprintf(fh_pmkideapoljtrdeprecated, "%.*s:$WPAPSK$%.*s#", zeigermac->essidlen, zeigermac->essid, zeigermac->essidlen, zeigermac->essid);
2380+
hcpos = (unsigned char*)&hccap;
2381+
for (i = 36; i + 3 < (int)HCCAP_SIZE; i += 3) hccap2base(&hcpos[i], 1);
2382+
hccap2base(&hcpos[i], 0);
2383+
fprintf(fh_pmkideapoljtrdeprecated, ":%02x-%02x-%02x-%02x-%02x-%02x:%02x-%02x-%02x-%02x-%02x-%02x:%02x%02x%02x%02x%02x%02x",
2384+
zeigerhs->client[0], zeigerhs->client[1], zeigerhs->client[2], zeigerhs->client[3], zeigerhs->client[4], zeigerhs->client[5],
2385+
zeigerhs->ap[0], zeigerhs->ap[1], zeigerhs->ap[2], zeigerhs->ap[3], zeigerhs->ap[4], zeigerhs->ap[5],
2386+
zeigerhs->ap[0], zeigerhs->ap[1], zeigerhs->ap[2], zeigerhs->ap[3], zeigerhs->ap[4], zeigerhs->ap[5]);
2387+
if(keyvertemp == 1) fprintf(fh_pmkideapoljtrdeprecated, "::WPA");
2388+
else fprintf(fh_pmkideapoljtrdeprecated, "::WPA2");
2389+
if((zeigerhs->status &0x7) == 0) fprintf(fh_pmkideapoljtrdeprecated, ":not verified");
2390+
else fprintf(fh_pmkideapoljtrdeprecated, ":verified");
2391+
fprintf(fh_pmkideapoljtrdeprecated, ":%s\n", basename(jtrbasenamedeprecated));
2392+
eapolwrittenjcountdeprecated++;
2393+
}
2394+
else eapolnotwrittenjcountdeprecated++;
23752395
}
23762396
if((fh_hccapxdeprecated != 0) && (zeigerhs->eapauthlen <= EAPOL_AUTHLEN_OLD_MAX))
23772397
{
2378-
memset (&hccapx, 0, sizeof(hccapx_t));
2379-
hccapx.signature = HCCAPX_SIGNATURE;
2380-
hccapx.version = HCCAPX_VERSION;
2381-
hccapx.message_pair = zeigerhs->status;
2382-
hccapx.essid_len = zeigermac->essidlen;
2383-
memcpy(&hccapx.essid, zeigermac->essid, zeigermac->essidlen);
2384-
memcpy(&hccapx.ap, zeigerhs->ap, 6);
2385-
memcpy(&hccapx.client, zeigerhs->client, 6);
2386-
memcpy(&hccapx.anonce, zeigerhs->anonce, 32);
2387-
memcpy(&hccapx.snonce, wpak->nonce, 32);
2388-
hccapx.eapol_len = zeigerhs->eapauthlen;
2389-
memcpy(&hccapx.eapol, &eapoltemp, zeigerhs->eapauthlen);
2390-
hccapx.keyver = keyvertemp;
2391-
memcpy(&hccapx.keymic, wpak->keymic, 16);
2392-
#ifdef BIG_ENDIAN_HOST
2393-
hccapx.signature = byte_swap_32(hccapx.signature);
2394-
hccapx.version = byte_swap_32(hccapx.version);
2395-
hccapx.eapol_len = byte_swap_16(hccapx.eapol_len);
2396-
#endif
2397-
fwrite (&hccapx, sizeof(hccapx_t), 1, fh_hccapxdeprecated);
2398-
if(zeigerhs->rcgap == 0) eapolwrittenhcpxcountdeprecated++;
2399-
else eapolncwrittenhcpxcountdeprecated++;
2398+
if(zeigerhs->eapauthlen <= EAPOL_AUTHLEN_OLD_MAX)
2399+
{
2400+
memset (&hccapx, 0, sizeof(hccapx_t));
2401+
hccapx.signature = HCCAPX_SIGNATURE;
2402+
hccapx.version = HCCAPX_VERSION;
2403+
hccapx.message_pair = zeigerhs->status;
2404+
hccapx.essid_len = zeigermac->essidlen;
2405+
memcpy(&hccapx.essid, zeigermac->essid, zeigermac->essidlen);
2406+
memcpy(&hccapx.ap, zeigerhs->ap, 6);
2407+
memcpy(&hccapx.client, zeigerhs->client, 6);
2408+
memcpy(&hccapx.anonce, zeigerhs->anonce, 32);
2409+
memcpy(&hccapx.snonce, wpak->nonce, 32);
2410+
hccapx.eapol_len = zeigerhs->eapauthlen;
2411+
memcpy(&hccapx.eapol, &eapoltemp, zeigerhs->eapauthlen);
2412+
hccapx.keyver = keyvertemp;
2413+
memcpy(&hccapx.keymic, wpak->keymic, 16);
2414+
#ifdef BIG_ENDIAN_HOST
2415+
hccapx.signature = byte_swap_32(hccapx.signature);
2416+
hccapx.version = byte_swap_32(hccapx.version);
2417+
hccapx.eapol_len = byte_swap_16(hccapx.eapol_len);
2418+
#endif
2419+
fwrite (&hccapx, sizeof(hccapx_t), 1, fh_hccapxdeprecated);
2420+
if(zeigerhs->rcgap == 0) eapolwrittenhcpxcountdeprecated++;
2421+
else eapolncwrittenhcpxcountdeprecated++;
2422+
}
2423+
else eapolnotwrittenhcpxcountdeprecated++;
24002424
}
24012425
if((fh_hccapdeprecated != 0) && (zeigerhs->rcgap == 0) && (zeigerhs->eapauthlen <= EAPOL_AUTHLEN_OLD_MAX))
24022426
{
2403-
memset(&hccap, 0, sizeof(hccap_t));
2404-
memcpy(&hccap.essid, zeigermac->essid, zeigermac->essidlen);
2405-
memcpy(&hccap.ap, zeigerhs->ap, 6);
2406-
memcpy(&hccap.client, zeigerhs->client, 6);
2407-
memcpy(&hccap.anonce, zeigerhs->anonce, 32);
2408-
memcpy(&hccap.snonce, wpak->nonce, 32);
2409-
memcpy(&hccap.keymic, wpak->keymic, 16);
2410-
hccap.keyver = keyvertemp;
2411-
hccap.eapol_size = zeigerhs->eapauthlen;
2412-
memcpy(&hccap.eapol, &eapoltemp, zeigerhs->eapauthlen);
2413-
#ifdef BIG_ENDIAN_HOST
2414-
hccap.eapol_size = byte_swap_16(hccap.eapol_size);
2415-
#endif
2416-
fwrite(&hccap, HCCAP_SIZE, 1, fh_hccapdeprecated);
2417-
eapolwrittenhcpcountdeprecated++;
2427+
if(zeigerhs->eapauthlen <= EAPOL_AUTHLEN_OLD_MAX)
2428+
{
2429+
memset(&hccap, 0, sizeof(hccap_t));
2430+
memcpy(&hccap.essid, zeigermac->essid, zeigermac->essidlen);
2431+
memcpy(&hccap.ap, zeigerhs->ap, 6);
2432+
memcpy(&hccap.client, zeigerhs->client, 6);
2433+
memcpy(&hccap.anonce, zeigerhs->anonce, 32);
2434+
memcpy(&hccap.snonce, wpak->nonce, 32);
2435+
memcpy(&hccap.keymic, wpak->keymic, 16);
2436+
hccap.keyver = keyvertemp;
2437+
hccap.eapol_size = zeigerhs->eapauthlen;
2438+
memcpy(&hccap.eapol, &eapoltemp, zeigerhs->eapauthlen);
2439+
#ifdef BIG_ENDIAN_HOST
2440+
hccap.eapol_size = byte_swap_16(hccap.eapol_size);
2441+
#endif
2442+
fwrite(&hccap, HCCAP_SIZE, 1, fh_hccapdeprecated);
2443+
eapolwrittenhcpcountdeprecated++;
2444+
}
2445+
else eapolnotwrittenhcpcountdeprecated++;
24182446
}
24192447
}
24202448
if(memcmp(zeigerhs->ap, zeigermac->addr, 6) > 0)

include/hcxpcapngtool.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
#define PMKIDLIST_MAX 100000
5252
#define MESSAGELIST_MAX 64
5353
#define EAPOL_AUTHLEN_OLD_MAX 255
54-
#define EAPOL_AUTHLEN_MAX 255
54+
#define EAPOL_AUTHLEN_MAX 1024
5555

5656
#define EAPMD5HASHLIST_MAX 1000
5757
#define EAPMD5MSGLIST_MAX 32

0 commit comments

Comments
 (0)