
Proxy d'API mémoire via mozglue.dll signée
PoC de recherche en détection : proxy des opérations mémoire (mappage mémoire, allocation mémoire locale) via la mozglue.dll signée par Mozilla afin que les callbacks du noyau attribuent le module utilisateur final à une DLL d'un éditeur de confiance (signée Mozilla) plutôt qu'à un module non signé ou non fiable.
Les deux sont des exports MFBT_API de mozglue.dll (installation de Firefox requise) :
| Mode | Exportation | Source Mozilla |
|---|
inject | mozilla::MapRemoteViewOfFile | WindowsMapRemoteView.cpp · header |
alloc | MozVirtualAlloc | mozjemalloc.cpp · mozmemory_wrap.h |
Noms décorés MSVC x64 :
?MapRemoteViewOfFile@mozilla@@YAPEAXPEAX0_K01KK@Z
MozVirtualAlloc
MSYS2 mingw-w64 :
./build.sh
./build.sh shellcode # facultatif : reconstruire shellcode/msgbox.bin
Un mozglue_gate.exe précompilé est inclus dans le dépôt pour des tests rapides de détection (64 bits, nécessite Firefox installé).
# Mappage cross-process + APC (MapRemoteViewOfFile)
.\mozglue_gate.exe inject <pid> shellcode\msgbox.bin
# Allocation locale RWX (MozVirtualAlloc)
.\mozglue_gate.exe alloc --size 10240
shellcode/msgbox.bin affiche « Hello from Mozglue » / titre gluegate (aucun processus enfant).
Nécessite Firefox classique : C:\Program Files\Mozilla Firefox\mozglue.dll (ou --mozglue / MOZGLUE_DLL).

Le module utilisateur final est signé/approuvé par Mozilla Corporation
MapViewOfFile

VirtualAlloc

mozglue.dll!MozVirtualAlloc ou mozglue.dll!?MapRemoteViewOfFile dans la pile d'appels d'un processus non signé ou non signé par Mozilla.mozilla.dll par un processus (en particulier celle déjà installée dans Program Files).Pour des recherches de sécurité autorisées et des tests de détection uniquement.