Wie lese ich Amcache.hve unter Linux oder macOS?

Sie brauchen kein Windows, um Amcache zu lesen. Drei gute Optionen, in der Reihenfolge von „Produktions-DFIR" bis „schnelle Triage":

Option 1 — dotnet AmcacheParser.dll (empfohlen für Analysten)#

Eric Zimmerman veröffentlicht einen framework-abhängigen .NET-Build von AmcacheParser, der überall läuft, wo .NET läuft. Dasselbe Tool, dieselben Flags, dieselbe Ausgabe wie unter Windows.

# Install .NET runtime
# Debian/Ubuntu
sudo apt install dotnet-runtime-6.0
 
# RHEL/Fedora
sudo dnf install dotnet-runtime-6.0
 
# macOS
brew install dotnet
 
# Then run AmcacheParser
dotnet /opt/ztools/net6/AmcacheParser/AmcacheParser.dll \
  -f   /cases/inc-042/HOST01/Amcache.hve \
  --csv /cases/inc-042/HOST01/out \
  --csvf HOST01_amcache.csv \
  --mp

Dieselben per-Kategorie-CSVs, die Sie unter Windows erhalten würden. Das ist die richtige Wahl für vollständige Untersuchungen auf einem Nicht-Windows-Analysten-Host.

Option 2 — browserbasiert (keine Installation)#

Ziehen Sie Amcache.hve auf die Startseite dieser Seite und der Parser läuft vollständig in Ihrem Browser. Die Datei verlässt Ihren Browser nie — das Parsen ist clientseitiges, nach WebAssembly kompiliertes Rust. Funktioniert auf:

  • Jedem Desktop-/Laptop-OS mit einem modernen Browser (Chrome, Firefox, Safari, Edge).
  • ChromeOS, BSD, allem mit einem Browser.
  • Mobilgeräten (Android, iOS) — auch wenn die UI desktop-first ist.

Am besten für Triage, Ausbildung und schnelle Lookups, wenn Sie nichts installieren wollen. Für vollständige Untersuchungen verwenden Sie Option 1.

Option 3 — libhivex / Python#

Für programmatischen Zugriff hat libhivex (die Linux-Registry- Hive-Bibliothek) Python-Bindungen:

import hivex
h = hivex.Hivex('/cases/inc-042/HOST01/Amcache.hve')
root = h.root()
# Walk Root\InventoryApplicationFile
inv = h.node_get_child(root, 'Root')
inv_files = h.node_get_child(inv, 'InventoryApplicationFile')
for child in h.node_children(inv_files):
    name = h.node_name(child)
    values = {h.value_key(v): h.value_value(v) for v in h.node_values(child)}
    print(name, values)

Sie müssen Windows-FILETIME-Werte dekodieren, das Format "0000" + SHA-1 von FileId parsen und den Baum selbst ablaufen. Es gibt keinen fertigen Python-Amcache-Parser mit demselben CSV-Schema wie AmcacheParser — aber wenn Sie programmatischen / skriptbasierten Zugriff brauchen, ist hivex das richtige Primitiv.

Was ist mit Volatility?#

Wenn Sie nur ein Windows-Speicher-Image (keine Disk) haben, verwenden Sie Volatility, um die In-Memory-Kopie von Amcache auszugeben, dann füttern Sie die ausgegebene Datei einer der obigen Optionen.

# Volatility 3 — find the hive in the hive list
vol -f memory.dmp windows.registry.hivelist | grep -i amcache
 
# Dump it
vol -f memory.dmp windows.registry.dumphive --offset 0xfffff8a0... > Amcache.hve
 
# Then parse with AmcacheParser as above

Siehe Volatility und Amcache für den vollständigen Speicher-Extraktions-Workflow.

Schnelle Entscheidung#

Sie möchten... Verwenden Sie
Vollständige Untersuchung, strukturierte CSV Option 1 (dotnet AmcacheParser.dll)
Schnelle Triage / einmaliger Blick Option 2 (Browser)
Eigenes Skript / Pipeline-Integration Option 3 (libhivex / Python)
Parsen aus einem Speicher-Dump Volatility → Option 1

Für den breiteren Artefakt-Kontext siehe die vollständige Amcache-Referenz.

Verwandte Beiträge

  • Warum ist meine Amcache.hve leer?

    Drei häufige Ursachen: Der Compatibility Appraiser ist deaktiviert, der Host wurde frisch installiert oder Sie sammeln von einem Server / Server Core, auf dem der Appraiser viel seltener läuft.

  • Wo ist der Amcache-Registry-Schlüssel?

    Amcache ist eine eigene Hive-Datei unter C:\Windows\AppCompat\Programs\Amcache.hve — kein Schlüssel unter HKLM. Beim Laden durch Tools oder durch Windows selbst wird sie als HKLM\Amcache eingehängt.

  • Was enthält Amcache.hve?

    Amcache.hve enthält Inventar-Datensätze für jedes PE-Binärprogramm, jeden Treiber und jedes verbundene Gerät, das der Windows Compatibility Appraiser gesehen hat — mit SHA-1-Hashes, Pfaden, Herausgebern und Zeitstempeln.

  • Was ist eine .pf-Datei vs. ein Amcache-Eintrag?

    .pf-Dateien sind Windows-Prefetch-Datensätze — Beweis, dass ein Binärprogramm ausgeführt wurde, mit Run-Zeitstempeln und Listen geladener Dateien. Amcache-Einträge zeichnen Präsenz auf, mit dem SHA-1-Hash und Metadaten.

Zurück zu allen Beiträgen