# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y build-essential cmake git
sudo apt-get install -y libssl-dev libsecp256k1-dev
========================================
CVE-2023-31290 扫描器 - 仅比特币
========================================
描述:
此工具利用了 libbitcoin-explorer 中的漏洞 CVE-2023-31290 (Milk Sad)。
该漏洞使用以 32 位时间戳作为种子的 Mersenne Twister PRNG。
从每个 32 位种子生成 12 字和 24 字 BIP39 助记词。
派生比特币地址 (P2PKH, P2SH, Native SegWit)。
与预先构建的已知地址 24 位前缀索引进行比对。
多线程,使用内存映射 I/O — 每秒最多 150,000 个种子。
支持的地址类型:
- Legacy P2PKH (1...)
- P2SH (3...)
- Native SegWit (bc1...)
派生路径:
m/44'/0'/0'/0/0 → P2PKH (1...)
m/49'/0'/0'/0/0 → P2SH (3...)
m/84'/0'/0'/0/0 → Native SegWit (bc1...)
编译:
g++ -std=c++17 -O3 -pthread -o scan_btc scan_btc.cpp -lssl -lcrypto -lsecp256k1
用法:
./scan_btc --demo 12345
./scan_btc hex160.bin 0 1000000
重要:
如果找到比特币地址,检查同一助记词在以下币种中:
莱特币 (LTC)、狗狗币 (DOGE)、达世币 (DASH)、
Zcash (ZEC)、比特币现金 (BCH) 等。
它们使用相同的 RIPEMD-160 哈希,只是地址版本不同。
========================================
CVE-2023-31290 扫描器 - 仅以太坊
========================================
描述:
利用相同的 CVE-2023-31290 漏洞,但针对以太坊地址。
从 32 位种子生成 12 字和 24 字的 BIP39 助记词。
使用 SECP256K1 曲线和 Keccak-256 哈希派生出以太坊地址。
与预先构建的含余额地址索引进行比对。
完全多线程,为高速扫描而优化。
支持的地址类型:
- 以太坊地址 (0x...)
派生路径:
m/44'/60'/0'/0/0 ... m/44'/60'/0'/0/9 → 以太坊标准
编译:
g++ -std=c++17 -O3 -pthread -o scan_eth scan_eth.cpp -lssl -lcrypto -lsecp256k1
用法:
./scan_eth --demo 12345
./scan_eth hex160.bin 0 1000000
重要:
如果找到以太坊地址,检查同一助记词在以下网络上:
BNB 智能链、Polygon、Avalanche C-Chain、
Arbitrum、Optimism 以及其他 EVM 兼容链。
它们使用相同的派生路径和地址格式。
========================================
两个扫描器 - 附加信息
========================================
如果找到比特币 → 同时检查: LTC, DOGE, DASH, ZEC, BCH
如果找到以太坊 → 同时检查: BNB, MATIC, AVAX, ARB, OP
原因: 在易受攻击的时代 (2015-2018),同一助记词在多个区块链上使用。
所需文件:
- bip39.txt (BIP39 单词列表)
- hex160.bin (包含 20 字节 RIPEMD-160 哈希的二进制文件)
========================================
========================================
CVE-2023-31290 Сканер - ТОЛЬКО BITCOIN
========================================
ОПИСАНИЕ:
Этот инструмент эксплуатирует уязвимость CVE-2023-31290 (Milk Sad) в библиотеке libbitcoin-explorer.
Уязвимость использует генератор Mersenne Twister с 32-битной меткой времени.
Генерирует мнемонические фразы BIP39 из 12 и 24 слов для каждого 32-битного сида.
Вычисляет адреса Bitcoin (P2PKH, P2SH, Native SegWit).
Проверяет по предварительно построенному 24-битному префиксному индексу.
Многопоточный с отображением файлов в память - до 150,000 сидов/секунду.
ПОДДЕРЖИВАЕМЫЕ ТИПЫ АДРЕСОВ:
- Legacy P2PKH (начинающиеся с 1...)
- P2SH (начинающиеся с 3...)
- Native SegWit (начинающиеся с bc1...)
ПУТИ ДЕРИВАЦИИ:
m/44'/0'/0'/0/0 → P2PKH (1...)
m/49'/0'/0'/0/0 → P2SH (3...)
m/84'/0'/0'/0/0 → Native SegWit (bc1...)
КОМПИЛЯЦИЯ:
g++ -std=c++17 -O3 -pthread -o scan_btc scan_btc.cpp -lssl -lcrypto -lsecp256k1
ИСПОЛЬЗОВАНИЕ:
./scan_btc --demo 12345
./scan_btc hex160.bin 0 1000000
ВАЖНО:
Если найден адрес Bitcoin, проверьте ту же мнемонику для:
Litecoin (LTC), Dogecoin (DOGE), Dash (DASH),
Zcash (ZEC), Bitcoin Cash (BCH) и других.
Они используют ТОТ ЖЕ хеш RIPEMD-160 с разными версиями адресов.
========================================
CVE-2023-31290 Сканер - ТОЛЬКО ETHEREUM
========================================
ОПИСАНИЕ:
Та же уязвимость CVE-2023-31290, но ориентирована на адреса Ethereum.
Генерирует мнемонические фразы BIP39 из 12 и 24 слов на основе 32-битных сидов.
Вычисляет адреса Ethereum с использованием кривой SECP256K1 и хеша Keccak-256.
Проверяет по предварительно построенному индексу адресов с балансами.
Полностью многопоточный и оптимизированный для высокоскоростного сканирования.
ПОДДЕРЖИВАЕМЫЙ ТИП АДРЕСА:
- Адреса Ethereum (начинающиеся с 0x...)
ПУТИ ДЕРИВАЦИИ:
m/44'/60'/0'/0/0 ... m/44'/60'/0'/0/9 → стандартный Ethereum
КОМПИЛЯЦИЯ:
g++ -std=c++17 -O3 -pthread -o scan_eth scan_eth.cpp -lssl -lcrypto -lsecp256k1
ИСПОЛЬЗОВАНИЕ:
./scan_eth --demo 12345
./scan_eth hex160.bin 0 1000000
ВАЖНО:
Если найден адрес Ethereum, проверьте ту же мнемонику для:
BNB Smart Chain, Polygon, Avalanche C-Chain,
Arbitrum, Optimism и других EVM-совместимых сетей.
Они используют ТЕ ЖЕ пути деривации и тот же формат адресов.
========================================
ОБА СКАНЕРА - ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
========================================
Если найден Bitcoin → также проверьте: LTC, DOGE, DASH, ZEC, BCH
Если найден Ethereum → также проверьте: BNB, MATIC, AVAX, ARB, OP
ПРИЧИНА: Одна и та же сид-фраза использовалась на нескольких блокчейнах
в уязвимую эпоху (2015-2018).
НЕОБХОДИМЫЕ ФАЙЛЫ:
- bip39.txt (список слов BIP39)
- hex160.bin (бинарный файл с 20-байтовыми хешами RIPEMD-160)
========================================