
Этот инструмент генерирует мнемонические фразы BIP-39, производные от временных меток Unix, исследуя последствия уязвимости 'Milk Sad' (CVE-2023-39910)
Этот инструмент предназначен для генерации BIP-39 мнемонических фраз (сид-фраз из 24 слов) на основе меток времени Unix, а именно для поиска фраз, которые могли быть сгенерированы через уязвимость «Milk Sad» (CVE_2023-39910).
Генератор мнемонических фраз Milk Sad создаёт 24-словные BIP-39 мнемонические фразы, используя метки времени Unix в качестве источника энтропии. Его цель — сгенерировать все возможные сид-фразы, которые могли быть получены из-за конкретного дефекта сбора энтропии на основе меток времени, связанного с уязвимостью «Milk Sad».
У вас есть два варианта установки и запуска на вашей системе:
install.shЭтот скрипт автоматизирует процесс компиляции и обрабатывает общие зависимости для Linux-систем на базе Debian/Ubuntu.
cd MilkSad-Mnemonic-Generator
chmod +x install.sh
./install.sh
g++, make, qmake, libssl-dev, libqt5widgets5-dev). Если каких-либо из них не хватает, он попытается установить их (при необходимости запросив ваш sudo-пароль). После успешной настройки зависимостей он скомпилирует как CLI, так и GUI-приложения и поместит их непосредственно в корневой каталог проекта.Если вы предпочитаете компилировать приложения самостоятельно, выполните следующие ручные шаги:
Убедитесь, что в вашей системе Debian/Ubuntu установлены следующие пакеты разработки:
g++ (обычно входит в пакет build-essential)make (также входит в build-essential)qmake (предоставляется пакетами qt5-qmake или qtbase5-dev)libssl-dev (необходим для криптографических функций, используемых инструментом)libqt5widgets5-dev (требуется для разработки Qt GUI; этот пакет часто включает qtbase5-dev)Вы можете установить эти предварительные требования с помощью:
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, чтобы сгенерировать Makefile для проекта Qt:
qmake mnemonic_generator.pro
make:
make
mv milk_sad_generator_gui ../../
cd ../..
Pic/: чтобы GUI правильно находил своё фоновое изображение, необходимо переместить папку Pic/ из src/gui/ в корень проекта:
mv src/gui/Pic .
После установки вы найдёте два исполняемых файла непосредственно в корневом каталоге проекта: ./milk_sad_generator (версия с интерфейсом командной строки) и ./milk_sad_generator_gui (версия с графическим интерфейсом).
./milk_sad_generator_gui # To launch the GUI application
# OR
./milk_sad_generator # To launch the CLI application
Этот режим генерирует одну 24-словную мнемоническую фразу для точной даты и времени, которые вы укажете.
1970-01-01 00:00:00 для первой метки времени. Если выбран английский, будет сгенерирована мнемоника «milk sad ...».mnemonic_[language].txt.Этот режим генерирует мнемоники для каждой метки времени в указанном диапазоне дат начала и окончания.
2017-01-01:2018-12-31 (это сгенерирует мнемоники для всех меток времени с 1 января 2017 года по 31 декабря 2018 года включительно.)mnemonics_range_[language].txt.Ctrl+C) и позже возобновить её без потери прогресса.Этот режим генерирует все возможные мнемоники во всём 32-битном диапазоне меток времени Unix (с 1 января 1970 года по 19 января 2038 года).
all_mnemonics_[language].txt.mnemonic_[language].txtmnemonics_range_[language].txtall_mnemonics_[language].txtgeneration_progress_range.bin (для Варианта 2) / generation_progress_full.bin (для Варианта 3)Ctrl+C. Инструмент автоматически сохранит текущий прогресс..bin будет автоматически удалён.Если вам пришлось остановить процесс генерации (например, с помощью Ctrl+C), вы можете без проблем возобновить его с того места, где остановились:
Для генерации диапазона дат (Вариант 2):
generation_progress_range.bin и продолжит генерацию с последней сохранённой метки времени.Для генерации полного диапазона (Вариант 3):
generation_progress_full.bin и возобновит генерацию с точки, где она была прервана..bin (generation_progress_range.bin или generation_progress_full.bin), если вы планируете возобновить генерацию..bin и переименовать/удалить/переместить любые существующие выходные файлы (mnemonics_range_[language].txt или all_mnemonics_[language].txt) от предыдущих запусков перед повторным запуском программы.all_mnemonics_[language].txt уже существует, файл прогресса .bin будет перезаписан, а новые мнемоники будут добавлены в конец существующего выходного файла.Вот пример 24-словной BIP-39 мнемонической фразы, сгенерированной этим инструментом:
vault alarm sad mass witness property virus style good flower rice alpha viable evidence run glare pretty scout evil judge offer refuse another breeze
Для целей проверки или быстрого ознакомления каталог tests/ в этом репозитории содержит примеры сгенерированных мнемонических фраз на различных языках для метки времени 1970-01-01 00:00:00 UTC.
Чтобы преобразовать сгенерированные мнемонические фразы в биткоин-адреса (с поддержкой форматов P2PKH, P2SH-P2WPKH и P2WPKH), вы можете использовать этот инструмент:
Если вы нашли этот проект полезным и хотите поддержать меня в создании подобных инструментов, рассмотрите возможность пожертвования:
bc1qg7xmlsdxfgu3muxherh4eee2ywj3gz8qfgct3s0x1B449E1D545bD0dc50f361d96706F6C904553929F776tt1it7vifCzD9icrsby3ujkZdJ8EY9917GUM3skrTJj96B4SukPJSC4M2FyssoxduVyviv9aGr0x1B449E1D545bD0dc50f361d96706F6C90455392948aaDb1g4Ms7PB3WMj6ttbMWuEwe171d6Yjao59uFJR38tHa75nKwPqYoPAYmWZPUhXmDbDvqtE6d2FX3YaF1dVE7zhD9Dt