Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
hashdeep — Plattformübergreifendes Hash-Toolset zur Berechnung von Nachrichten-Digests (MD5, SHA-1, SHA-256, Tiger, Whirlpool) mit rekursivem Verzeichnisdurchlauf und Dateiintegritätsprüfungsfunktionen. | Kitploit
Tools/GitHubGitHub/jessek/hashdeep
Hash-AnalyseForensikDatenwiederherstellungDigitale Forensik
GitHubjessek/hashdeep

hashdeep

Plattformübergreifendes Hash-Toolset zur Berechnung von Nachrichten-Digests (MD5, SHA-1, SHA-256, Tiger, Whirlpool) mit rekursivem Verzeichnisdurchlauf und Dateiintegritätsprüfungsfunktionen.

Repository anzeigen
786135vor 8 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Dies ist md5deep, eine Sammlung plattformübergreifender Werkzeuge zur Berechnung von Hashwerten (Nachrichtendigesten) für beliebig viele Dateien, wobei optional rekursiv durch die Verzeichnisstruktur navigiert wird. Es kann auch eine Liste bekannter Hashwerte einlesen und die Dateinamen der Eingabedateien anzeigen, deren Hashwerte entweder mit den bekannten Hashwerten übereinstimmen oder nicht. Diese Version unterstützt MD5-, SHA-1-, SHA-256-, Tiger- und Whirlpool-Hashwerte.

Siehe die Datei NEWS für eine Liste der Änderungen zwischen den Versionen.

Siehe die Datei COPYING für Informationen zur Lizenzierung dieses Programms.

Siehe die Datei INSTALL für (allgemeine) Kompilierungs- und Installationsanweisungen. Hier die Kurzversion, die in vielen Fällen funktionieren sollte:

root@kitploit:~
sh bootstrap.sh # führt autoconf, automake aus
./configure
make
make install

Beachten Sie, dass Sie normalerweise root sein müssen, um in das Standardverzeichnis zu installieren. Der Befehl sudo ist dabei hilfreich. Sie können ein alternatives Installationsverzeichnis mit der Option --prefix des configure-Skripts angeben. Um beispielsweise nach /home/foo/bin zu installieren, verwenden Sie:

$ ./configure --prefix=/home/foo

Es gibt vollständige Dokumentation zur Verwendung des Programms auf der Projekt-Startseite: https://github.com/jessek/hashdeep

Release-Hashwerte

Die neueste Version ist 4.4. Hier sind die Hashwerte für die Win32-Versionen:

  • MD5 047ff5311d821f667150f37695bd01b3
  • SHA256 d5e85933e74e5ba6a73f67346bc2e765075d26949c831a428166c92772f67dbc

md5deep vs. hashdeep

Aus historischen Gründen hat das Programm unterschiedliche Optionen und Funktionen, wenn es unter den Namen "hashdeep" und "md5deep" ausgeführt wird.

hashdeep hat eine Funktion namens "Audit", die eine Liste bekannter Hashwerte verwenden kann, um eine Reihe von DATEIEN zu prüfen. Fehler werden auf die Standardfehlerausgabe gemeldet. Wenn keine DATEIEN angegeben werden, wird von der Standardeingabe gelesen.

root@kitploit:~
-a Audit-Modus. Jede Eingabedatei wird mit der Menge der bekannten Hashwerte verglichen. Ein
   Audit gilt als bestanden, wenn jede Eingabedatei genau einer Datei in der Menge der
   bekannten Dateien zugeordnet wird. Kollisionen, neue Dateien oder fehlende Dateien
   führen dazu, dass das Audit fehlschlägt. Die alleinige Verwendung dieses Flags erzeugt eine Meldung,
   entweder "Audit passed" oder "Audit Failed".
   -v = gibt die Anzahl der Dateien in jeder Kategorie aus
   -v -v = gibt alle Abweichungen aus
   -v -v -v = gibt die Ergebnisse für jede untersuchte Datei und jede bekannte Datei aus.

-k <datei> - Die Option -k muss verwendet werden, um die Audit-Datei zu laden

Zur Durchführung eines Audits:

root@kitploit:~
hashdeep -r verzeichnis  > /tmp/auditdatei            # Audit-Datei erstellen
hashdeep -a -k /tmp/auditdatei -r verzeichnis          # Audit testen

Beachten Sie, dass das Audit mit einer standardmäßigen hashdeep-Ausgabedatei durchgeführt wird. (Intern wird das Audit als Teil des Hashvorgangs berechnet.)

Unicode-Probleme

Moderne POSIX-basierte Computersysteme betrachten Dateinamen als eine Byte-Sequenz, die von der Anwendung nach Belieben dargestellt wird. Dies bedeutet, dass Dateinamen typischerweise ASCII enthalten, aber auch UTF-8, UTF-16, Latin1 oder sogar ungültige Unicode-Kodierungen enthalten können.

