Tous les articles

Premiers pas avec ramparser

3 min de lecture

ramparser est un outil d'analyse forensique mémoire de style Volatility qui s'exécute entièrement dans le navigateur. L'image que vous sélectionnez ne quitte jamais l'appareil : aucun envoi, aucune analyse côté serveur, aucune télémétrie. La raison de cette conception est pratique, pas idéologique : une image RAM d'un incident réel contient des identifiants en clair, des jetons de session, des documents déchiffrés et des données personnelles, et ce ne sont pas des artefacts que l'on envoie à un tiers.

Comment cela fonctionne

  1. Vous choisissez une image mémoire brute via le sélecteur de fichier.
  2. Un Web Worker charge un moteur Rust compilé en WebAssembly.
  3. Le moteur lit l'image par pages de 4 Kio via FileReaderSync, donc une image de 32 Go est traitée sans jamais être chargée en mémoire.
  4. L'OS est détecté automatiquement : la bannière noyau Linux Linux version pour Linux, le premier _EPROCESS valide (avec son enregistrement RSDS CodeView) pour Windows.
  5. Chaque plugin applicable s'exécute automatiquement, chacun diffusant sa propre progression et affichant son propre tableau.

Plugins

PluginOSRôle
psscanWindowsScan de pool-tag pour allocations _EPROCESS
pslistWindowsParcours de ActiveProcessLinks depuis le processus System
psxviewWindowsDiff psscan vs pslist, signale les lignes HIDDEN
pstreeWindowsHiérarchie parent/enfant depuis psscan
cmdlineWindowsLigne de commande du processus via le PEB
dlllistWindowsModules chargés via les données du loader PEB
modscanWindowsScan de pool-tag pour modules noyau (MmLd)
netscanWindowsScan pool des objets réseau (expérimental)
taskscanLinuxScan heuristique de task_struct (expérimental)

Comparer pslist à psscan est la méthode classique pour repérer les processus qu'un rootkit a déliés par DKOM. Voir pslist vs psscan vs psxview. pslist, modscan et netscan résolvent les adresses virtuelles noyau via le DTB du processus System (PID 4).

Traduction d'adresses, brièvement

cmdline et dlllist traduisent le PEB de chaque processus via ses propres tables de pages. ramparser implémente la traduction d'adresses x64 à 4 niveaux (PML4 → PDPT → PD → PT, pages larges 1 Gio et 2 Mio incluses), donc les lectures mémoire utilisateur fonctionnent correctement sans symboles.

Windows : internes de psscan

L'analyseur Windows est un scanner pool-tag de type psscan. Il cherche les allocations _POOL_HEADER taguées Proc et valide chaque _EPROCESS candidat par des heuristiques structurelles : PID plausible, nom d'image imprimable, DirectoryTableBase aligné sur la page, pointeur de liste noyau canonique.

Les offsets de structures dépendent du build. Les valeurs par défaut visent Windows 10/11 x64 (~build 19041). Pour des builds plus anciens ou inhabituels, les offsets peuvent être surchargés via WinProfile dans le moteur. Le PDB ntoskrnl est récupéré (son GUID et son âge uniquement) pour que pslist et consorts utilisent les offsets exacts pour ce build.

Linux : taskscan

L'analyseur Linux est un scan task_struct expérimental ancré sur le champ comm. Les agencements noyau varient beaucoup selon les distributions et versions, traitez donc les résultats comme un point de départ plutôt que comme une vérité, jusqu'à ce qu'un véritable profil noyau soit fourni.

Suite