
このツールは、Unixタイムスタンプに基づいてBIP-39ニーモニックフレーズ(24語のシードフレーズ)を生成するために設計されており、特に「Milk Sad」脆弱性(CVE_2023-39910)を通じて生成される可能性のあるフレーズを探索します。
Milk Sadニーモニックジェネレーターは、Unixタイムスタンプをエントロピー源として利用し、24語のBIP-39ニーモニックフレーズを生成します。これは、「Milk Sad」脆弱性に関連する特定のタイムスタンプベースのエントロピー収集の欠陥によって生成された可能性のあるすべてのシードフレーズを生成することを目的としています。
システムにインストールして実行する方法は2つあります。
install.shスクリプトを使用するこのスクリプトは、Debian/UbuntuベースのLinuxシステム向けにコンパイルプロセスを自動化し、一般的な依存関係を処理します。
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を実行してQtプロジェクトのMakefileを生成します:
qmake mnemonic_generator.pro
makeを使用してGUIアプリケーションをコンパイルします:
make
mv milk_sad_generator_gui ../../
cd ../..
Pic/フォルダを移動します: GUIが背景画像を正しく見つけられるように、Pic/フォルダをsrc/gui/からプロジェクトのルートに移動する必要があります:
mv src/gui/Pic .
インストールが完了すると、プロジェクトのルートディレクトリに2つの実行ファイルがあります: ./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(これにより、2017年1月1日から2018年12月31日までのすべてのタイムスタンプのニーモニックが生成されます。両端を含みます。)mnemonics_range_[language].txtに保存されます。Ctrl+Cを押す)し、進行状況を失うことなく後で再開できます。このモードは、32ビットUnixタイムスタンプ全体の範囲(1970年1月1日から2038年1月19日まで)にわたって、可能なすべてのニーモニックを生成します。
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が既に存在する同じ言語で「全範囲」生成(オプション3)を開始した場合、.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タイムスタンプに対するさまざまな言語の生成済みニーモニックフレーズの例が含まれています。
生成したニーモニックフレーズをBitcoinアドレス(P2PKH、P2SH-P2WPKH、P2WPKH形式に対応)に変換するには、次のツールを使用できます:
このプロジェクトが役に立ったと思われた場合、そしてこのようなツールをもっと作成する励みにしたい場合は、寄付をご検討ください:
bc1qg7xmlsdxfgu3muxherh4eee2ywj3gz8qfgct3s0x1B449E1D545bD0dc50f361d96706F6C904553929F776tt1it7vifCzD9icrsby3ujkZdJ8EY9917GUM3skrTJj96B4SukPJSC4M2FyssoxduVyviv9aGr0x1B449E1D545bD0dc50f361d96706F6C90455392948aaDb1g4Ms7PB3WMj6ttbMWuEwe171d6Yjao59uFJR38tHa75nKwPqYoPAYmWZPUhXmDbDvqtE6d2FX3YaF1dVE7zhD9Dt