Windows-basierte Systeme haben einen Satz von API-Aufrufen für ASCII-basierte Dateinamen und einen weiteren für Dateinamen, die als UCS-2 kodiert sind, was "ein Format mit fester Länge erzeugt, indem einfach der Codepunkt als 16-Bit-Code-Einheit verwendet wird und für 63.488 Codepunkte im Bereich 0-0xFFFF genau das gleiche Ergebnis wie UTF-16 liefert", laut Wikipedia. Aber Wikipedia bestreitet auf der Diskussionsseite die sachliche Richtigkeit dieser Aussage. Es ist ziemlich klar, dass niemand genau weiß, was Windows tatsächlich tut, und Windows selbst möglicherweise nicht konsistent ist.

Version 3 dieses Programms hat dieses Problem gelöst, indem die Variable TCHAR verwendet wurde, um Dateinamen unter Windows zu speichern, und die Ausgabe verweigert wurde, stattdessen ein "?" ausgegeben wurde. Version 4 dieses Programms wandelt TCHAR-Zeichenfolgen bei der erstbesten Gelegenheit mit der Windows-Funktion WideCharToMultiByte in std::string-Zeichenfolgen um. Es wurden Flags hinzugefügt, um Unicode bei der Ausgabe zu escapen.

Es gibt (anscheinend) keine Möglichkeit unter Windows, eine UTF-8-Dateinamen zu öffnen; er muss mit MultiByteToWideChar zurück in einen Multibyte-Dateinamen konvertiert werden.

Glücklicherweise müssen wir nie wirklich zurückkonvertieren.

Beachten Sie, dass unter Windows die gehashten Dateien Unicode-Zeichen enthalten können, aber die Datei mit den Hashwerten muss einen ASCII-Namen haben.

KOMPILIEREN FÜR WINDOWS:

-D_UNICODE bewirkt, dass TCHAR als 'wchar_t' definiert wird.

KOMPILIEREN FÜR POSIX:

-D_UNICODE ist nicht definiert, sodass TCHAR als 'char' definiert wird.

Zuvor wurden Win32-Funktionen mit #ifdef-Anweisungen gesteuert, wie folgt:

root@kitploit:~
#ifdef _WIN32
  _wfullpath(d_name,fn,PATH_MAX);
#else
  if (NULL == realpath(fn,d_name))
    return TRUE;
#endif

Es gab auch eine Datei namens tchar-local.h, die tatsächlich die Semantik von Funktionen auf verschiedenen Plattformen änderte, mit Dingen wie:

root@kitploit:~
   #define  _tcsncpy   strncpy
   #define  _tstat_t   struct stat

Dies machte den Code sehr schwer wartbar.

Mit der Neufassung 4.0 haben wir diesen Code mit C++-Funktionen geändert, die nach Möglichkeit Objekte zurückgeben, und die Verwendung von #defines vermieden, sodass unter _WIN32-Systemen die Funktion realpath() vor ihrer Verwendung definiert wird und der Hauptcode die Funktion realpath() nicht enthält. Dies sehen Sie in cycles.cpp:

root@kitploit:~
/* Gibt den kanonischen absoluten Pfadnamen in UTF-8 auf Windows- und POSIX-Systemen zurück */
std::string get_realpath(const TCHAR *fn)
{
#ifdef _WIN32
    /*
     * erweitert einen relativen Pfad zum vollständigen Pfad.
     * http://msdn.microsoft.com/en-us/library/506720ff(v=vs.80).aspx
     */
    TCHAR absPath[PATH_MAX];
    if(_fullpath(absPath,fn,PAT_HMAX)==0) return "";
    return tchar_to_utf8(absPath);
#else
    char resolved_name[PATH_MAX];	//
    if(realpath(fn,resolved_name)==0) return "";
    return string(resolved_name);
#endif
}

Sie können MinGW installieren und dann einfach mit so etwas konfigurieren:

$ export PATH=$PATH:/usr/local/i386-mingw32-4.3.0/bin $ ./configure --host=i386-mingw32

Referenzen zu Hash-Algorithmen

Der MD5-Algorithmus ist in RFC 1321 definiert: http://www.ietf.org/rfc/rfc1321.txt

Der SHA1-Algorithmus ist in FIPS 180-1 definiert: http://www.itl.nist.gov/fipspubs/fip180-1.htm

Der SHA256-Algorithmus ist in FIPS 180-2 definiert: http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf

Der Tiger-Algorithmus ist definiert unter: http://www.cs.technion.ac.il/~biham/Reports/Tiger/

Der Whirlpool-Algorithmus ist definiert unter: http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html

Funktionsweise

  • main.cpp
    • richtet das System ein
  • dig.cpp
    • durchläuft die einzelnen Verzeichnisse
    • ruft hash_file() in hash.cpp für jede zu hashende Datei auf
  • hash.cpp
    • führt das Hashing jeder Datei durch
  • display.cpp
    • speichert/zeigt die Ergebnisse an
Tool herunterladen