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 \
--mpDieselben 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 aboveSiehe 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.