
Patch de modo monitor e injeção de pacotes (Raw TX) para Realtek RTL8852AE / rtw89 no Linux / Kali Linux
English | Русская документация | Architecture Reference
Extensão do driver mac80211 do Linux no lado do host e conjunto de patches de correção de bugs para o driver wireless rtw89 do mainline (Realtek RTL8852AE PCIe [10ec:8852], com compatibilidade arquitetural para RTL8852BE e RTL8852CE).
Habilita captura completa de pacotes Radiotap IEEE 802.11 em NL80211_IFTYPE_MONITOR para Wireshark / tcpdump, compatibilidade total com airmon-ng / airodump-ng, e transmissão de frames brutos / injeção de pacotes em conformidade com os padrões (IEEE80211_TX_CTL_INJECTED / aireplay-ng).
Funciona 100% no lado do driver do kernel do host usando imagens de firmware rtw89 não modificadas e criptograficamente assinadas do pacote oficial linux-firmware da distribuição. Nenhum reverse-patching de firmware ou modificação binária é necessário.
[!TIP] 100% Funcional no Kali Linux: As capturas de tela abaixo mostram a execução real em um sistema ativo rodando Kali Linux (Kernel 7.1.5+kali-amd64) com um Adaptador Wireless PCIe Realtek RTL8852AE (
[10ec:8852]).
Captura de pacotes 802.11 ao vivo mostrando recepção promíscua completa de frames de Gerenciamento (Beacons, Probe Requests/Responses), Controle (ACK, Block Ack, RTS, CTS) e Dados entre BSSIDs, com metadados completos de RSSI por antena (-18 dBm, -24 dBm) e frequência de canal (2462 MHz / CH 11):

aireplay-ng -9)Teste de injeção de pacotes de diagnóstico IEEE 802.11 bem-sucedido mostrando 100% de entrega de frames (30/30 probe requests confirmados com tempos de ping abaixo de 2ms) contra APs ativos, confirmado por verify_monitor_diag.py e aireplay-ng:

Milhares de usuários de Linux e Kali Linux relatam que laptops Wi-Fi 6 modernos com adaptadores Realtek RTL8852AE falham ao executar airmon-ng ou ao tentar injeção de pacotes. Problemas comuns no upstream em lwfinger/rtw89 e nos kernels mainline do Linux:
Através de engenharia reversa detalhada de registradores de hardware e análise do protocolo de comunicação do firmware RISC-V do rtw89, este projeto resolve as quatro causas raiz inteiramente no driver do kernel do host:
reg.h / mac.c)
ADDR_CAM do hardware. O offload de varredura do hardware também pode deixar o filtro de pacotes RX da Banda 0 pausado (R_AX_PKT_CTRL_B0_PAUSE).rtw89_mon_program_mac_rx_tx_regs() reconfigura R_AX_RX_FLTR_OPT (0xCE20), R_AX_CTRL_FLTR (0xCE24), R_AX_MGNT_FLTR (0xCE28) e R_AX_DATA_FLTR (0xCE2C) com máscara promíscua 0x55555555, respeita FIF_FCSFAIL e reafirma automaticamente o estado do filtro durante trocas de canal (rtw89_set_channel()).vif NULL no TX de Monitor (mac80211.c & core.c)
rtw89_ops_tx() e rtw89_core_tx_write(), a macro vif_to_rtwvif(vif) era avaliada incondicionalmente nas declarações de variáveis locais antes de verificar se info->control.vif é NULL (comportamento padrão para injeção Radiotap do mac80211).rtw89_mon_resolve_tx_vif() resolve o VIF de monitor ativo antes da desreferência, evitando travamentos do kernel.TXWD_INFO Ausente em rtw89_core_tx_update_injection() (core.c)
mac80211 passa s8 rates[0].idx = -1 com sinal. O upstream convertia isso para u8 (255), gravando um índice de taxa de hardware inválido, e omitia desc_info->en_wd_info em quadros que não são de gerenciamento.rtw89_mon_fixup_tx_desc() seleciona uma taxa de hardware válida (padrão RTW89_HW_RATE_OFDM6 / 6,0 Mbps), garante en_wd_info / use_rate / dis_data_fb e limita as retentativas de hardware (tx_cnt_lmt = 1) quando IEEE80211_TX_CTL_NO_ACK está definido.mac_id de Monitor Não Inicializado e Bloqueio de Sleep (fw.h)
IEEE80211_HW_WANT_MONITOR_VIF) alocam um mac_id e uma porta de hardware, mas nunca configuram as tabelas CMAC/DMAC nem registram o link no escalonador do firmware. O firmware mantém a fila de TX pausada.rtw89_mon_add_vif_post() programa h2c_default_cmac_tbl / h2c_default_dmac_tbl, registra a função via rtw89_fw_h2c_join_info() usando RTW89_SELF_ROLE_AP com RTW89_NET_TYPE_NO_LINK (contornando as verificações de timeout de beacon da função de cliente enquanto mantém o TX de beacon desativado), despausa o MACID via rtw89_fw_h2c_macid_pause() e limpa R_AX_MACID_SLEEP_0 (0xC2C0).O patcher com reconhecimento de AST/chaves (scripts/patch_rtw89.py) inspeciona core.h e mac80211.c em tempo de build e se adapta automaticamente a ambas as gerações do driver upstream:
| Geração da API | Versões de Kernel | Arquitetura de Locking e VIF | Exemplos de Distribuição |
|---|---|---|---|
| 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 |