
Linux / Kali Linux के लिए Realtek RTL8852AE / rtw89 मॉनिटर मोड और पैकेट इंजेक्शन (Raw TX) पैच
English | Русская документация | Architecture Reference
मुख्यलाइन rtw89 वायरलेस ड्राइवर (Realtek RTL8852AE PCIe [10ec:8852], साथ ही RTL8852BE और RTL8852CE के लिए आर्किटेक्चरल संगतता) के लिए होस्ट-साइड Linux mac80211 ड्राइवर एक्सटेंशन और बगफिक्स पैचसेट।
Wireshark / tcpdump के लिए पूर्ण IEEE 802.11 NL80211_IFTYPE_MONITOR Radiotap पैकेट कैप्चर, पूर्ण airmon-ng / airodump-ng संगतता, और मानक-अनुरूप रॉ फ्रेम ट्रांसमिशन / पैकेट इंजेक्शन (IEEE80211_TX_CTL_INJECTED / aireplay-ng) सक्षम करता है।
आधिकारिक वितरण linux-firmware पैकेज से असंशोधित, क्रिप्टोग्राफ़िक रूप से हस्ताक्षरित rtw89 फर्मवेयर इमेज का उपयोग करते हुए 100% होस्ट कर्नेल ड्राइवर साइड पर काम करता है। किसी फर्मवेयर रिवर्स-पैचिंग या बाइनरी संशोधन की आवश्यकता नहीं है।
[!TIP] Kali Linux में 100% कार्यात्मक: नीचे दिए गए स्क्रीनशॉट Realtek RTL8852AE PCIe वायरलेस एडाप्टर (
[10ec:8852]) के साथ Kali Linux (Kernel 7.1.5+kali-amd64) चल रहे लाइव सिस्टम पर वास्तविक निष्पादन दिखाते हैं।
लाइव 802.11 पैकेट कैप्चर जो BSSIDs में Management (Beacons, Probe Requests/Responses), Control (ACK, Block Ack, RTS, CTS), और Data फ्रेम के पूर्ण प्रोमिस्क्यूअस रिसेप्शन को दर्शाता है, साथ ही पूर्ण प्रति-एंटेना RSSI (-18 dBm, -24 dBm) और चैनल फ़्रीक्वेंसी (2462 MHz / CH 11) मेटाडेटा:

aireplay-ng -9)सफल IEEE 802.11 डायग्नोस्टिक पैकेट इंजेक्शन परीक्षण जो सक्रिय APs के विरुद्ध 100% फ्रेम डिलीवरी (30/30 प्रोब रिक्वेस्ट sub-2ms पिंग समय के साथ स्वीकृत) दर्शाता है, जिसकी पुष्टि verify_monitor_diag.py और aireplay-ng द्वारा की गई:

