
وكيل لواجهة برمجة الذاكرة عبر mozglue.dll الموقّع
إثبات مفهوم (PoC) لأبحاث الكشف: تمرير عمليات الذاكرة (تعيين الذاكرة، تخصيص الذاكرة المحلية) عبر ملف mozglue.dll الموقّع من Mozilla بحيث تُنسِب استدعاءات النواة وحدة المستخدم النهائية إلى DLL موثوق من البائع (موقّع من Mozilla) بدلاً من وحدة غير موثوقة أو غير موقّعة.
كلاهما صادرات MFBT_API من mozglue.dll (يتطلب تثبيت Firefox):
| الوضع | التصدير | مصدر Mozilla |
|---|---|---|
inject | mozilla::MapRemoteViewOfFile | WindowsMapRemoteView.cpp · الملف الترويسي |
alloc | MozVirtualAlloc | mozjemalloc.cpp · mozmemory_wrap.h |
أسماء x64 MSVC المشوّهة (mangled names):
?MapRemoteViewOfFile@mozilla@@YAPEAXPEAX0_K01KK@Z
MozVirtualAlloc
MSYS2 mingw-w64:
./build.sh
./build.sh shellcode # optional: rebuild shellcode/msgbox.bin
يتم تضمين نسخة مُجمَّعة مسبقًا من mozglue_gate.exe في المستودع لإجراء اختبارات سريعة لهندسة الكشف (64-بت، يتطلب تثبيت Firefox).
# Cross-process map + APC (MapRemoteViewOfFile)
.\mozglue_gate.exe inject <pid> shellcode\msgbox.bin
# Local RWX alloc (MozVirtualAlloc)
.\mozglue_gate.exe alloc --size 10240
يعرض shellcode/msgbox.bin نافذة منبثقة بنص "Hello from Mozglue" وعنوان gluegate (بدون عملية فرعية).
يتطلب Firefox الكلاسيكي: C:\Program Files\Mozilla Firefox\mozglue.dll (أو --mozglue / MOZGLUE_DLL).
وحدة المستخدم النهائية موقّعة/موثوقة من شركة Mozilla
MapViewOfFile
VirtualAlloc
mozglue.dll!MozVirtualAlloc أو mozglue.dll!?MapRemoteViewOfFile في مكدس الاستدعاءات القادم من عملية غير موقّعة أو موقّعة من غير Mozilla.mozilla.dll (خاصةً النسخة المثبّتة مسبقًا في Program Files).لأغراض البحث الأمني واختبار الكشف المصرَّح بهما فقط.