此工具旨在基于 Unix 时间戳生成 BIP-39 助记词短语(24 词种子短语),专门用于探索可能通过 "Milk Sad" 漏洞(CVE_2023-39910)生成的短语。
Milk Sad 助记词生成器通过利用 Unix 时间戳作为熵源来生成 24 词 BIP-39 助记词短语。其目标是生成所有可能因与 "Milk Sad" 漏洞相关的特定基于时间戳的熵收集缺陷而产生的种子短语。
你有两种方式在系统上安装和运行:
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 .
安装完成后,你会在项目的根目录中找到两个可执行文件:./milk_sad_generator(命令行界面版本)和 ./milk_sad_generator_gui(图形用户界面版本)。
./milk_sad_generator_gui # 启动 GUI 应用程序
# 或
./milk_sad_generator # 启动 CLI 应用程序
此模式为你指定的精确日期和时间生成单个 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 时间戳生成的各种语言的助记词短语示例。
要将生成的助记词短语转换为比特币地址(支持 P2PKH、P2SH-P2WPKH 和 P2WPKH 格式),你可以使用此工具:
如果你觉得这个项目有用,并希望鼓励我创建更多类似的工具,可以考虑捐赠:
bc1qg7xmlsdxfgu3muxherh4eee2ywj3gz8qfgct3s0x1B449E1D545bD0dc50f361d96706F6C904553929F776tt1it7vifCzD9icrsby3ujkZdJ8EY9917GUM3skrTJj96B4SukPJSC4M2FyssoxduVyviv9aGr0x1B449E1D545bD0dc50f361d96706F6C90455392948aaDb1g4Ms7PB3WMj6ttbMWuEwe171d6Yjao59uFJR38tHa75nKwPqYoPAYmWZPUhXmDbDvqtE6d2FX3YaF1dVE7zhD9Dt