
Proxy de API de memória via mozglue.dll assinado
PoC de pesquisa de detecção: operações de memória proxy (mapeamento de memória, alocação de memória local) através da mozglue.dll assinada pela Mozilla para que os callbacks do kernel atribuam o módulo de usuário final a uma DLL de fornecedor confiável (assinada pela Mozilla) em vez de um módulo não confiável ou não assinado.
Ambas são exportações MFBT_API da mozglue.dll (requer instalação do Firefox):
| Modo | Exportação | Fonte Mozilla |
|---|---|---|
inject | mozilla::MapRemoteViewOfFile | WindowsMapRemoteView.cpp · header |
alloc | MozVirtualAlloc | mozjemalloc.cpp · mozmemory_wrap.h |
Nomes decorados (mangled) do MSVC x64:
?MapRemoteViewOfFile@mozilla@@YAPEAXPEAX0_K01KK@Z
MozVirtualAlloc
MSYS2 mingw-w64:
./build.sh
./build.sh shellcode # opcional: recria shellcode/msgbox.bin
Um mozglue_gate.exe pré-compilado está incluído no repositório para testes rápidos de engenharia de detecção (64 bits, requer Firefox instalado).
# Mapeamento entre processos + APC (MapRemoteViewOfFile)
.\mozglue_gate.exe inject <pid> shellcode\msgbox.bin
# Alocação RWX local (MozVirtualAlloc)
.\mozglue_gate.exe alloc --size 10240
shellcode/msgbox.bin exibe "Hello from Mozglue" / título gluegate (sem processo filho).
Requer Firefox clássico: C:\Program Files\Mozilla Firefox\mozglue.dll (ou --mozglue / MOZGLUE_DLL).
O módulo de usuário final é assinado/confiável pela Mozilla Corporation
MapViewOfFile
VirtualAlloc
mozglue.dll!MozVirtualAlloc ou mozglue.dll!?MapRemoteViewOfFile na pilha de chamadas de um processo não assinado ou não assinado pela Mozilla.mozilla.dll (especialmente a já instalada em Program Files).Apenas para pesquisa de segurança autorizada e testes de detecção.