### Breakthroughs & Rétro-ingénierie
- Analyse post-mortem du crash (Kernel-2026-11-01-104036.panic) survenu dès la soumission du mot de passe Wi-Fi.
- Découverte du flux interne de setASSOCIATE (0xffffff80022876f8) :
airportd appelle setASSOCIATE -> IO80211Controller::joinStarted (0xffffff8002294922) ->
fRNGAgent->sendDrbgEntropy("assoc", 5) (0xffffff80022dde94) -> CCLogStream::logEmergency ->
CCLogStream::logv (0xffffff80032fd7d4).
- Identification de la cause racine exacte du crash (type 14 page fault à CR2: 0x0) à 0xffffff80032fd982 (+0x1b2) :
logv charge r13 = [fLogger + 0x90] (gP1Mem), puis déréférence [r13] (gP1Mem[0]) comme pointeur
vers un CCPipe pour appeler CCPipe::allocate (+0x9f0).
Dans FakeLogStream::init(), gP1Mem était bzero'd, laissant gP1Mem[0] à NULL -> déréférencement [0x0]
provoquant le kernel trap fatal avant même que sendIOUCToWcl ne soit exécuté.
### Modifications apportées
- QualcommWifi/QualcommWifi.cpp :
* Instanciation d'un pipe factice gDummyPipe avec vtable de 512 entrées (gDummyPipeVtable)
pointant vers dummyReporterFunc.
* Affectation de *(void **)(gP1Mem + 0x00) = gDummyPipe afin de garantir que tout appel virtuel
sur CCPipe (slots 0x9e8, 0x9f0, 0xa10) réussisse et retourne 0.
* Configuration des seuils log dans gP2Mem (p1 + 0x58) à -1 (*(int32_t *)gP2Mem = -1) pour
désactiver le stream et console logging, court-circuitant ainsi les allocations de logv.
* Extension de gDummyReporterVtable à 512 entrées.
- docs/ISSUES_AND_POSTMORTEMS.md :
* Ajout du post-mortem détaillé INC-34 décrivant les traces de désassemblage, la pile d'appels,
l'analyse de la cause racine et la stratégie de neutralisation de CoreCapture.
### Validation
- Compilation Release 100% propre (clang 17, ./build_wifi.sh).
- Validation binaire kmutil libraries sans symbole manquant contre BootKernelExtensions.kc.
- Déploiement du binaire kext dans /Users/erwan/Documents/EFI/OC/Kexts/QualcommWifi.kext.