
이 도구는 Unix 타임스탬프로부터 파생된 BIP-39 니모닉 구문을 생성하며, 'Milk Sad' 취약점의 영향(CVE-2023-39910)을 탐구합니다.
이 도구는 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가 배경 이미지를 올바르게 찾으려면 src/gui/에서 프로젝트 루트로 Pic/ 폴더를 이동해야 합니다:
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