
Dieses Tool generiert BIP-39-Mnemonic-Phrasen, die aus Unix-Zeitstempeln abgeleitet werden, und untersucht die Auswirkungen der 'Milk Sad'-Sicherheitslücke (CVE-2023-39910)
Dieses Tool wurde entwickelt, um BIP-39-Mnemonik-Phrasen (24-Wort-Seed-Phrasen) basierend auf Unix-Zeitstempeln zu generieren, wobei speziell Phrasen untersucht werden, die durch die "Milk Sad"-Sicherheitslücke (CVE_2023-39910) erzeugt werden könnten.
Der Milk Sad Mnemonik-Generator erstellt 24-Wort-BIP-39-Mnemonik-Phrasen, indem er Unix-Zeitstempel als Entropiequelle nutzt. Ziel ist es, alle möglichen Seed-Phrasen zu generieren, die aufgrund des spezifischen, auf Zeitstempeln basierenden Entropiesammlungsfehlers im Zusammenhang mit der "Milk Sad"-Sicherheitslücke entstanden sein könnten.
Sie haben zwei Möglichkeiten, das Tool auf Ihrem System zu installieren und auszuführen:
install.sh-Skript verwendenDieses Skript automatisiert den Kompilierungsprozess und kümmert sich um übliche Abhängigkeiten für Debian/Ubuntu-basierte Linux-Systeme.
cd MilkSad-Mnemonic-Generator
chmod +x install.sh
./install.sh
Das Skript prüft auf notwendige Build-Tools (wie g++, make, qmake, libssl-dev, libqt5widgets5-dev). Falls welche fehlen, wird versucht, sie zu installieren (dabei wird nach Ihrem sudo-Passwort gefragt). Nach erfolgreicher Einrichtung der Abhängigkeiten werden sowohl die CLI- als auch die GUI-Anwendung kompiliert und direkt im Stammverzeichnis des Projekts platziert.Wenn Sie die Anwendungen lieber selbst kompilieren möchten, folgen Sie diesen manuellen Schritten:
Stellen Sie sicher, dass die folgenden Entwicklungspakete auf Ihrem Debian/Ubuntu-System installiert sind:
g++ (normalerweise Teil des build-essential-Pakets)make (ebenfalls Teil von build-essential)qmake (bereitgestellt durch qt5-qmake oder qtbase5-dev)libssl-dev (essentiell für die vom Tool verwendeten kryptografischen Funktionen)libqt5widgets5-dev (erforderlich für die Qt-GUI-Entwicklung; dieses Paket enthält oft qtbase5-dev)Sie können diese Voraussetzungen mit folgendem Befehl installieren:
sudo apt update
sudo apt install build-essential qt5-qmake libssl-dev qtbase5-dev
cd src/cli
g++:
g++ -std=gnu++11 -Wall -Wextra -O2 milk_sad_generator.cpp -o milk_sad_generator -lcrypto -lssl
mv milk_sad_generator ../../
cd ../..
cd src/gui
qmake aus, um die Makefile für das Qt-Projekt zu erstellen:
qmake mnemonic_generator.pro
make:
make
mv milk_sad_generator_gui ../../
cd ../..
Pic/-Ordner: Damit die GUI ihr Hintergrundbild korrekt findet, müssen Sie den Pic/-Ordner von src/gui/ in das Projekt-Stammverzeichnis verschieben:
mv src/gui/Pic .
Nach der Installation finden Sie zwei ausführbare Dateien direkt im Stammverzeichnis Ihres Projekts: ./milk_sad_generator (die Kommandozeilenversion) und ./milk_sad_generator_gui (die grafische Benutzeroberflächenversion).
./milk_sad_generator_gui # Zum Starten der GUI-Anwendung
# ODER
./milk_sad_generator # Zum Starten der CLI-Anwendung
Dieser Modus generiert eine einzelne 24-Wort-Mnemonik-Phrase für ein präzises Datum und eine Uhrzeit Ihrer Wahl.
1970-01-01 00:00:00 für den ersten Zeitstempel. Wenn Englisch gewählt wurde, wird die Mnemonik "milk sad ..." generiert.mnemonic_[language].txt gespeichert.Dieser Modus generiert Mnemoniken für jeden Zeitstempel innerhalb eines angegebenen Start- und Enddatumsbereichs.
2017-01-01:2018-12-31 (Dies generiert Mnemoniken für alle Zeitstempel zwischen dem 1. Januar 2017 und dem 31. Dezember 2018, inklusive.)mnemonics_range_[language].txt gespeichert.Strg+C) und später ohne Datenverlust fortzusetzen.Dieser Modus generiert alle möglichen Mnemoniken über den gesamten 32-Bit-Unix-Zeitstempelbereich (vom 1. Januar 1970 bis zum 19. Januar 2038).
all_mnemonics_[language].txt gespeichert.mnemonic_[language].txtmnemonics_range_[language].txtall_mnemonics_[language].txtgeneration_progress_range.bin (für Option 2) / generation_progress_full.bin (für Option 3)Strg+C sicher stoppen. Das Tool speichert automatisch den aktuellen Fortschritt..bin-Fortschrittsdatei automatisch gelöscht.Falls Sie die Generierung unterbrechen mussten (z. B. mit Strg+C), können Sie nahtlos an der Stelle weitermachen, an der Sie aufgehört haben: