Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
memory-forensic — Recorre cualquier volcado de memoria. Encuentra lo que está oculto. Forensia del kernel de Linux + Windows desde un único binario Rust estático — no se requiere Python. | Kitploit
Herramientas/GitHubGitHub/securityronin/memory-forensic
Gestión de Indicadores de Compromiso (IOC)Forensia de MemoriaForensia de RedRecuperación de DatosAnálisis de MalwareForensia DigitalAnálisis de BinariosInteligencia de AmenazasRespuesta a Incidentes

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Escape de Contenedores
GitHubsecurityronin/memory-forensic

memory-forensic

Recorre cualquier volcado de memoria. Encuentra lo que está oculto. Forensia del kernel de Linux + Windows desde un único binario Rust estático — no se requiere Python.

Ver RepositorioSitio web
101hace 3 díasAún no revisado

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

memory-forensic

Un kit de herramientas de análisis forense de memoria que perfila los kernels de Windows por sí mismo — y se contrasta proceso por proceso contra Volatility 3.

mem4n6 lee todos los formatos de volcado comunes (LiME, AVML, ELF core, volcados de Windows, archivos de hibernación, estados de guardado de VMware, kdump, raw…) y recorre procesos, hilos, módulos, conexiones de red y memoria inyectada — desde un único binario estático que compilas una vez y copias donde quieras, sin Python, sin runtime, sin catálogo de símbolos preparado de antemano. En Windows construye su propio perfil: localiza ntoskrnl en la memoria física, lee su GUID PDB del registro CodeView, resuelve el ISF correspondiente de Volatility 3, recupera la base del kernel bajo el KASLR moderno y reconstruye PsActiveProcessHead a partir de la tabla de símbolos — la misma cadena de autoperfilado que usan Volatility 3 y MemProcFS, reimplementada en Rust.

Dado que el listón para una herramienta de evidencia es la corrección, el enumerador de procesos se contrasta contra una implementación de referencia independiente — Volatility 3 — sobre una imagen real de Windows 10 de 2 GB (una referencia que coincide es una evidencia sólida, no una prueba; los bytes brutos son la verdad fundamental):

windows.pslist en DESKTOP-SDN1RPT.memmem4n6 vs Volatility 3
Procesos coincidentes94 / 94 PIDs compartidos: PID, PPID, nombre y tiempo de creación exactos
No detectados (vol3 los encontró, mem4n6 no)0
Falsos positivos (mem4n6 los encontró, vol3 no)0

mem4n6 coincide con Volatility 3 exactamente — incluida la recuperación de 11 procesos huérfanos por un smear de adquisición en vivo mediante un recorrido bidireccional de ActiveProcessLinks. Un segundo oráculo independiente (MemProcFS) confirma un subconjunto limpio — su process_list de 77 procesos está completamente contenido en el conjunto de mem4n6, con cero procesos exclusivos de MemProcFS (detalles). Consulta docs/validation.md para el diferencial completo y los pasos de reproducción.

Inicio rápido

Instala con cargo install mem4n6, o descarga un binario estático precompilado de la última versión — las compilaciones de Linux son static-PIE (musl: cópialo a cualquier lado, sin glibc), junto con macOS, Windows y un checksums.txt SHA-256.

O compílalo desde el código fuente (~un comando):```bash git clone https://github.com/SecurityRonin/memory-forensic.git cd memory-forensic && cargo build --release ./target/release/mem4n6 --help

root@kitploit:~
Esa compilación de desarrollo enlaza libc dinámicamente; para reproducir localmente el binario totalmente estático del release, añade el objetivo 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 — los mismos paquetes que usa Volatility 3, por lo que una caché de símbolos existente funciona tal cual.


Por qué mem4n6

mem4n6 es, hasta donde sabemos, la única implementación en Rust de la cadena completa volcado → escaneo del kernel → GUID de PDB → resolución de símbolos → DTB. El linaje de la técnica — el servidor de símbolos de WinDbg, pdbparse de Brendan Dolan-Gavitt, Rekall, Volatility 3 y MemProcFS de Ulf Frisk — está bien establecido; mem4n6 lo reimplementa en sala limpia y valida el resultado contra la referencia. MemNixFS lleva esa misma idea de memoria como sistema de archivos a los volcados de Linux — montar y explorar, con símbolos derivados del propio BTF del kernel cuando no existe ISF; las celdas n/a de arriba marcan una diferencia de alcance (imágenes Linux y una UX de sistema de archivos, frente al recorredor CLI validado para Windows de mem4n6), no una carencia. El anclaje del stub bajo de arranque / PROCESSOR_START_BLOCK sigue la conferencia Getting Physical de Alex Ionescu en REcon 2017.


Instalación```bash

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

