hashcat/hashcat-utils

cap2hccapx bad qos manipulation

jamazi opened this issue · 2 comments

Hello.

cap2hccapx does not manipulate qos packets properly if it contains not only 3 address but 4 address.
I corrected this by changing this portion of code (line=804) :

else if ((frame_control & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA)
  {
    // process header: ieee80211

    //int set = 0;

    //if (frame_control & IEEE80211_FCTL_TODS)   set++;
    //if (frame_control & IEEE80211_FCTL_FROMDS) set++;

    //if (set != 1) return;

    // find offset to llc/snap header

    int llc_offset;

    if ((frame_control & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_QOS_DATA)
    {
      llc_offset = sizeof (ieee80211_qos_hdr_t);
      u16 tmp = IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS;
      if ((frame_control & tmp) == tmp) llc_offset += 6;
    }
    else
    {
      llc_offset = sizeof (ieee80211_hdr_3addr_t);
    }

    // process header: the llc/snap header

tested and works properly.
Thanks

Please send in a PR

Done thank you 👍