Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
memory-forensic — Parcourez n'importe quel dump mémoire. Trouvez ce qui est caché. Forensique du noyau Linux + Windows à partir d'un seul binaire Rust statique — aucun Python requis. | Kitploit
Outils/GitHubGitHub/securityronin/memory-forensic
Gestion des Indicateurs de Compromission (IOC)Criminalistique MémoireCriminalistique RéseauRécupération de DonnéesAnalyse de MalwareCriminalistique NumériqueAnalyse de BinairesRenseignement sur les MenacesRéponse aux IncidentsÉvasion de Conteneur
GitHubsecurityronin/memory-forensic
101il y a 3 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

memory-forensic

Parcourez n'importe quel dump mémoire. Trouvez ce qui est caché. Forensique du noyau Linux + Windows à partir d'un seul binaire Rust statique — aucun Python requis.

Voir le dépôtSite web

License: Apache-2.0 CI Rust 1.75+ Platform unsafe: bounded Sponsor

memory-forensic

Une boîte à outils de forensique mémoire qui profile elle-même les noyaux Windows — et qui est recoupée, processus par processus, avec Volatility 3.

mem4n6 lit tous les formats de dump courants (LiME, AVML, core ELF, crash dumps Windows, fichiers d'hibernation, save-states VMware, kdump, raw…) et parcourt les processus, threads, modules, connexions réseau et mémoire injectée — depuis un seul binaire statique que vous compilez une fois et copiez n'importe où, avec pas de Python, pas d'environnement d'exécution, pas de catalogue de symboles pré-étagé. Sur Windows, il construit son propre profil : il localise ntoskrnl en mémoire physique, lit son GUID PDB depuis l'enregistrement CodeView, résout le ISF Volatility-3 correspondant, retrouve la base du noyau sous le KASLR moderne, et reconstruit PsActiveProcessHead à partir de la table des symboles — la même chaîne d'auto-profiling que Volatility 3 et MemProcFS utilisent, réimplémentée en Rust.

Parce que le niveau d'exigence pour un outil de preuve est la justesse, le parcours des processus est recoupé avec une implémentation de référence indépendante — Volatility 3 — sur une image Windows 10 réelle de 2 Go (un accord de référence est une preuve solide, pas une démonstration ; les octets bruts sont la vérité de terrain) :

windows.pslist sur DESKTOP-SDN1RPT.memmem4n6 vs Volatility 3
Processus correspondants94 / 94 PID partagés — PID, PPID, nom, heure de création exacts
Manqués (vol3 trouvés, pas mem4n6)0
Faux positifs (mem4n6 trouvés, pas vol3)0

mem4n6 correspond exactement à Volatility 3 — y compris la récupération de 11 processus orphelins dus à un étalement d'acquisition à chaud, via un parcours bidirectionnel de ActiveProcessLinks. Un second oracle indépendant (MemProcFS) confirme un sous-ensemble propre — son process_list de 77 processus est entièrement contenu dans l'ensemble de mem4n6, avec zéro processus exclusif à MemProcFS (détails). Voir docs/validation.md pour le différentiel complet et les étapes de reproduction.

Démarrage rapide

Installez avec cargo install mem4n6, ou récupérez un binaire statique précompilé depuis la dernière version — les builds Linux sont en statique-PIE (musl : copie n'importe où, pas de glibc), avec macOS, Windows, et un checksums.txt SHA-256 à côté.

Ou compilez depuis les sources (~une commande) :```bash git clone https://github.com/SecurityRonin/memory-forensic.git cd memory-forensic && cargo build --release ./target/release/mem4n6 --help

root@kitploit:~
Cette build de développement lie libc dynamiquement ; pour reproduire localement le binaire entièrement statique de la release, ajoutez la cible 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

Les fichiers de symboles sont au format JSON ISF — les mêmes packs qu'utilise Volatility 3, donc un cache de symboles existant fonctionne tel quel.


Pourquoi mem4n6

mem4n6 est, à notre connaissance, la seule implémentation Rust de la chaîne complète dump → scan du noyau → PDB-GUID → résolution de symboles → DTB. La lignée technique — le serveur de symboles de WinDbg, pdbparse de Brendan Dolan-Gavitt, Rekall, Volatility 3, et MemProcFS d'Ulf Frisk — est bien établie ; mem4n6 la réimplémente en clean-room et valide le résultat par rapport à la référence. MemNixFS apporte cette même idée de mémoire comme système de fichiers aux dumps Linux — montage et parcours, avec des symboles dérivés du BTF propre au noyau lorsqu'aucun ISF n'existe ; les cellules n/a ci-dessus marquent une différence de périmètre (images Linux et une UX de système de fichiers, contre le walker CLI de mem4n6 validé sous Windows), pas une lacune. Le point d'ancrage boot low-stub / PROCESSOR_START_BLOCK s'appuie sur le Getting Physical d'Alex Ionescu à la REcon 2017.


Installation```bash

git clone https://github.com/SecurityRonin/memory-forensic.git cd memory-forensic cargo build --release ./target/release/mem4n6 --help

root@kitploit:~
---

## Référence rapide```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

Les fichiers de symboles sont au format ISF JSON, compatibles avec les packs de symboles Volatility 3.


Vérifier l'intégrité du noyau — hooks invisibles depuis l'OS```bash

SSDT, IDT, ftrace, LSM, and kernel callback checks in one pass

mem4n6 check --symbols linux.json --hooks --idt --syscalls memdump.lime

root@kitploit:~
Le contenu de ce chunk est vide — rien à traduire.```
[HOOK]  sys_call_table[59]  execve  → 0xffffffffc0a2f3d0  (outside kernel text)
[HOOK]  ftrace_ops[0]  target: vfs_read  → 0xffffffffc0a2f410  (module: libymv_ko)
[HOOK]  security_inode_getattr  → 0xffffffffc0a2f450  (LSM hook patched)

Trois types de hooks — table des appels système, ftrace et LSM — aboutissant tous au même module kernel. La mise en correspondance avec la liste des modules confirme qu'il ne se trouve pas dans l'ensemble connu comme fiable.


Analyse comportementale du rootkit LD_PRELOAD

La correspondance par motif de noms ne détecte pas les variantes de rootkits recompilées ou renommées. L'analyse des symboles dynamiques ELF les détecte indépendamment du nom :```bash mem4n6 check --symbols linux.json --elf-hooks memdump.lime

root@kitploit:~
I don't see any content to translate in the input you've provided — the chunk appears to be empty. Please supply the actual Markdown text for chunk 15 and I'll translate it into French following all the specified rules.```
[ROOTKIT] /tmp/.x/libhider.so  signals=[elf.hooks.process_hiding, elf.hooks.pam_credential_theft]
  exports: readdir64, getdents64, pam_get_item, pam_authenticate
  MITRE: T1014 (Rootkit), T1556.003 (Modify Authentication Process)
  loaded in 100% of processes (23/23)

[ROOTKIT] /tmp/.x/libhider.so  .rodata match: "UID:%d:" (Father PAM hook format string, weight=90)

memf-linux analyse chaque bibliothèque mappée dans la mémoire des processus pour :

  • Correspondance de tables de hooks — 17 symboles libc/appels système connus pour être interceptés par les rootkits (readdir64, getdents64, pam_get_item, write, …) classés selon la taxonomie de signaux forensicnomicon
  • Exports fantômes de la libc — les bibliothèques qui exportent une fonction portant le même nom qu'un symbole libc interceptent tous les appelants au moment de l'édition de liens
  • Artefacts de chaînes de la classe Father — des chaînes de format intégrées dans .rodata (p. ex. UID:%d:, silly.txt) qui survivent à la suppression des symboles et aux changements de noms
  • Prévalence globale — les bibliothèques chargées dans ≥90% des processus sont signalées comme des injections LD_PRELOAD probables

Secrets DPAPI et extraction d'identifiants```bash

Extract DPAPI master keys from LSASS g_MasterKeyCache linked list

mem4n6 check --symbols ntkrnlmp.json --dpapi-keys memdump.dmp

Detect Chrome cookies (v10/v20 encrypted blobs) from heap memory

mem4n6 check --symbols ntkrnlmp.json --browser-cookies memdump.dmp

root@kitploit:~
Les **identifiants** sont :

| Service | URL | Nom d'utilisateur | Mot de passe |
|---------|-----|----------|----------|
| Jenkins | `https://jenkins.example.com` | `admin` | `admin123` |```
[DPAPI] GUID={A1B2C3D4-...}  blob_len=680  source=lsass.exe
[COOKIE] msedge.exe  domain=.github.com  name=user_session  value=secretvalue...
[COOKIE] chrome.exe  (v10-encrypted)  — key material required for decryption

The Windows credential walkers cover:

  • Clés principales DPAPI — parcourt la liste chaînée g_MasterKeyCache dans LSASS, extrait le GUID + le blob chiffré pour chaque clé principale mise en cache
  • Cookies Chrome v10/v20 — analyse binaire du tas Chromium à la recherche de blobs de cookies chiffrés AES-GCM (préfixe v10/v20 + nonce de 12 octets) ; déchiffrés lorsque le matériel de clé est disponible
  • Hashes SAM/NTLM, tickets Kerberos, clés BitLocker, secrets LSA — suite complète d’identifiants

Extraction de captures d’écran framebuffer```bash

mem4n6 framebuf --symbols ntkrnlmp.json --png screen.png memdump.dmp

root@kitploit:~
Extrait le framebuffer d'un dump mémoire en direct ou en hibernation et l'écrit au format PNG. Fonctionne à la fois sur Linux (parcours `drm_framebuffer` DRM/KMS) et sur Windows (framebuffer de session via l'analyse du pool `win32k`). Utile pour capturer l'état de l'écran au moment de l'acquisition sans démarrer l'image.

---

## Récupérer les fichiers qui n'ont jamais touché le disque

Les attaquants utilisant tmpfs ou `memfd_create(2)` ne laissent aucun artefact sur le système de fichiers — le binaire n'existe qu'en RAM.```bash
# Recover inodes and file content from Linux tmpfs/ramfs mounts
mem4n6 check --symbols linux.json --tmpfs-recovery memdump.lime

# Detect ELF binaries running from anonymous memfd file descriptors
mem4n6 check --symbols linux.json --memfd memdump.lime

The input chunk appears to be empty. No content was provided to translate. Please supply the Markdown text for chunk 25 of 47.``` [TMPFS] /tmp/.x (dev=tmpfs) 3 inodes recovered inode 12: ELF x86_64 size=847KB sha256=deadbeef... (no disk copy) inode 13: config.sh size=1.2KB content recovered inode 14: keys.txt size=512B content recovered

[MEMFD] pid=2341 (python3) fd=4 name="" size=3.4MB ELF x86_64 No path on disk — binary executed entirely from anonymous memory. MITRE: T1620 (Reflective Code Loading)

root@kitploit:~
La récupération tmpfs parcourt la table `vfsmount` du noyau et reconstruit le contenu des inodes à partir des pages du cache de pages. La détection de memfd parcourt la table des descripteurs de fichiers ouverts de chaque processus et signale les inodes anonymes créés avec `memfd_create(2)`.

---

## Détecter l'évasion EDR et la suppression de journaux

Les outils offensifs modernes modifient en mémoire l'instrumentation de sécurité de Windows pour échapper à la détection sans toucher au disque.```bash
# Direct syscalls — Syswhispers/Hell's Gate bypass Win32 API entirely
mem4n6 check --symbols ntkrnlmp.json --direct-syscalls memdump.dmp

# ETW patching — log suppression via ret/xor at ETW write functions
mem4n6 check --symbols ntkrnlmp.json --etw-patch memdump.dmp

# AMSI bypass — script-scanning suppression via amsi.dll patch
mem4n6 check --symbols ntkrnlmp.json --amsi-bypass memdump.dmp

# DSE bypass — Driver Signature Enforcement disabled for unsigned drivers
mem4n6 check --symbols ntkrnlmp.json --dse-bypass memdump.dmp

Please provide the Markdown content to translate.``` [DIRECT-SYSCALL] powershell.exe (PID 4412) stub at 0x7ff800a1000 mov r10,rcx / mov eax,0x3c / syscall — NtCreateThreadEx bypassing ntdll MITRE: T1055.012 (Process Injection: Process Hollowing)

[ETW-PATCH] svchost.exe (PID 1200) EtwEventWrite → ret at offset +0 Expected: 4C 8B DC Got: C3 90 90 (patched to immediate return) MITRE: T1562.006 (Impair Defenses: Indicator Blocking)

[AMSI-BYPASS] powershell.exe (PID 4412) AmsiScanBuffer → xor eax,eax / ret MITRE: T1562.001 (Impair Defenses: Disable or Modify Tools)

[DSE-BYPASS] g_CiEnabled=0 CipInitialize patch detected MITRE: T1014 (Rootkit), T1553.006 (Subvert Trust Controls)

root@kitploit:~
---

## Abus des nouvelles interfaces du noyau Linux

Au-delà des hooks d'appels système classiques, les rootkits modernes abusent de sous-systèmes du noyau plus récents. `memory-forensic` couvre les trois :```bash
mem4n6 check --symbols linux.json --io-uring --netfilter --perf-event memdump.lime

Aucun contenu source n'a été fourni dans l'entrée.``` [IO_URING] pid=3311 (malware) ring at 0x7f0000000000 ops=1024 pending SQPOLL thread pinned to cpu=0 — I/O continues without process context MITRE: T1071 (Application Layer Protocol)

[NETFILTER] NF_INET_PRE_ROUTING hook[0] → 0xffffffffc0b31240 (outside kernel text) Module not in module list — DKOM-hidden or manually unmapped MITRE: T1014 (Rootkit)

[PERF-EVENT] pid=1 (systemd) type=HARDWARE cpu=-1 overflow_handler patched → 0xffffffffc0b31500 MITRE: T1056 (Input Capture)

root@kitploit:~
---

## Indicateurs d'évasion de conteneur```bash
mem4n6 check --symbols linux.json --container-escape memdump.lime

[No input text provided to translate.]``` [CONTAINER-ESCAPE] pid=8801 (bash) shares host user namespace uid_map: 0 0 4294967295 (full host UID range — privileged mapping) cgroup: / (host root cgroup, not namespaced) mount ns: host (same as pid 1) MITRE: T1611 (Escape to Host)

root@kitploit:~
Walks user, mount, PID, net, et cgroup namespaces pour chaque processus et signale les processus qui devraient être isolés mais partagent des namespaces au niveau de l'hôte — la signature structurelle d'une évasion de conteneur, quelle que soit la manière dont elle a été réalisée.

---

## Corrélation ATT&CK inter-artefacts

`memf-correlate` regroupe les résultats de tous les walkers dans une chronologie, évalue les anomalies selon leur sévérité, et les associe à des techniques MITRE ATT&CK sans exécuter les walkers un par un :```bash
mem4n6 correlate --symbols ntkrnlmp.json --output json memdump.dmp > findings.json

The input content for chunk 41 is empty — no text was provided to translate. Please supply the chunk content, and I will translate it into French following the chunk-specific rules.```json { "technique": "T1055.012", "name": "Process Hollowing", "severity": "critical", "evidence": [ { "source": "vad", "detail": "svchost.exe VAD 0x140000–0x160000 RWX, no backing file" }, { "source": "ldrmodules","detail": "module in VAD but absent from InLoadOrderList" }, { "source": "iat_hooks", "detail": "CreateRemoteThread IAT entry patched → 0x14001a30" } ], "process": { "name": "svchost.exe", "pid": 1200, "ppid": 508 } }

root@kitploit:~
Les résultats des walkers de processus, de réseau, de modules, de hooks et d’identifiants sont corrélés par processus et par heure avant la notation — produisant des constats étiquetés ATT&CK plutôt qu’une sortie par walker que l’analyste doit joindre manuellement.

---

## Formats mémoire pris en charge

| Format | Source | Détection automatique |
|---|---|---|
| LiME (`.lime`) | Module noyau Linux | Oui |
| AVML v2 | Azure AVML | Oui |
| ELF Core | QEMU, `gcore` | Oui |
| Windows Crash Dump (`.dmp`) | DumpIt, WinDbg | Oui |
| Hiberfil.sys | Hibernation Windows / démarrage rapide | Oui |
| VMware State (`.vmss`, `.vmsn`) | VMware Workstation / ESXi | Oui |
| kdump / diskdump | `makedumpfile` | Oui |
| Raw / flat | Tout repli | Oui |

Le format est détecté à partir des en-têtes de fichier — aucune option requise.

---

## Ce qui est différent

Les alternatives les plus proches sont **Volatility 3** (Python, architecture de plugins), **MemProcFS** (C avec liaisons Rust, principalement Windows), **Rekall** (Python, non maintenu) et **MemNixFS** (C++, dumps Linux montés comme système de fichiers). La comparaison ci-dessous reflète le noyau officiel de chaque outil et son dépôt de plugins connu. MemNixFS cible les images *Linux* avec une UX de système de fichiers, il partage donc la récupération de fichiers du cache de pages de mem4n6, mais il est `n/a` sur les lignes d’auto-profiling Windows et de contournement d’EDR.

### Parité — capacités partagées avec les outils matures

| | memory-forensic | Volatility 3 | MemProcFS | MemNixFS | Rekall |
|--|:-:|:-:|:-:|:-:|:-:|
| Walkers de noyau Linux + Windows | ✅ | ✅ | Windows d’abord | Linux uniquement | ✅ |
| Énumération des processus, modules, réseau | ✅ | ✅ | ✅ | ✅ | ✅ |
| Détection de mémoire injectée | ✅ | ✅ | ✅ | ✅ | ✅ |
| Compatible pack de symboles ISF | ✅ | ✅ | — | ✅ | — |
| Fonctionne sous Linux / macOS | ✅ | ✅ | partiel | Linux + Win | ✅ |
| Maintenu activement | ✅ | ✅ | ✅ | ✅ | — |
| Gratuit et open source | ✅ | ✅ | ✅ | sans licence | ✅ |

### Capacités absentes des distributions officielles des autres outils

| | memory-forensic | Volatility 3 | MemProcFS | MemNixFS | Rekall |
|--|:-:|:-:|:-:|:-:|:-:|
| Binaire statique unique — pas de Python, pas de runtime | ✅ | — | — | partiel | — |
| API de bibliothèque pour l’intégration dans des outils Rust | ✅ | — | ✅ | — | — |
| Empreinte comportementale des rootkits ELF | ✅ | — | — | — | — |
| Récupération de fichiers tmpfs / ramfs | ✅ | — | — | ✅ | — |
| Détection d’exécution fileless memfd | ✅ | — | — | — | — |
| Détection des syscalls directs / contournement EDR | ✅ | plugin? | — | n/a | — |
| Détection de contournement ETW / AMSI / DSE | ✅ | plugin? | — | n/a | — |
| Abus d’io_uring / netfilter / perf\_event | ✅ | — | — | — | — |
| Indicateurs d’évasion de conteneur | ✅ | — | — | — | — |
| Extraction des clés DPAPI + cookies Chrome | ✅ | plugin? | — | n/a | — |
| Preuve d’accès aux dossiers Shellbags depuis la mémoire ‡ | ✅ | — | — | n/a | — |
| Capture d’écran du framebuffer | ✅ | plugin? | — | — | — |
| Corrélation ATT&CK inter-artefacts | ✅ | — | — | — | — |
| Sortie sûre — RFC 4180, garde anti-injection de formules, suppression bidi | ✅ | — | — | — | — |

> **`plugin?`** — La capacité peut exister dans l’écosystème communautaire de Volatility 3, mais elle est absente du noyau officiel et du dépôt de plugins au moment de la rédaction. Vérifiez avant de conclure.
>
> **‡ Shellbags depuis la mémoire** — Volatility 2 récupérait les shellbags depuis la RAM (le plugin communautaire `shellbags`, Kovar puis Lo) ; Volatility 3 ne l’a jamais re-porté, si bien que la récupération des shellbags en mémoire seule a régressé lors de la transition vol2→vol3. mem4n6 parcourt `Shell\BagMRU` directement dans la ruche mémoire `UsrClass.dat`/`NTUSER.DAT` — rétablissant la capacité de l’ère vol2 pour le cas RAM seule (aucun disque acquis), ou pour corroborer la ruche sur disque. La voie habituelle lorsque le disque *est* disponible consiste à monter l’image et à exécuter SBECmd / RegRipper sur la ruche ; le parcours mémoire réduit en une seule étape le processus en deux temps « extraire la ruche puis l’analyser ». La validation est de **niveau 2** : la vérité terrain est dérivée avec `regipy` sur la ruche extraite de `citadeldc01.mem` — il n’existe aucune clé de réponse shellbag tierce publiée pour le cas Szechuan, il s’agit donc d’un oracle auto-dérivé (outil réel + image réelle), et non d’une clé tierce.

---

## Faire confiance, mais vérifier

Un outil qui analyse des images mémoire **non fiables et contrôlables par un attaquant** doit refuser de mentir et refuser de planter. mem4n6 est conçu pour atteindre ce niveau :

- **Sans panique grâce au lint sur entrée hostile.** Les chemins d’analyse interdisent `unwrap`/`expect`/`panic!` et l’indexation non contrôlée (`clippy::unwrap_used`/`expect_used` = deny) ; chaque lecture de longueur, d’offset et de pointeur est vérifiée aux limites et se dégrade proprement — une liste de processus incohérente renvoie ce qu’elle a trouvé, elle n’avorte pas. (Les API de construction paniquent en cas d’erreur de programmation — un champ obligatoire manquant — par construction, jamais sur le contenu du dump.)
- **Sûreté mémoire par défaut.** `unsafe_code = "deny"` à l’échelle du workspace ; la seule `unsafe` est limitée aux mappages de fichiers `memmap2` (le dump, le fichier d’échange et la base de hachages connus), chacun étant justifié individuellement — d’où le badge *limitée (mmap uniquement)* plutôt que *interdit*.
- **Validé contre un oracle indépendant, pas seulement nos propres fixtures.** Le walker de processus Windows est comparé à Volatility 3 sur une image Win10 réelle de 2 Go — accord exact sur chaque processus partagé, zéro faux positif ([`docs/validation.md`](https://github.com/securityronin/memory-forensic/blob/HEAD/docs/validation.md)).
- **Sortie sûre.** Chaque canal (tableau/CSV/JSON) applique les guillemets RFC 4180, une protection contre l’injection de formules dans les tableurs, et la suppression des caractères bidi/de contrôle avant que des chaînes contrôlées par un attaquant n’atteignent votre terminal ou votre pipeline.

---

## Utilisation de la bibliothèque```rust
use mem4n6_format::open;
use mem4n6_core::vas::{TranslationMode, VirtualAddressSpace};
use mem4n6_core::object_reader::ObjectReader;
use mem4n6_symbols::isf::IsfResolver;

// Open any supported format — detected from file headers
let dump = open("memdump.dmp")?;
let symbols = IsfResolver::from_file("ntkrnlmp.json")?;

// Walk the x86_64 4-level page table
let vas = VirtualAddressSpace::new(dump.clone(), TranslationMode::X64, cr3);
let reader = ObjectReader::new(vas, Box::new(symbols));

// Walk EPROCESS list
for proc in reader.eprocess_list()? {
    println!("{} (PID {})", proc.image_name()?, proc.pid()?);
}

Organisation des crates

Afficher l'organisation des crates
```toml # Use individual crates in your own tooling [dependencies] memf-core = "0.1" memf-linux = "0.1" memf-windows = "0.1" ``` ---

Utilisé par

issen — la sous-commande issen mem4n6 pilote l'acquisition mémoire et la génération de rapports de triage directement depuis cet espace de travail.


Remerciements

Andrew Case et la Fondation Volatility dont le format ISF et l'architecture de plugins sont compatibles au niveau symbolique avec ce projet.

Brendan Dolan-Gavitt dont les recherches sur le DKOM et le masquage de processus basé sur la VAD ont inspiré les walkers de détection de processus cachés.

Ulf Frisk / MemProcFS dont le modèle de système de fichiers comme interface mémoire et la conception du mode forensique ont influencé la manière dont cette bibliothèque présente les artefacts récupérés.

jam1garner pour binrw — l'analyse déclarative de formats binaires qui rend la couche de format sûre et lisible.

S12 — l'article Kernel Dynamic Offset Resolution Using PDB Symbols qui a documenté la chaîne complète consistant à analyser un dump à la recherche du PE ntoskrnl, à extraire le GUID CodeView du PDB, puis à récupérer le PDB correspondant depuis msdl.microsoft.com à l'exécution. Cette technique a directement inspiré l'implémentation AutoProfile dans memf-symbols.

Alex Ionescu — Getting Physical With USB Type-C: Windows 10 RAM Forensics and UEFI Attacks (REcon Bruxelles 2017), qui a documenté que HalpLowStub du HAL est le PROCESSOR_START_BLOCK non documenté — l'ancre mémoire physique basse (recherchée par signature dans 0x1000–0x100000) portant le CR3/DTB du noyau et un indice d'adresse virtuelle du noyau. C'est la base de find_low_stub et de la récupération du DTB sans en-tête et de la base du noyau dans memf-symbols.

Serveur de symboles Microsoft (msdl.microsoft.com) pour héberger les fichiers PDB publics de chaque build du noyau Windows, la source en amont qui rend possible la résolution de symboles à l'exécution sans fichiers de symboles pré-stagés.


Politique de confidentialité · Conditions d'utilisation · © 2026 Security Ronin Ltd.

Télécharger l’outil
mem4n6Volatility 3MemProcFSMemNixFS
DéploiementRust · binaire statique uniquePython · interpréteur + dépendancesC(+Rust) · bibliothèquesC++ · montage de système de fichiers
Auto-profilage Windows (scan → GUID PDB → symboles)✅✅✅n/a — dumps Linux
DTB sans en-tête via le boot low stub + base du noyau à granularité de page✅PML4 auto-référencé + analyse d'image✅ low stubn/a — Linux
Mode symboles hors ligne / air-gapped✅ --offlinepack ISF ou réseausymboles / réseau✅ BTF-from-dump
Sans panique sur les dumps non fiables (unsafe interdit; unwrap/expect interdits sur les chemins de parsing)✅——— (C++)
Recoupé avec Volatility 3✅ (docs/validation.md)— (la référence)——
CrateDescription
memf-formatDétection de format et fournisseurs de mémoire physique. Analyseurs pour LiME, AVML, ELF Core, Windows Crash Dump, hiberfil.sys, état VMware, kdump et images brutes plates.
memf-coreParcours des tables de pages (x86_64 4/5 niveaux, AArch64, x86 PAE/non-PAE), ObjectReader de haut niveau pour le parcours des structures du noyau, accès au pagefile, décompression LZO, et encodage de captures d'écran framebuffer→PNG (associé aux parcours de framebuffer Linux EFI/VESA et Windows win32k).
memf-linuxParcours du noyau Linux : liste des processus task_struct, connexions réseau, modules du noyau, fichiers ouverts, programmes eBPF, détection de hooks ftrace/IDT/syscall, énumération des espaces de noms et des cgroups, détection des processus cachés par DKOM, indicateurs d'évasion de conteneur, analyse des symboles dynamiques ELF et empreinte comportementale des rootkits LD_PRELOAD, détection de la prévalence globale des bibliothèques, et environ 45 parcours supplémentaires.
memf-windowsParcours du noyau Windows NT : énumération EPROCESS/ETHREAD, listes des DLL et des pilotes, tables de handles, sockets réseau, analyse des balises de pool, tables de callbacks, SSDT, ETW, presse-papiers, cache DNS, tickets Kerberos, extraction des clés maîtresses DPAPI depuis g_MasterKeyCache de LSASS, détection des cookies chiffrés AES-GCM de Chrome v10/v20, clés BitLocker, hachages SAM/NTLM, détection de mémoire injectée, et environ 55 parcours supplémentaires.
memf-stringsExtraction de chaînes (ASCII, UTF-8, UTF-16LE) avec classification par regex en catégories d'IoC : URLs, adresses IP, domaines, clés de registre, adresses de portefeuilles crypto, clés privées, commandes shell.
memf-symbolsRésolution de symboles à partir de fichiers ISF JSON, BTF (Linux) et PDB. Inclut AutoProfile — résolution sans configuration des structures du noyau Windows : analyse le dump pour trouver ntoskrnl, récupère le PDB exact depuis msdl.microsoft.com, le parse et renvoie un SymbolResolver. Aucun fichier de symboles requis.
memf-correlateCorrélation inter-artefacts avec étiquetage des techniques MITRE ATT&CK, reconstruction de l'arborescence des processus, score d'anomalie et génération de chronologie.
forensic-hashdbBases de données de hachages sans faux positif : recherche de fichiers sains NSRL/CIRCL, recherche de fichiers malveillants MalwareBazaar/VirusShare, et hachages intégrés des pilotes Windows vulnérables de loldrivers.io.