
किसी भी मेमोरी डंप की जांच करें। छिपी हुई चीज़ें ढूंढें। एक ही स्टैटिक Rust बाइनरी से Linux + Windows कर्नेल फोरेंसिक — Python की आवश्यकता नहीं।
एक मेमोरी फोरेंसिक टूलकिट जो स्वयं Windows कर्नेल का प्रोफ़ाइल बनाता है — और Volatility 3 के विरुद्ध प्रक्रिया-दर-प्रक्रिया क्रॉस-चेक किया जाता है।
mem4n6 सभी सामान्य डंप प्रारूपों (LiME, AVML, ELF core, Windows crash dumps, hibernation files, VMware save-states, kdump, raw…) को पढ़ता है और प्रक्रियाओं, थ्रेड्स, मॉड्यूल्स, नेटवर्क कनेक्शनों, तथा इंजेक्ट की गई मेमोरी को स्कैन करता है — एक स्थैतिक बाइनरी से जिसे आप एक बार कंपाइल करके कहीं भी कॉपी कर सकते हैं, बिना Python, बिना रनटाइम, बिना पहले से तैयार सिंबल कैटलॉग के। Windows पर यह अपना स्वयं का प्रोफ़ाइल बनाता है: भौतिक मेमोरी में ntoskrnl का पता लगाएँ, CodeView रिकॉर्ड से उसका PDB GUID पढ़ें, मेल खाते Volatility-3 ISF को हल करें, आधुनिक KASLR के अंतर्गत कर्नेल बेस को पुनर्प्राप्त करें, और सिंबल टेबल से PsActiveProcessHead का पुनर्निर्माण करें — वही स्व-प्रोफाइलिंग श्रृंखला जो Volatility 3 और MemProcFS उपयोग करते हैं, Rust में पुनः कार्यान्वित।
क्योंकि साक्ष्य उपकरण के लिए मानक सत्यता है, प्रक्रिया वॉकर को एक स्वतंत्र संदर्भ कार्यान्वयन — Volatility 3 — के विरुद्ध, एक वास्तविक 2 GB Windows 10 इमेज पर क्रॉस-चेक किया जाता है (सहमत होता संदर्भ मजबूत साक्ष्य है, प्रमाण नहीं; कच्चे बाइट्स ही आधार सत्य हैं):
windows.pslist DESKTOP-SDN1RPT.mem पर | mem4n6 बनाम Volatility 3 |
|---|---|
| मिलान की गई प्रक्रियाएँ | 94 / 94 साझा PID — सटीक PID, PPID, नाम, निर्माण-समय |
| छूटी हुई (vol3 ने पाई, mem4n6 ने नहीं) | 0 |
| गलत सकारात्मक (mem4n6 ने पाया, vol3 ने नहीं) | 0 |
mem4n6, Volatility 3 से बिल्कुल मेल खाता है — जिसमें लाइव-अधिग्रहण स्मीयर द्वारा अनाथ की गई 11 प्रक्रियाओं को द्विदिश ActiveProcessLinks वॉक के माध्यम से पुनर्प्राप्त करना शामिल है। एक दूसरा स्वतंत्र ओरेकल (MemProcFS) एक स्वच्छ उपसमुच्चय की पुष्टि करता है — इसकी 77-प्रक्रिया process_list पूरी तरह से mem4n6 के समुच्चय में समाहित है, जिसमें शून्य MemProcFS-केवल प्रक्रियाएँ हैं (विवरण). पूर्ण अंतर विश्लेषण और पुनरुत्पादन चरणों के लिए docs/validation.md देखें।
cargo install mem4n6 से इंस्टॉल करें, या नवीनतम रिलीज़ से पहले से निर्मित static बाइनरी लें — 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
सिंबल फ़ाइलें ISF JSON हैं — वही पैक जो Volatility 3 उपयोग करता है, इसलिए मौजूदा सिंबल कैश ज्यों-का-त्यों काम करता है।
| mem4n6 | Volatility 3 | MemProcFS | MemNixFS | |
|---|---|---|---|---|
| परिनियोजन | Rust · एकल स्थैतिक बाइनरी | Python · इंटरप्रेटर + निर्भरताएँ | C(+Rust) · लाइब्रेरीज़ | C++ · फाइलसिस्टम माउंट |
| विंडोज सेल्फ-प्रोफाइलिंग (स्कैन → PDB GUID → सिंबल) | ✅ | ✅ | ✅ | n/a — लिनक्स डंप |
| बिना हेडर वाला DTB, बूट लो स्टब + पेज-ग्रैन्युलर कर्नेल बेस के माध्यम से | ✅ | सेल्फ-रेफ PML4 + इमेज स्कैन | ✅ लो स्टब | n/a — लिनक्स |
| ऑफ़लाइन / एयर-गैप्ड सिंबल मोड | ✅ --offline | ISF पैक या नेटवर्क | सिंबल / नेटवर्क | ✅ BTF-from-dump |
अविश्वसनीय डंप पर पैनिक-मुक्त (unsafe-निषेध; unwrap/expect पार्सिंग पथों पर निषिद्ध) | ✅ | — | — | — (C++) |
| Volatility 3 के विरुद्ध क्रॉस-चेक किया गया | ✅ (docs/validation.md) | — (संदर्भ) | — | — |
जहाँ तक हम जानते हैं, mem4n6 पूर्ण डंप → कर्नेल-स्कैन → PDB-GUID → सिंबल-रिज़ॉल्यूशन → DTB श्रृंखला का एकमात्र Rust कार्यान्वयन है। तकनीकी वंशावली — WinDbg का सिंबल सर्वर, Brendan Dolan-Gavitt का pdbparse, Rekall, Volatility 3, और Ulf Frisk का MemProcFS — सुस्थापित है; mem4n6 इसे क्लीन-रूम पुनः कार्यान्वित करता है और संदर्भ के विरुद्ध परिणाम को मान्य करता है। MemNixFS उसी memory-as-a-filesystem विचार को Linux डंप तक लाता है — माउंट-और-ब्राउज़, जब कोई ISF नहीं होता तो कर्नेल के स्वयं के BTF से व्युत्पन्न सिंबल के साथ; ऊपर के n/a सेल एक दायरे के अंतर को दर्शाते हैं (Linux इमेज और एक फाइलसिस्टम UX, बनाम mem4n6 का Windows-सत्यापित CLI वॉकर), कोई कमी नहीं। बूट लो-स्टब / PROCESSOR_START_BLOCK एंकर Alex Ionescu के 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
प्रतीक फ़ाइलें ISF JSON हैं, जो Volatility 3 प्रतीक पैक के साथ संगत हैं।