
Esta herramienta genera frases mnemotécnicas BIP-39 derivadas de marcas de tiempo Unix, explorando las implicaciones de la vulnerabilidad 'Milk Sad' (CVE-2023-39910).
Esta herramienta está diseñada para generar frases mnemónicas BIP-39 (frases semilla de 24 palabras) basadas en marcas de tiempo Unix, explorando específicamente frases que podrían generarse a través de la vulnerabilidad "Milk Sad" (CVE_2023-39910).
El Generador de Mnemónicos Milk Sad crea frases mnemónicas BIP-39 de 24 palabras utilizando marcas de tiempo Unix como fuente de entropía. Su objetivo es generar todas las posibles frases semilla que podrían haberse producido debido al defecto específico de recopilación de entropía basada en marcas de tiempo asociado con la vulnerabilidad "Milk Sad".
Tienes dos opciones para instalar y ejecutar en tu sistema:
install.shEste script automatiza el proceso de compilación y maneja las dependencias comunes para sistemas Linux basados en Debian/Ubuntu.
cd MilkSad-Mnemonic-Generator
chmod +x install.sh
./install.sh
g++, make, qmake, libssl-dev, libqt5widgets5-dev). Si falta alguna, intentará instalarlas (solicitando tu contraseña de sudo si es necesario). Tras configurar correctamente las dependencias, compilará tanto las aplicaciones CLI como GUI y las colocará directamente en el directorio raíz del proyecto.Si prefieres compilar las aplicaciones tú mismo, sigue estos pasos manuales:
Asegúrate de tener instalados los siguientes paquetes de desarrollo en tu sistema Debian/Ubuntu:
g++ (normalmente parte del paquete build-essential)make (también parte de build-essential)qmake (proporcionado por qt5-qmake o qtbase5-dev)libssl-dev (esencial para las funciones criptográficas utilizadas por la herramienta)libqt5widgets5-dev (requerido para el desarrollo de GUI Qt; este paquete suele incluir qtbase5-dev)Puedes instalar estos requisitos usando:
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 para generar el Makefile del proyecto Qt:
qmake mnemonic_generator.pro
make:
make
mv milk_sad_generator_gui ../../
cd ../..
Pic/: Para que la GUI encuentre correctamente su imagen de fondo, debes mover la carpeta Pic/ desde src/gui/ a la raíz del proyecto:
mv src/gui/Pic .
Una vez instalado, encontrarás dos ejecutables directamente en el directorio raíz de tu proyecto: ./milk_sad_generator (la versión de interfaz de línea de comandos) y ./milk_sad_generator_gui (la versión de interfaz gráfica de usuario).
./milk_sad_generator_gui # Para lanzar la aplicación GUI
# O
./milk_sad_generator # Para lanzar la aplicación CLI
Este modo genera una única frase mnemónica de 24 palabras para una fecha y hora precisas que tú especifiques.
1970-01-01 00:00:00 para la primera marca de tiempo. Si eliges inglés, generará el mnemónico "milk sad ...".mnemonic_[language].txt.Este modo genera mnemónicos para cada marca de tiempo dentro de un rango de fechas de inicio y fin especificado.
2017-01-01:2018-12-31 (Esto generará mnemónicos para todas las marcas de tiempo entre el 1 de enero de 2017 y el 31 de diciembre de 2018, inclusive).mnemonics_range_[language].txt.Ctrl+C) y reanudarla más tarde sin perder el progreso.Este modo genera todos los mnemónicos posibles en todo el rango de marcas de tiempo Unix de 32 bits (desde el 1 de enero de 1970 hasta el 19 de enero de 2038).
all_mnemonics_[language].txt.mnemonic_[language].txtmnemonics_range_[language].txtall_mnemonics_[language].txtgeneration_progress_range.bin (para la Opción 2) / generation_progress_full.bin (para la Opción 3)Ctrl+C. La herramienta guardará automáticamente su progreso actual..bin correspondiente se eliminará automáticamente.Si tuviste que detener un proceso de generación (por ejemplo, usando Ctrl+C), puedes reanudarlo sin problemas desde donde lo dejaste:
Para la generación por Rango de Fechas (Opción 2):
generation_progress_range.bin y continuará generando desde la última marca de tiempo guardada.Para la generación de Rango Completo (Opción 3):
generation_progress_full.bin y reanudará la generación desde el punto donde fue interrumpida..bin (generation_progress_range.bin o generation_progress_full.bin) si tienes intención de reanudar una generación..bin correspondiente y renombrar/eliminar/mover cualquier archivo de salida existente (mnemonics_range_[language].txt o all_mnemonics_[language].txt) de ejecuciones anteriores antes de iniciar el programa nuevamente.all_mnemonics_[language].txt, el archivo de progreso .bin se sobrescribirá y los nuevos mnemónicos se añadirán al archivo de salida existente.Aquí tienes un ejemplo de una frase mnemónica BIP-39 de 24 palabras generada por esta herramienta:
vault alarm sad mass witness property virus style good flower rice alpha viable evidence run glare pretty scout evil judge offer refuse another breeze
Para fines de verificación o consulta rápida, el directorio tests/ de este repositorio contiene ejemplos de frases mnemónicas generadas en varios idiomas para la marca de tiempo 1970-01-01 00:00:00 UTC.
Para convertir las frases mnemónicas generadas en direcciones de Bitcoin (compatibles con los formatos P2PKH, P2SH-P2WPKH y P2WPKH), puedes usar esta herramienta:
Si encontraste útil este proyecto y deseas animarme a crear más herramientas como esta, considera donar:
bc1qg7xmlsdxfgu3muxherh4eee2ywj3gz8qfgct3s0x1B449E1D545bD0dc50f361d96706F6C904553929F776tt1it7vifCzD9icrsby3ujkZdJ8EY9917GUM3skrTJj96B4SukPJSC4M2FyssoxduVyviv9aGr0x1B449E1D545bD0dc50f361d96706F6C90455392948aaDb1g4Ms7PB3WMj6ttbMWuEwe171d6Yjao59uFJR38tHa75nKwPqYoPAYmWZPUhXmDbDvqtE6d2FX3YaF1dVE7zhD9Dt