時脈搏:wifit3 packet_stats 包統(tǒng)計與 AP 識別計數(shù)邏輯完整指南)
如何看懂無線流量實(shí)時脈搏wifit3 packet_stats 包統(tǒng)計與 AP 識別計數(shù)邏輯完整指南【免費(fèi)下載鏈接】wifit3Wifite but USB-only cross-platform.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/wi/wifit3wifit3是一款跨平臺、僅依賴 USB 網(wǎng)卡的 WiFi 嗅探與審計工具。它的 wlan 包中的packet_stats模塊負(fù)責(zé)按 AP接入點(diǎn)對 802.11 幀做分類累計計數(shù)再驅(qū)動界面上的實(shí)時包速率儀表盤和 AP 識別面板。本文帶你讀懂這套計數(shù)邏輯6 種幀類別如何分類、累計值如何變成閃爍的小圖表、以及 AP 身份是如何被識別出來的。一、packet_stats 是什么一張按 AP 記賬的流量記分牌整個模塊只有一個文件 packet_stats.py核心是PacketStats類對每個BSSIDAP 的 MAC 地址維護(hù)一組單調(diào)遞增的累計計數(shù)器覆蓋 6 種儀表類別見 packet_stats.py#L8-L22類別含義來源beacon信標(biāo)幀AP 的心跳接收data普通數(shù)據(jù)幀含 QoS 數(shù)據(jù)接收wep_ivWEP 數(shù)據(jù)幀破解 WEP 的原料接收eapol四次握手的 EAPOL 幀接收deauth去認(rèn)證幀環(huán)境中的 我們注入的接收 發(fā)送inject我們注入的其他幀發(fā)送 設(shè)計取舍探針、關(guān)聯(lián)、管理等幀故意不計入只為保持面板恰好 6 行一目了然packet_stats.py#L24-L34。接收幀到類別的映射表_RX_CLASS很精巧qos_data并入data現(xiàn)代數(shù)據(jù)幀幾乎都是 QoSwep_data單獨(dú)計入wep_iv——這樣 WEP 目標(biāo)能看到可用 IV 值的流入速率。二、三個接口record_rx、record_tx、snapshot計數(shù)邏輯濃縮為三個方法packet_stats.py#L47-L64record_rx(bssid, frame_type)— 收到一個幀時累加。未登記的幀類型直接忽略no-op不會報錯。record_tx(bssid, is_deauth)— 統(tǒng)計我們發(fā)送的幀去認(rèn)證幀打到deauth行和環(huán)境里聽到的去認(rèn)證幀匯合在一條線上其余注入幀打到inject行。snapshot(bssid)— 取某 AP 當(dāng)前累計值。兩個安全細(xì)節(jié)返回副本調(diào)用方拿到的是拷貝可以放心做差值改不壞內(nèi)部狀態(tài)無副作用查詢一個從未見過的 BSSID 只返回全零字典不會憑空在登記表里創(chuàng)建條目。單元測試 test_packet_stats.py 逐條驗(yàn)證了這些行為qos_data并入 data、未跟蹤類型不計數(shù)、快照不注冊未知 BSSID、快照可安全篡改。三、接收計數(shù)路徑從空中電波到記分牌計數(shù)并不發(fā)生在網(wǎng)卡層而是在 WlanSink——整個會話唯一的802.11 全景圖。每張 USB 網(wǎng)卡收到的幀先由 WlanArray跨卡去重再喂給 Sink 的update()幀被解析 → 校驗(yàn) BSSID 有效 → packet_stats.record_rx(bssid, 幀類型) ↓ 再分發(fā)給 beacon / WEP / 客戶端 / EAPOL 各處理器關(guān)鍵守衛(wèi)在 sink.py#L124-L127BSSID 為空、Unknown或廣播地址ff:ff:ff:ff:ff:ff的幀在計數(shù)前就被丟棄。這條守衛(wèi)保證了記分牌上只出現(xiàn)有身份的 AP是 AP 識別正確性的第一道閘。四、AP 識別BSSID 就是身份packet_stats 以 BSSID 為鍵而 BSSID 正是 wifit3 識別 AP 的主鍵。當(dāng)首個信標(biāo)到達(dá)時Sink 在 sink.py#L181-L212 創(chuàng)建一個AccessPoint對象登記其 SSID、信道、加密方式、WPS 特性等后續(xù)信標(biāo)則刷新信號強(qiáng)度與加密證據(jù)。更進(jìn)一步Sink 會通過同信道 BSSID 漢明距離給相似 BSSID 建立兄弟 AP同型號多網(wǎng)口路由器關(guān)聯(lián)見 sink.py#L409-L434。計數(shù)與識別共用同一個鍵空間所以儀表盤的每一行天然對應(yīng)界面上某一個 AP——切換目標(biāo)時只需換一個 BSSID 參數(shù)。五、儀表盤把累計值差分成火花線累計計數(shù)本身是只升不降的界面靠差值采樣把它變成動態(tài)圖形。PacketDashboard 每 0.4 秒執(zhí)行一次_tick調(diào)array.packet_stats.snapshot(bssid)拿當(dāng)前累計packet_dashboard.py#L90-L96與上一次快照相減得到時間窗口內(nèi)每類的增量推入 256 長的環(huán)形緩沖渲染成從右往左滾動的火花線行尾附上N/s速率。每行顯示什么由目標(biāo)加密方式?jīng)Q定focus_model.py#L74-L83WEP 目標(biāo)顯示wep iv行WPA/WPA2/WPA3 目標(biāo)顯示eapol行。同一份快照還驅(qū)動了端點(diǎn) LED閃爍效果screen.py#L626-L637 對比前后快照beacon/data/eapol/wep_iv有增量則路由器燈閃inject/deauth有增量則網(wǎng)卡燈閃——用一次差值同時喂飽儀表盤和兩個指示燈。六、發(fā)送計數(shù)路徑注入幀也要記賬我們主動發(fā)出的幀同樣入賬。Sink 的record_tx()sink.py#L502-L515先把自己發(fā)出的字節(jié)重新解析一遍 802.11 幀頭讀出 BSSID 和幀類型是去認(rèn)證幀就走deauth計數(shù)否則走inject計數(shù)。整個過程是 best-effort解析失敗就靜默跳過絕不影響攻擊主流程。測試 test_sink.py 專門覆蓋了喂垃圾字節(jié)也不拋異常這一條。七、值得記住的設(shè)計細(xì)節(jié)單調(diào)累計 讀取差值計數(shù)器只增不減速率由 UI 側(cè)求差得到邏輯簡單且天然防競態(tài)快照即值對象返回副本、無副作用是并發(fā)環(huán)境網(wǎng)卡線程寫、UI 線程讀里最省心的讀取方式分類收斂RX 只記 6 類、TX 只分 2 類信息密度剛好夠人眼盯盤與 AP 注冊表解耦snapshot不建條目、record_rx對陌生幀寬容統(tǒng)計永遠(yuǎn)不會污染AP 識別數(shù)據(jù)。八、相關(guān)文件導(dǎo)航文件職責(zé)packet_stats.py計數(shù)器本體6 類累計、快照sink.pyRX 計數(shù)入口 AP 注冊/識別 TX 分類array.py跨卡去重并暴露packet_stats屬性packet_dashboard.py快照差分 → 火花線儀表盤focus_model.py按加密族決定顯示哪些行test_packet_stats.py / test_sink.py計數(shù)與接線行為的回歸測試?yán)斫饬诉@個記賬器你就掌握了 wifit3 實(shí)時界面的數(shù)據(jù)源頭所有閃爍的條、跳動的速率和閃動的燈都是這張記分牌的不同投影。【免費(fèi)下載鏈接】wifit3Wifite but USB-only cross-platform.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/wi/wifit3創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考