# 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 スキャナー - BITCOIN専用
========================================
説明:
このツールは、libbitcoin-explorer の脆弱性 CVE-2023-31290 (Milk Sad) を悪用します。
この脆弱性は、32ビットのタイムスタンプをシードとする Mersenne Twister PRNG を使用しています。
各32ビットシードから12語および24語の BIP39 ニーモニックを生成します。
Bitcoin アドレス (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
重要:
Bitcoin アドレスが見つかった場合、同じニーモニックを以下でも確認してください:
Litecoin (LTC)、Dogecoin (DOGE)、Dash (DASH)、
Zcash (ZEC)、Bitcoin Cash (BCH) など。
これらは、アドレスバージョンが異なるだけで、同じ RIPEMD-160 ハッシュを使用しています。
========================================
CVE-2023-31290 スキャナー - ETHEREUM専用
========================================
説明:
同じ CVE-2023-31290 脆弱性を利用しますが、Ethereum アドレスを対象とします。
32ビットシードから12語および24語の BIP39 ニーモニックを生成します。
SECP256K1 曲線と Keccak-256 ハッシュを使用して Ethereum アドレスを導出します。
残高のあるアドレスの事前構築インデックスと照合します。
完全マルチスレッドで、高速スキャン向けに最適化されています。
対応アドレスタイプ:
- 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 ハッシュを含むバイナリファイル)
========================================
CVE-2023-31290 スキャナー - BITCOIN専用
========================================
説明:
このツールは、libbitcoin-explorer ライブラリ内の脆弱性 CVE-2023-31290 (Milk Sad) を悪用します。
この脆弱性は、32ビットのタイムスタンプをシードとする Mersenne Twister ジェネレーターを使用しています。
各32ビットシードについて、12語および24語の BIP39 ニーモニックフレーズを生成します。
Bitcoin アドレス (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
重要:
Bitcoin アドレスが見つかった場合、同じニーモニックを以下でも確認してください:
Litecoin (LTC)、Dogecoin (DOGE)、Dash (DASH)、
Zcash (ZEC)、Bitcoin Cash (BCH) およびその他。
これらは、アドレスバージョンが異なるだけで、同じ RIPEMD-160 ハッシュを使用しています。
========================================
CVE-2023-31290 スキャナー - ETHEREUM専用
========================================
説明:
同じ CVE-2023-31290 脆弱性ですが、Ethereum アドレスを対象としています。
32ビットシードに基づいて12語および24語のBIP39ニーモニックフレーズを生成します。
SECP256K1 曲線と Keccak-256 ハッシュを使用して Ethereum アドレスを計算します。
残高のあるアドレスの事前構築インデックスと照合します。
完全マルチスレッドで、高速スキャン向けに最適化されています。
対応アドレスタイプ:
- 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 ハッシュを含むバイナリファイル)
========================================