EXE / DLL Verzeichnisnamen durch Verketten Hexstring des „Datei geändert“ Zeitstempels und „SizeOfImage“ von IMAGE_OPTIONAL_HEADER
Ich versuche herauszufinden, welcher Hashalgorithmus für das Microsoft Symbol Local Cache-Verzeichnis verwendet wird.
Der lokale Cache kann beispielsweise so aussehen:
%Vor%Es scheint eine Art Korrespondenz zwischen einer Datei und ihrer Debug-Datenbank zu geben. Ansonsten kann ich nicht herausfinden, wie die Namen dieser (vermutlich) hexadezimalen Zeichenkettenordner erzeugt werden.
Einige von ihnen sind 9 Ziffern, einige 13 Ziffern und andere sind 33 Ziffern. Es sieht so aus, als ob eine aktuelle Live-Datei (die aus irgendeinem Grund im Symbol-Cache gespeichert ist) einen 13-stelligen Hash-Wert hat, während ihre (fast ähnliche) Debug-Datenbank einen 9-stelligen Hashwert erhält. Einige Debug-Datenbanken erhalten einen 13-stelligen Hash; kann nicht herausfinden, was diese speziell macht, obwohl sie keine entsprechende Live-Datei haben.
Ich habe versucht, die Dateien mit jeder Art von Hash-Algorithmus, die ich kenne (39 von ihnen) Hashing und keine Übereinstimmung in irgendeiner Weise (gerade, umgekehrte, alternative Endian, etc.)
Irgendwelche Ideen?
Aktualisieren Ich glaube, ich habe es endlich gefunden. Von Symbolspeicherformat :
SymStore verwendet das Dateisystem selbst als Datenbank. Es erstellt einen großen Verzeichnisbaum mit Verzeichnisnamen, die auf den Zeitstempel der Symboldatei, den Signaturen, dem Alter und anderen Daten basieren.
Bearbeiten Dang, leider erwähnt es nur, dass der Verzeichnisname von verschiedenen Aspekten abgeleitet ist (nicht ganz ein Hash, denke ich), aber nicht genau wie. Die Suche wird fortgesetzt ...: - (
Diese Seite enthält Informationen bei der Berechnung der IDs für die Symboldateien sowie ausführbare Dateien / DLLs.
Grundsätzlich extrahieren Sie für ausführbare Dateien und DLLs den Zeitstempel und die Dateigröße aus dem PE-Header, wie auf der Seite aufgelistet, mit der Griff verknüpft ist. Für PDB-Dateien benötigen Sie jedoch den DBH-Befehl aus den Windows-Debugging-Tools. Laden Sie einfach die PDB-Datei in DBH und verwenden Sie den Befehl INFO, um die PdbSig / PdbSig70 und PdbAge abzurufen. Bam! Das ist es.
Ich habe gerade die passenden Ordner für die PDB-Dateien erstellt, die ich aus irgendeinem Grund in meinem SYSTEM32-Ordner hatte, und schließlich in den lokalen Symbolspeicher verschoben.
EXE / DLL Verzeichnisnamen durch Verketten Hexstring des „Datei geändert“ Zeitstempels und „SizeOfImage“ von IMAGE_OPTIONAL_HEADER
Tags und Links hash symbol-server symstore