Parseurs BAM comparés : RegRipper, outils EZ, Velociraptor
Comparatif équitable des outils qui analysent BAM et DAM : bam.pl, plugin BamDam d'EZ, Velociraptor, Plaso et BAM/DAM Parser. Couverture et lacunes.
TL;DR. Tous les outils courants décodent correctement le FILETIME de BAM ; ils diffèrent par les clés qu'ils lisent. Le bam.pl de RegRipper ne lit que bam\State\UserSettings dans le control set courant. Le plugin BamDam d'Eric Zimmerman couvre les deux formats BAM et l'ancien chemin DAM dans tous les control sets. L'artefact Velociraptor lit les deux formats BAM à chaud et résout les noms d'utilisateur. Plaso intègre les deux formats BAM dans une super-timeline. BAM/DAM Parser lit BAM et DAM dans les deux formats et dans tous les control sets, nomme les SID grâce à SOFTWARE et tourne dans un navigateur — mais ne rejoue pas les journaux de transactions et n'a pas de mode sans interface. Choisissez selon le contexte, en sachant ce que chacun laisse de côté.
Nous développons l'un des outils de ce comparatif, donc la méthode compte : chaque affirmation sur un autre outil provient de son code source ou de sa documentation publiés, liés dans chaque section, en date de septembre 2026. Les outils évoluent ; vérifiez la version que vous utilisez. Si vous découvrez l'artefact, commencez par le guide complet BAM/DAM.
Matrice de couverture
RegRipper bam.pl | Plugin EZ BamDam (Registry Explorer / RECmd) | Velociraptor Windows.Forensics.Bam | Plugin Plaso bam | BAM/DAM Parser | |
|---|---|---|---|---|---|
| Entrée | Ruche hors ligne | Ruche hors ligne | Poste à chaud | Image/ruche hors ligne | Ruche(s), dossier, ZIP hors ligne |
bam\State\UserSettings (1809+) | ✓ | ✓ | ✓ | ✓ | ✓ |
bam\UserSettings (1709–1803) | — | ✓ | ✓ | ✓ | ✓ |
dam\UserSettings (ancien format) | — | ✓ | — | — | ✓ |
dam\State\UserSettings | — | absent de la liste de clés publiée | — | — | ✓ |
| Control sets | Courant seulement | Tous les ControlSet00* | CurrentControlSet (à chaud) | CurrentControlSet tel que résolu par Plaso | Tous, l'actif marqué |
| SID → nom | — | — | ✓ (via users()) | — | ✓ (ProfileList + SID bien connus) |
| Ruches dirty | À vérifier selon la version | Rejoue les journaux (Registry Explorer / RECmd) | Sans objet (à chaud) | Voir la documentation Plaso | Détecte et avertit ; pas de rejeu |
| Sortie | Rapport texte ; bam_tln.pl pour TLN | Grille, CSV via les batchs RECmd | Lignes VQL | Stockage Plaso → timelines | Tableau, CSV, JSON |
| Tourne sur | Windows/Perl | Windows (.NET) | Tout client Velociraptor | Python/Docker | Tout navigateur récent |
RegRipper bam.pl
Le plugin de Harlan Carvey (version 20200904 dans RegRipper 4.0) lit Select\Current, construit ControlSet00<n>\Services\bam\State\UserSettings et, pour chaque sous-clé SID, affiche chaque valeur REG_BINARY sous forme d'heure ISO-8601 suivie du nom de la valeur. Un plugin frère, bam_tln.pl, produit le format de timeline TLN.
Points forts : rapide, scriptable, intégré à une boîte à outils que la plupart des analystes utilisent déjà ; la sortie TLN s'insère directement dans une chaîne de timeline.
Lacunes, d'après le source : pas d'ancien bam\UserSettings (une image 1709–1803 renvoie « not found »), pas de dam, uniquement le control set courant, SID non résolus en noms. Pour une machine Windows 10 1809+ dont seul l'état BAM actuel vous intéresse, c'est suffisant.
Le plugin BamDam d'Eric Zimmerman (Registry Explorer, RECmd)
Le plugin RegistryPlugin.Bam (version 0.5) s'enregistre pour ControlSet00*\Services\bam\UserSettings\*, ControlSet00*\Services\dam\UserSettings\* et ControlSet00*\Services\bam\State\UserSettings\*, ignore Version et SequenceNumber, et restitue le chemin du programme et l'heure d'exécution en UTC. Registry Explorer et RECmd gèrent le rejeu des journaux de transactions pour les ruches dirty, ce qui est un vrai avantage.
Points forts : le plugin apparaît dès que vous parcourez une clé correspondante dans Registry Explorer, à côté de tous les autres artefacts du registre ; les batchs RECmd en tirent du CSV sur de nombreuses ruches ; le rejeu des journaux est intégré.
Lacunes, d'après le source : la liste de clés publiée n'inclut pas dam\State\UserSettings, si bien que les données DAM des appareils Modern Standby en 1809+ peuvent demander un examen manuel ; les SID ne sont pas résolus en noms dans la sortie du plugin.
Velociraptor Windows.Forensics.Bam
L'artefact parcourt par défaut HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\bam\UserSettings\*\* et ...\bam\State\UserSettings\*\* (un paramètre bamKeys permet de les changer), résout chaque SID avec le plugin users(), et renvoie SID, UserName, Binary et Bam_time. Un paramètre userRegex filtre les comptes.
Points forts : chasse sur tout un parc en quelques minutes ; données à chaud sans collecter de ruche ; noms d'utilisateur résolus sur le poste.
Lacunes : DAM n'est pas dans les chemins par défaut ; seul le CurrentControlSet à chaud est lu ; l'artefact s'exécute sur le poste, donc collecter aussi les fichiers de ruche reste sage pour la préservation de la preuve.
Plugin Plaso bam
L'analyseur de registre Windows de Plaso comprend un plugin BAM dont les filtres couvrent CurrentControlSet\Services\bam\UserSettings et ...\bam\State\UserSettings. Les événements rejoignent la super-timeline avec tous les autres artefacts extraits par Plaso.
Points forts : BAM à côté des événements du système de fichiers, des journaux et du navigateur dans une seule timeline.
Lacunes : pas de filtre DAM dans le plugin publié ; comme tout Plaso, plus lourd à exécuter qu'un outil dédié à un seul artefact.
BAM/DAM Parser (ce site)
Ce que fait l'outil : du Rust compilé en WebAssembly, exécuté dans un Web Worker ; lit bam et dam dans les deux formats dans chaque ControlSet00X, marque celui désigné par Select\Current, résout les SID via la ProfileList d'une ruche SOFTWARE et étiquette les SID bien connus, lit le nom de la machine et le fuseau horaire, détecte les ruches dirty, accepte fichiers isolés, dossiers et collectes ZIP de triage (en expliquant chaque fichier ignoré), signale quatre motifs heuristiques, exporte en CSV (protégé contre l'injection de formules) et en JSON.
Points forts : rien à installer, rien d'envoyé, fonctionne depuis un portable d'analyse verrouillé ; couverture complète des clés ; attribution et contexte de la machine sur un seul écran ; horodatages à 100 ns et données brutes conservés.
Lacunes, dites clairement :
- Pas de rejeu des journaux de transactions. L'outil vous prévient ; rejouez d'abord avec
rla.exeou Registry Explorer. - Pas d'analyse de la SAM — les noms viennent des dossiers de profil, qui peuvent ne pas correspondre à des comptes renommés (réserves sur l'attribution).
- Pas de mode ligne de commande / sans interface pour traiter des centaines de machines en lot ; utilisez RECmd, Plaso ou Velociraptor pour cela.
- Un seul artefact. Il ne traite que BAM/DAM ; le reste du registre relève de Registry Parser ou des outils ci-dessus.
Choisir
| Situation | Choix raisonnable |
|---|---|
| Chasse à chaud sur un parc pour un nom d'outil | Velociraptor |
| Revue complète du registre d'une image sur un poste forensique Windows | Registry Explorer (plugin BamDam) |
| Traitement scripté de nombreuses ruches vers du CSV | RECmd ou RegRipper |
| Super-timeline d'une image | Plaso |
| Coup d'œil rapide et confidentiel sur une ruche SYSTEM, avec utilisateurs et DAM, n'importe où | BAM/DAM Parser |
| Image ancienne 1709–1803 | Tout sauf bam.pl |
Croiser les outils
Pour tout ce qui entre dans un rapport, analysez la même ruche avec deux outils et comparez le nombre d'entrées par SID. Les écarts viennent presque toujours de la couverture (ancien format, DAM, autres control sets) ou du rejeu des journaux. Notre guide pas à pas montre où chacun de ces éléments apparaît dans l'interface, et l'article sur le format explique chaque colonne au niveau de l'octet.