हज़ारों Linux और Kali Linux उपयोगकर्ता रिपोर्ट करते हैं कि Realtek RTL8852AE एडाप्टर वाले आधुनिक Wi-Fi 6 लैपटॉप airmon-ng चलाते समय या पैकेट इंजेक्शन का प्रयास करते समय विफल हो जाते हैं। lwfinger/rtw89 और मुख्यलाइन Linux कर्नेल में सामान्य अपस्ट्रीम समस्याएँ:
विस्तृत हार्डवेयर रजिस्टर रिवर्स इंजीनियरिंग और rtw89 RISC-V फर्मवेयर संचार प्रोटोकॉल के विश्लेषण के माध्यम से, यह प्रोजेक्ट चार मूल कारणों को पूरी तरह से होस्ट कर्नेल ड्राइवर में हल करता है:
reg.h / mac.c)
ADDR_CAM से मेल नहीं खाते। हार्डवेयर स्कैन ऑफ़लोड बैंड 0 RX पैकेट फ़िल्टर को भी रोका हुआ (R_AX_PKT_CTRL_B0_PAUSE) छोड़ सकता है।rtw89_mon_program_mac_rx_tx_regs() प्रोमिस्क्युअस मास्क 0x55555555 के साथ R_AX_RX_FLTR_OPT (0xCE20), R_AX_CTRL_FLTR (0xCE24), R_AX_MGNT_FLTR (0xCE28), और R_AX_DATA_FLTR (0xCE2C) को पुनः कॉन्फ़िगर करता है, FIF_FCSFAIL का पालन करता है, और चैनल स्विच (rtw89_set_channel()) के दौरान फ़िल्टर स्थिति को स्वचालित रूप से पुनः स्थापित करता है।NULL vif कर्नेल पैनिक (mac80211.c और core.c)
rtw89_ops_tx() और rtw89_core_tx_write() में, मैक्रो vif_to_rtwvif(vif) को स्थानीय चर घोषणाओं में बिना शर्त मूल्यांकित किया जाता था, इससे पहले कि यह जाँचा जाए कि info->control.vif NULL है या नहीं (जो mac80211 Radiotap इंजेक्शन के लिए मानक व्यवहार है)।rtw89_mon_resolve_tx_vif() डीरेफ़रेंस से पहले सक्रिय मॉनिटर VIF को हल करता है, जिससे कर्नेल क्रैश रुकते हैं।rtw89_core_tx_update_injection() में अमान्य रेट इंडेक्स और अनुपस्थित TXWD_INFO (core.c)
mac80211 साइन्ड s8 rates[0].idx = -1 पास करता है। अपस्ट्रीम ने इसे u8 (255) में कास्ट किया, जिससे एक अमान्य हार्डवेयर रेट इंडेक्स लिखा गया, और गैर-प्रबंधन फ़्रेम पर desc_info->en_wd_info छोड़ दिया गया।rtw89_mon_fixup_tx_desc() एक वैध हार्डवेयर रेट चुनता है (डिफ़ॉल्ट रूप से RTW89_HW_RATE_OFDM6 / 6.0 Mbps), en_wd_info / use_rate / dis_data_fb को सुनिश्चित करता है, और जब IEEE80211_TX_CTL_NO_ACK सेट हो तो हार्डवेयर पुनःप्रयासों को सीमित करता है (tx_cnt_lmt = 1)।mac_id शेड्यूलर संदर्भ और स्लीप लॉक (fw.h)
IEEE80211_HW_WANT_MONITOR_VIF) एक mac_id और हार्डवेयर पोर्ट आवंटित करते हैं, लेकिन कभी भी CMAC/DMAC तालिकाओं को कॉन्फ़िगर नहीं करते या लिंक को फ़र्मवेयर शेड्यूलर के साथ पंजीकृत नहीं करते। फ़र्मवेयर TX कतार को रोका हुआ रखता है।rtw89_mon_add_vif_post() h2c_default_cmac_tbl / h2c_default_dmac_tbl को प्रोग्राम करता है, RTW89_NET_TYPE_NO_LINK के साथ RTW89_SELF_ROLE_AP का उपयोग करके rtw89_fw_h2c_join_info() के माध्यम से भूमिका को पंजीकृत करता है (बीकन TX अक्षम छोड़ते हुए क्लाइंट-भूमिका बीकन टाइमआउट जाँचों को बायपास करता है), rtw89_fw_h2c_macid_pause() के माध्यम से MACID को अनपॉज़ करता है, और R_AX_MACID_SLEEP_0 (0xC2C0) को साफ़ करता है।AST/ब्रेस-जागरूक पैचर (scripts/patch_rtw89.py) बिल्ड समय पर core.h और mac80211.c का निरीक्षण करता है और स्वचालित रूप से दोनों अपस्ट्रीम ड्राइवर पीढ़ियों के अनुकूल हो जाता है:
| ड्राइवर पीढ़ी | कर्नेल संस्करण | लॉकिंग और VIF आर्किटेक्चर | डिस्ट्रो उदाहरण |
|---|---|---|---|
| API Gen 1 | Linux 6.1 – 6.10 | struct rtw89_vif, rtwdev->mutex | Debian 12 (Bookworm), Ubuntu 22.04 LTS (HWE) |
| API Gen 2 | Linux 6.11 – 7.x+ और lwfinger/rtw89 | MLO struct rtw89_vif_link, pure_monitor_mode_vif, wiphy_lock | Kali Linux 2024+, Ubuntu 24.04+, Arch Linux, Fedora |