
تجوّل في أي تفريغ ذاكرة. اكشف ما هو مخفي. تحليل جنائي لنواة لينكس وويندوز من ملف Rust ثنائي واحد ثابت — لا حاجة إلى بايثون.
مجموعة أدوات تحليل ذاكرة تقوم ببناء ملف تعريف نواة Windows بنفسها — ويتم التحقق منها، عملية بعملية، مقابل Volatility 3.
mem4n6 يقرأ كل صيغ التفريغ الشائعة (LiME، AVML، ELF core، ملفات انهيار Windows، ملفات الإسبات، حالات حفظ VMware، kdump، raw…) ويتنقل عبر العمليات والخيوط والوحدات واتصالات الشبكة والذاكرة المحقونة — من ملف ثنائي ثابت واحد تترجمه مرة واحدة وتنسخه إلى أي مكان، بدون Python، وبدون بيئة تشغيل، وبدون كتالوج رموز مُجهز مسبقًا. على Windows يبني ملف التعريف الخاص به: يحدد موقع ntoskrnl في الذاكرة الفعلية، ويقرأ معرّف PDB GUID الخاص به من سجل CodeView، ويحلّل ISF المطابق لـ Volatility-3، ويستعيد قاعدة النواة تحت KASLR الحديثة، ويعيد بناء PsActiveProcessHead من جدول الرموز — نفس سلسلة البناء الذاتي التي تستخدمها Volatility 3 وMemProcFS، معاد تنفيذها في Rust.
لأن معيار أداة الأدلة هو الصحة، يتم التحقق من أداة التنقل عبر العمليات مقابل تنفيذ مرجعي مستقل — Volatility 3 — على صورة Windows 10 حقيقية بحجم 2 جيجابايت (اتفاق المرجع هو دليل قوي، وليس إثباتًا؛ البايتات الخام هي الحقيقة الأساسية):
windows.pslist on DESKTOP-SDN1RPT.mem | mem4n6 مقابل Volatility 3 |
|---|---|
| العمليات المتطابقة | 94 / 94 معرّفات عمليات مشتركة — PID وPPID والاسم ووقت الإنشاء بدقة |
| المفقودة (وجدها vol3 ولم يجدها mem4n6) | 0 |
| الإيجابيات الكاذبة (وجدها mem4n6 ولم يجدها vol3) | 0 |
يطابق mem4n6 تطابقًا تامًا مع Volatility 3 — بما في ذلك استعادة 11 عملية تيتمت بسبب تلطيخ الالتقاط المباشر عبر اجتياز ثنائي الاتجاه لـ ActiveProcessLinks. ويؤكد مصدر تحقق مستقل ثانٍ (MemProcFS) مجموعة فرعية نظيفة — حيث أن process_list الخاص به المكوّن من 77 عملية مضمن بالكامل في مجموعة mem4n6، مع صفر عمليات خاصة بـ MemProcFS فقط (التفاصيل). راجع docs/validation.md للحصول على الفروق الكاملة وخطوات إعادة الإنتاج.
ثبّت باستخدام cargo install mem4n6، أو احصل على ملف ثنائي ثابت مُجمّع مسبقًا من أحدث إصدار — إصدارات Linux هي static-PIE (musl: انسخ في أي مكان، بلا glibc)، مع macOS وWindows وملف SHA-256 checksums.txt بجانبها.
أو ابنِ من المصدر (أمر واحد تقريبًا):```bash git clone https://github.com/SecurityRonin/memory-forensic.git cd memory-forensic && cargo build --release ./target/release/mem4n6 --help
ذلك البناء التطويري يربط libc ديناميكيًا؛ لإعادة إنتاج الثنائي الثابت بالكامل الخاص بالإصدار محليًا، أضف هدف musl: `rustup target add x86_64-unknown-linux-musl && cargo build --release --target x86_64-unknown-linux-musl`.```bash
# Inspect any dump — format, ranges, embedded metadata (no symbols needed)
mem4n6 info win10.mem
# Windows process tree. The ISF is resolved from the kernel's own PDB GUID;
# raw .mem dumps take the page-table base via --cr3 (crash dumps carry their own).
mem4n6 ps --symbols ntkrnlmp.json --cr3 0x1ad000 --tree win10.mem
# Linux process tree from a LiME capture
mem4n6 ps --symbols linux.json --tree memdump.lime
# Air-gapped lab? Never touch the network for symbols:
mem4n6 ps --symbols ntkrnlmp.json --offline win10.mem
Symbol files are ISF JSON — نفس الحزم التي يستخدمها Volatility 3، لذا فإن ذاكرة التخزين المؤقتة للرموز الموجودة تعمل كما هي.
| mem4n6 | Volatility 3 | MemProcFS | MemNixFS | |
|---|---|---|---|---|
| النشر | Rust · ملف ثنائي ثابت واحد | Python · مفسر + تبعيات | C(+Rust) · مكتبات | C++ · تركيب نظام ملفات |
| التحليل الذاتي لنظام Windows (فحص ← PDB GUID ← رموز) | ✅ | ✅ | ✅ | n/a — نسخ Linux |
| DTB بلا ترويسة عبر low stub للإقلاع + قاعدة نواة بدقة صفحة | ✅ | PML4 ذاتي المرجع + فحص الصورة | ✅ low stub | n/a — Linux |
| وضع الرموز دون اتصال / معزول شبكيًا | ✅ --offline | حزمة ISF أو شبكة | رموز / شبكة | ✅ BTF-from-dump |
خالٍ من الـ panic على التفريغات غير الموثوقة (unsafe-deny; unwrap/expect مرفوضان في مسارات التحليل) | ✅ | — | — | — (C++) |
| متحقق منه مقابل Volatility 3 | ✅ (docs/validation.md) | — (المرجع) | — | — |
mem4n6 هي، على حد علمنا، التطبيق الوحيد بلغة Rust لسلسلة التفريغ الكامل ← فحص النواة ← PDB-GUID ← تحليل الرموز ← DTB. سلسلة نسب هذه التقنية — خادم رموز WinDbg، وpdbparse لـ Brendan Dolan-Gavitt، وRekall، وVolatility 3، وMemProcFS لـ Ulf Frisk — راسخة جيدًا؛ يعيد mem4n6 تنفيذها بأسلوب الغرفة النظيفة (clean-room) ويتحقق من النتيجة مقابل المرجع. MemNixFS يجلب الفكرة نفسها الذاكرة-كنظام-ملفات إلى نسخ Linux — التركيب والتصفح، مع رموز مشتقة من BTF الخاص بالنواة عندما لا توجد ISF؛ خلايا n/a أعلاه تشير إلى اختلاف في النطاق (صور Linux وتجربة مستخدم نظام الملفات، مقابل أداة CLI الخاصة بـ mem4n6 والمعتمدة على Windows)، وليس فجوة. يستند مرتكز boot low-stub / PROCESSOR_START_BLOCK إلى Alex Ionescu's REcon 2017 Getting Physical.
git clone https://github.com/SecurityRonin/memory-forensic.git cd memory-forensic cargo build --release ./target/release/mem4n6 --help
---
## مرجع سريع```bash
# Show dump format and physical memory ranges
mem4n6 info memdump.dmp
# Process tree with threads and DLLs
mem4n6 ps --symbols ntkrnlmp.json --tree --threads --dlls memdump.dmp
# Network connections (json / csv / table)
mem4n6 net --symbols ntkrnlmp.json --output json memdump.dmp
# Kernel integrity checks (SSDT, IDT, callbacks, hooks)
mem4n6 check --symbols ntkrnlmp.json --ssdt --callbacks memdump.dmp
# Linux syscall hook and malfind scan
mem4n6 check --symbols linux.json --hooks --malfind memdump.lime
# String extraction with YARA rules
mem4n6 strings --rules ./yara-rules/ --min-length 8 memdump.dmp
# Hash lookup against NSRL (known-good) and MalwareBazaar (known-bad)
mem4n6 hash --lookup memdump.dmp
# Extract framebuffer screenshot from live memory dump
mem4n6 framebuf --symbols linux.json --png screen.png memdump.dmp
# Recover files from tmpfs mounts + detect memfd fileless ELF execution
mem4n6 check --symbols linux.json --tmpfs-recovery --memfd memdump.lime
# Detect EDR bypass: direct syscalls, ETW patching, AMSI/DSE bypass
mem4n6 check --symbols ntkrnlmp.json --direct-syscalls --etw-patch --amsi-bypass memdump.dmp
# Novel kernel interface abuse: io_uring, netfilter hooks, perf_event
mem4n6 check --symbols linux.json --io-uring --netfilter --perf-event memdump.lime
# Cross-artifact ATT&CK correlation across all walkers
mem4n6 correlate --symbols ntkrnlmp.json --output json memdump.dmp
Symbol files are ISF JSON, compatible with Volatility 3 symbol packs.