root@kitploit:~
---

## Referencia rápida```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

Los archivos de símbolos son ISF JSON, compatibles con los paquetes de símbolos de Volatility 3.


Verificar la integridad del kernel — hooks invisibles desde el SO```bash

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

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

root@kitploit:~
Please provide the markdown content to translate.```
[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)

Tres tipos de hooks — tabla de syscalls, ftrace y LSM — todos resuelven en el mismo módulo del kernel. La comparación cruzada con la lista de módulos confirma que no está en el conjunto de confianza.


Análisis de comportamiento del rootkit LD_PRELOAD

La coincidencia por patrones de nombre no detecta variantes de rootkit recompiladas o renombradas. El análisis de símbolos dinámicos ELF las detecta independientemente del nombre:```bash mem4n6 check --symbols linux.json --elf-hooks memdump.lime

root@kitploit:~
Please provide the Markdown content to translate.```
[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 escanea cada biblioteca mapeada en la memoria del proceso para detectar:

  • Coincidencia de ganchos (hook table matching) — 17 símbolos de libc/syscall conocidos por ser interceptados por rootkits (readdir64, getdents64, pam_get_item, write, …) clasificados según la taxonomía de señales de forensicnomicon
  • Exportaciones sombra de libc — las bibliotecas que exportan una función con el mismo nombre que un símbolo de libc interceptan a todos los llamadores en tiempo de enlace
  • Artefactos de cadena de clase padre — cadenas de formato incrustadas en .rodata (p. ej. UID:%d:, silly.txt) que sobreviven al stripping del binario y a los cambios de nombre
  • Prevalencia global — las bibliotecas cargadas en ≥90% de los procesos se marcan como posibles inyecciones LD_PRELOAD

Secretos DPAPI y extracción de credenciales```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:~
Please provide the Markdown content to translate.```
[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

Los rastreadores de credenciales de Windows cubren:

  • Claves maestras DPAPI — recorre la lista enlazada g_MasterKeyCache en LSASS, extrae GUID + blob cifrado para cada clave maestra en caché
  • Cookies de Chrome v10/v20 — escaneo binario del heap de Chromium en busca de blobs de cookies cifrados con AES-GCM (prefijo v10/v20 + nonce de 12 bytes); descifrados cuando el material de clave está disponible
  • Hashes SAM/NTLM, tickets Kerberos, claves BitLocker, secretos LSA — suite completa de credenciales

Extracción de capturas de pantalla del framebuffer```bash

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

root@kitploit:~
Extrae el framebuffer de un volcado de memoria en vivo o de hibernación y lo escribe como PNG. Funciona tanto en Linux (walker de `drm_framebuffer` de DRM/KMS) como en Windows (framebuffer de sesión mediante escaneo del pool de `win32k`). Útil para capturar el estado de la pantalla en el momento de la adquisición sin iniciar la imagen.

---

## Recupera archivos que nunca tocaron el disco

Los atacantes que usan tmpfs o `memfd_create(2)` no dejan artefactos en el sistema de archivos — el binario existe solo en la 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

[No content provided to translate.]``` [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 recuperación de tmpfs recorre la tabla `vfsmount` del kernel y reconstruye el contenido de los inodos a partir de las páginas de la caché de páginas. La detección de memfd recorre la tabla de descriptores de archivos abiertos de cada proceso y marca los inodos anónimos creados con `memfd_create(2)`.

---

## Detectar la evasión de EDR y la supresión de registros

Las herramientas ofensivas modernas parchean la instrumentación de seguridad de Windows en memoria para evadir la detección sin tocar el disco.```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

No se proporcionó contenido para traducir en la entrada (INPUT está vacío).``` [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:~
---

## Abuso novedoso de la interfaz del kernel de Linux

Más allá de los hooks clásicos de syscall, los rootkits modernos abusan de subsistemas más nuevos del kernel. `memory-forensic` cubre los tres:```bash
mem4n6 check --symbols linux.json --io-uring --netfilter --perf-event memdump.lime

No se proporcionó contenido para traducir.``` [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:~
---

## Indicadores de escape de contenedores```bash
mem4n6 check --symbols linux.json --container-escape memdump.lime

Por favor, proporciona el contenido Markdown que deseas traducir.``` [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:~
Recorre los namespaces de usuario, mount, PID, net y cgroup de cada proceso y marca los procesos que deberían estar aislados pero comparten namespaces de nivel de host — la firma estructural de una escape de contenedor independientemente de cómo se haya logrado.

---

## Correlación ATT&CK entre artefactos

`memf-correlate` combina los hallazgos de todos los walkers en una línea temporal, puntúa las anomalías por severidad y asigna cada una a técnicas de MITRE ATT&CK sin ejecutar los walkers uno a la vez:```bash
mem4n6 correlate --symbols ntkrnlmp.json --output json memdump.dmp > findings.json

El contenido del chunk no fue proporcionado en la entrada (la sección INPUT está vacía). No hay texto fuente para traducir.```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:~
Process, network, module, hook, and credential walker results are correlated by process and time before scoring — producing ATT&CK-tagged findings rather than per-walker output that an analyst must join manually.

---

## Formatos de memoria compatibles

| Formato | Fuente | Auto-detectado |
|---|---|---|
| LiME (`.lime`) | Módulo del kernel de Linux | Sí |
| AVML v2 | Azure AVML | Sí |
| ELF Core | QEMU, `gcore` | Sí |
| Windows Crash Dump (`.dmp`) | DumpIt, WinDbg | Sí |
| Hiberfil.sys | Hibernación / inicio rápido de Windows | Sí |
| VMware State (`.vmss`, `.vmsn`) | VMware Workstation / ESXi | Sí |
| kdump / diskdump | `makedumpfile` | Sí |
| Raw / flat | Cualquier respaldo | Sí |

El formato se detecta a partir de las cabeceras de los archivos — no se requieren indicadores.

---

## En qué se diferencia

Las alternativas más cercanas son **Volatility 3** (Python, arquitectura de plugins), **MemProcFS** (C con bindings de Rust, principalmente Windows), **Rekall** (Python, sin mantenimiento) y **MemNixFS** (C++, volcados de Linux montados como sistema de archivos). La comparación a continuación refleja el núcleo oficial de cada herramienta y su repositorio de plugins conocido. MemNixFS se dirige a imágenes *Linux* con una experiencia de usuario de sistema de archivos, por lo que comparte la recuperación de archivos de caché de páginas de mem4n6, pero es `n/a` en las filas de auto-perfilado de Windows y evasión de EDR.

### Paridad — capacidades compartidas con herramientas maduras

| | memory-forensic | Volatility 3 | MemProcFS | MemNixFS | Rekall |
|--|:-:|:-:|:-:|:-:|:-:|
| Walkers de kernel Linux + Windows | ✅ | ✅ | Windows primero | Solo Linux | ✅ |
| Enumeración de procesos, módulos y red | ✅ | ✅ | ✅ | ✅ | ✅ |
| Detección de memoria inyectada | ✅ | ✅ | ✅ | ✅ | ✅ |
| Compatible con paquetes de símbolos ISF | ✅ | ✅ | — | ✅ | — |
| Se ejecuta en Linux / macOS | ✅ | ✅ | parcial | Linux + Win | ✅ |
| Con mantenimiento activo | ✅ | ✅ | ✅ | ✅ | — |
| Gratuito y de código abierto | ✅ | ✅ | ✅ | sin licencia | ✅ |

### Capacidades ausentes en las distribuciones oficiales de otras herramientas

| | memory-forensic | Volatility 3 | MemProcFS | MemNixFS | Rekall |
|--|:-:|:-:|:-:|:-:|:-:|
| Binario estático único — sin Python, sin runtime | ✅ | — | — | parcial | — |
| API de biblioteca para integración en herramientas Rust | ✅ | — | ✅ | — | — |
| Identificación de rootkits por comportamiento ELF | ✅ | — | — | — | — |
| Recuperación de archivos tmpfs / ramfs | ✅ | — | — | ✅ | — |
| Detección de ejecución fileless memfd | ✅ | — | — | — | — |
| Detección de syscalls directas / evasión de EDR | ✅ | plugin? | — | n/a | — |
| Detección de evasión de ETW / AMSI / DSE | ✅ | plugin? | — | n/a | — |
| Abuso de io_uring / netfilter / perf\_event | ✅ | — | — | — | — |
| Indicadores de escape de contenedores | ✅ | — | — | — | — |
| Extracción de claves DPAPI + cookies de Chrome | ✅ | plugin? | — | n/a | — |
| Evidencia de acceso a carpetas Shellbags desde la memoria ‡ | ✅ | — | — | n/a | — |
| Captura de pantalla de framebuffer | ✅ | plugin? | — | — | — |
| Correlación de ATT&CK entre artefactos | ✅ | — | — | — | — |
| Salida segura — RFC 4180, protección contra inyección de fórmulas, bidi-strip | ✅ | — | — | — | — |

> **`plugin?`** — La capacidad puede existir en el ecosistema de la comunidad de Volatility 3, pero está ausente del núcleo oficial y del repositorio de plugins en el momento de escribir esto. Verifícalo antes de concluir.
>
> **‡ Shellbags desde memoria** — Volatility 2 recuperaba shellbags de la RAM (el plugin `shellbags` de la comunidad, Kovar y luego Lo); Volatility 3 nunca lo reincorporó, por lo que la recuperación de shellbags solo desde memoria retrocedió en la transición vol2→vol3. mem4n6 recorre `Shell\BagMRU` directamente en el hive `UsrClass.dat`/`NTUSER.DAT` en memoria, restaurando la capacidad de la era vol2 para el caso de solo RAM (sin adquirir disco), o para corroborar el hive en disco. El camino habitual cuando el disco *sí* está disponible es montar la imagen y ejecutar SBECmd / RegRipper sobre el archivo de hive; el recorrido de memoria colapsa los dos pasos de volcar el hive y luego analizarlo en uno solo. La validación es **nivel 2**: la verdad fundamental se deriva con `regipy` sobre el hive extraído de `citadeldc01.mem`; no existe una clave de respuestas de shellbags de terceros publicada para el caso Szechuan, por lo que este es un oráculo autogenerado (herramienta real + imagen real), no una clave de terceros.

---

## Confía, pero verifica

Una herramienta que analiza imágenes de memoria **no confiables y controlables por el atacante** tiene que negarse a mentir y negarse a fallar. mem4n6 está construida para ese estándar:

- **Sin pánico gracias al lint en entradas hostiles.** Las rutas de análisis deniegan `unwrap`/`expect`/`panic!` e indexación sin comprobar (`clippy::unwrap_used`/`expect_used` = deny); cada lectura de longitud, desplazamiento y puntero se comprueba contra los límites y degrada con elegancia: una lista de procesos corrupta devuelve lo que encontró, no aborta. (Las APIs de construcción generan pánico ante un error de programación — un campo requerido faltante — por diseño, nunca ante el contenido del volcado).
- **Seguro en memoria por defecto.** `unsafe_code = "deny"` en todo el workspace; el único `unsafe` son los mapeos de archivos limitados de `memmap2` (el volcado, el archivo de página y la base de datos de hashes conocidos), cada uno justificado individualmente; de ahí la insignia *acotado (solo mmap)* en lugar de *prohibido*.
- **Validada contra un oráculo independiente, no solo contra nuestros propios fixtures.** El walker de procesos de Windows se compara con Volatility 3 en una imagen real de Windows 10 de 2 GB: acuerdo exacto en todos los procesos compartidos, cero falsos positivos ([`docs/validation.md`](https://github.com/securityronin/memory-forensic/blob/HEAD/docs/validation.md)).
- **Salida segura.** Cada canal (tabla/CSV/JSON) aplica comillas RFC 4180, una protección contra la inyección de fórmulas en hojas de cálculo y la eliminación de caracteres bidi/de control antes de que las cadenas controladas por el atacante lleguen a tu terminal o pipeline.

---

## Uso de la biblioteca```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()?);
}

Crate Layout

Mostrar el diseño de las crates
```toml # Use individual crates in your own tooling [dependencies] memf-core = "0.1" memf-linux = "0.1" memf-windows = "0.1" ``` ---

Usado por

issen — el subcomando issen mem4n6 impulsa la adquisición de memoria y la generación de informes de triaje directamente desde este espacio de trabajo.


Agradecimientos

Andrew Case y la Volatility Foundation — cuyo formato ISF y arquitectura de plugins son compatibles a nivel de símbolos con este proyecto.

Brendan Dolan-Gavitt — cuya investigación sobre DKOM y la ocultación de procesos basada en VAD informó los walkers de detección de procesos ocultos.

Ulf Frisk / MemProcFS — cuyo modelo de sistema de archivos como interfaz de memoria y el diseño del modo forense influyeron en la forma en que esta librería expone los artefactos recuperados.

jam1garner por binrw — análisis declarativo de formatos binarios que hace que la capa de formato sea segura y legible.

S12 — el artículo Kernel Dynamic Offset Resolution Using PDB Symbols que documentó la cadena completa de escanear un volcado en busca del PE ntoskrnl, extraer el GUID PDB de CodeView y obtener el PDB correspondiente desde msdl.microsoft.com en tiempo de ejecución. Esta técnica inspiró directamente la implementación de AutoProfile en memf-symbols.

Alex Ionescu — Getting Physical With USB Type-C: Windows 10 RAM Forensics and UEFI Attacks (REcon Brussels 2017), que documentó que HalpLowStub del HAL es el PROCESSOR_START_BLOCK no documentado — el anclaje de memoria física baja (escaneado por firma en 0x1000–0x100000) que contiene el CR3/DTB del kernel y una pista de VA del kernel. Esta es la base para find_low_stub y la recuperación del DTB / base del kernel sin cabecera en memf-symbols.

Microsoft Symbol Server (msdl.microsoft.com) por alojar archivos PDB públicos para cada compilación del kernel de Windows, la fuente upstream que hace posible la resolución de símbolos en tiempo de ejecución sin archivos de símbolos preparados de antemano.


Política de privacidad · Términos del servicio · © 2026 Security Ronin Ltd.

Descargar herramienta
mem4n6Volatility 3MemProcFSMemNixFS
DespliegueRust · binario estático únicoPython · intérprete + dependenciasC(+Rust) · bibliotecasC++ · montaje de sistema de archivos
Autoperfilado de Windows (escaneo → GUID de PDB → símbolos)✅✅✅n/d — volcados de Linux
DTB sin cabecera mediante el stub bajo de arranque + base del kernel a nivel de página✅PML4 autorreferencial + escaneo de imagen✅ stub bajon/d — Linux
Modo de símbolos sin conexión / aislado✅ --offlinepaquete ISF o redsímbolos / red✅ BTF desde volcado
Sin pánicos en volcados no confiables (unsafe denegado; unwrap/expect denegados en rutas de análisis)✅——— (C++)
Verificado de forma cruzada con Volatility 3✅ (docs/validation.md)— (la referencia)——
CratePropósito
memf-formatDetección de formato y proveedores de memoria física. Analizadores para LiME, AVML, ELF Core, Windows Crash Dump, hiberfil.sys, estado de VMware, kdump e imágenes planas sin formato.
memf-coreRecorrido de tablas de páginas (x86_64 de 4/5 niveles, AArch64, x86 PAE/no PAE), ObjectReader de alto nivel para el recorrido de estructuras del kernel, acceso a pagefiles, descompresión LZO y codificación de capturas de pantalla framebuffer→PNG (emparejado con los walkers de framebuffer EFI/VESA de Linux y win32k de Windows).
memf-linuxWalkers del kernel de Linux: lista de procesos task_struct, conexiones de red, módulos del kernel, archivos abiertos, programas eBPF, detección de hooks en ftrace/IDT/syscall, enumeración de namespaces y cgroups, detección de procesos ocultos por DKOM, indicadores de escape de contenedores, análisis de símbolos dinámicos ELF y huellas de comportamiento de rootkits LD_PRELOAD, detección de prevalencia global de bibliotecas y aproximadamente 45 walkers adicionales.
memf-windowsWalkers del kernel NT de Windows: enumeración de EPROCESS/ETHREAD, listas de DLL y controladores, tablas de handles, sockets de red, escaneo de pool tags, tablas de callbacks, SSDT, ETW, portapapeles, caché DNS, tickets Kerberos, extracción de claves maestras DPAPI desde g_MasterKeyCache de LSASS, detección de cookies cifradas AES-GCM Chrome v10/v20, claves BitLocker, hashes SAM/NTLM, detección de memoria inyectada y aproximadamente 55 walkers adicionales.
memf-stringsExtracción de cadenas (ASCII, UTF-8, UTF-16LE) con clasificación mediante regex en categorías de IoC: URLs, direcciones IP, dominios, claves de registro, direcciones de carteras cripto, claves privadas y comandos de shell.
memf-symbolsResolución de símbolos a partir de ISF JSON, BTF (Linux) y archivos PDB. Incluye AutoProfile: resolución de estructuras del kernel de Windows con configuración cero: escanea el volcado en busca de ntoskrnl, obtiene el PDB exacto de msdl.microsoft.com, lo analiza y devuelve un SymbolResolver. No se requiere archivo de símbolos.
memf-correlateCorrelación cruzada de artefactos con etiquetado de técnicas MITRE ATT&CK, reconstrucción del árbol de procesos, puntuación de anomalías y generación de líneas de tiempo.
forensic-hashdbBases de datos de hashes con cero falsos positivos: consulta de elementos conocidos como buenos NSRL/CIRCL, consulta de elementos conocidos como malos MalwareBazaar/VirusShare y hashes integrados de controladores vulnerables de Windows de loldrivers.io.