Skip to content
KitploitKITPLOIT
ツールブログ
Log in
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
vuke — 脆弱な暗号鍵生成(脳ウォレット、PRNG、milksad、LCG、xorshift)を研究するためのツール | Kitploit
ツール/GitHubGitHub/oritwoen/vuke
パスワードクラッキング脆弱性分析エクスプロイトフォレンジック暗号化論文と研究学習と教育
GitHuboritwoen/vuke

vuke

脆弱な暗号鍵生成(脳ウォレット、PRNG、milksad、LCG、xorshift)を研究するためのツール

リポジトリを見る
185146ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

vuke

Crates.io Downloads License Ask DeepWiki

脆弱なBitcoin鍵生成の分析と再現のための研究ツールです。

特徴

  • モジュールアーキテクチャ - プラグイン可能なソースと変換
  • 複数の入力ソース
    • 数値範囲(弱いシードのテスト)
    • ワードリスト(ブレインウォレット解析)
    • タイムスタンプ(時間ベースのPRNG悪用)
    • 標準入力ストリーム(パイプライン統合)
  • 歴史的脆弱性変換
    • 直接(生バイトを鍵として)
    • SHA256(古典的ブレインウォレット)
    • ダブルSHA256(Bitcoinスタイルのハッシュ)
    • MD5(レガシーな弱いハッシュ)
    • SHA256チェーン(反復/インデックス指定による決定論的導出)
    • Milksad(MT19937 PRNG - CVE-2023-39910)
    • MultiBit HD(シードをエントロピーとして扱うバグ)
    • Electrum pre-BIP39(2011-2014年の決定論的導出)
    • Armory(レガシーHD導出)
  • 鍵起源分析 - 脆弱な生成方法の逆検出
  • 並列処理(Rayon経由)
  • アドレスマッチング(既知のターゲットのスキャン用)
  • ファイル出力(結果の保存用)
  • クラウドストレージ - S3/R2/MinIOへの非同期アップロード
  • Pure Rust実装

このプロジェクトの目的

このツールはセキュリティ研究のために設計されています。過去に脆弱な鍵がどのように生成されたかを理解することで、現代のウォレットセキュリティの向上に役立ちます。

このツールで再現可能な歴史的脆弱性:

脆弱性年影響
ブレインウォレット2011-2015SHA256(パスフレーズ)は簡単に解読可能
弱いPRNG2013-2023予測可能なシード(タイムスタンプ、PID)
Milksad2023libbitcoinのbxは32ビットシードのMT19937を使用
MultiBit HD2014-201664バイトのBIP39シードをエントロピーとして使用
Electrum pre-BIP392011-2014弱いストレッチングを用いたカスタム決定論的導出
Armory HD2012-2016Pre-BIP32決定論的導出
LCG PRNG1990年代-2010年代glibc rand()、MINSTD、MSVC - わずか31-32ビットの状態
Xorshift PRNG2003年-現在V8/SpiderMonkeyのMath.random() - 64-128ビットの状態
SHA256チェーン2010年代-現在弱いシードからの決定論的鍵導出

インストール

Cargo```bash

cargo install vuke

### ソースから```bash
git clone https://github.com/oritwoen/vuke
cd vuke
cargo build --release

Usage

パスフレーズから単一の鍵を生成する```bash

vuke single "correct horse battery staple" --transform sha256

出力:```
Passphrase: "correct horse battery staple"
Transform: sha256
Source: correct horse battery staple
---
Private Key (hex):     c4bbcb1fbec99d65bf59d85c8cb62ee2db963f0fe106f483d9afa73bd4e39a8a
WIF (compressed):      L3p8oAcQTtuokSCRHQ7i4MhjWc9zornvpJLfmg62sYpLRJF9woSu
---
P2PKH (compressed):   1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
P2WPKH:               bc1qfnpg7ceg02y64qrskgz0drwp3y6hma3q6wvnzr

既知のアドレスのワードリストをスキャン```bash

vuke scan --transform=sha256 --targets known_addresses.txt wordlist --file passwords.txt

### データプロバイダ

ファイルパスではなく、動的ターゲットローディングにはプロバイダ参照を使用してください:```bash
# Scan all unsolved b1000 puzzles
vuke scan --transform=milksad --targets boha:b1000:unsolved range --start 1 --end 1000000

# Scan specific collection with filter
vuke scan --transform=sha256 --targets boha:b1000:with-pubkey wordlist --file words.txt

# Available filters: all, unsolved, solved, with-pubkey
vuke scan --targets boha:hash_collision:unsolved wordlist --file words.txt

プロバイダ構文: provider:collection:filter または provider:collection:id

利用可能なコレクション(bohaプロバイダ):

  • b1000 - Bitcoinパズル1000(256パズル、1-256ビット)
  • gsmg - GSMGパズル
  • bitaps - Bitapsパズル
  • hash_collision - ハッシュ衝突パズル
  • zden - Zdenパズル
  • bitimage - Bitimageパズル

数値範囲テスト(弱いシード)```bash

vuke generate --transform=milksad range --start 1 --end 1000000

### LCGベースの鍵のテスト```bash
# Generate keys using glibc rand() (default big-endian)
vuke generate --transform=lcg:glibc range --start 1 --end 1000000

# Use MINSTD variant with big-endian byte order
vuke generate --transform=lcg:minstd:be range --start 1 --end 1000

# Test all LCG variants at once
vuke generate --transform=lcg range --start 1 --end 100

テスト xorshiftベースの鍵```bash

Generate keys using all xorshift variants (requires cascade filter for analysis)

vuke generate --transform=xorshift range --start 1 --end 1000000

Use specific variant

vuke generate --transform=xorshift:64 range --start 1 --end 1000 vuke generate --transform=xorshift:128 range --start 1 --end 1000 vuke generate --transform=xorshift:128plus range --start 1 --end 1000 vuke generate --transform=xorshift:xoroshiro range --start 1 --end 1000

### タイムスタンプベースのキーのテスト```bash
vuke scan --transform=sha256 --targets addresses.txt timestamps --start 2015-01-01 --end 2015-01-31

ファイルからキーを導出する (Bitimage)```bash

Generate key from a single file

vuke generate --transform=bitimage files --file image.jpg

Scan directory recursively

vuke generate --transform=bitimage files --dir ./images/

With custom derivation path and passphrase

vuke generate --transform=bitimage --bitimage-path "m/44'/0'/0'/0/0" --bitimage-passphrase "secret" files --file photo.png

Derive multiple addresses per file

vuke generate --transform=bitimage --bitimage-derive-count 10 files --dir ./data/

Brute-force passphrases from wordlist

vuke scan --transform=bitimage --bitimage-passphrase-wordlist passphrases.txt --targets addresses.txt files --dir ./images/

### 複数の変換```bash
vuke scan --transform=sha256 --transform=double_sha256 --transform=md5 --targets addresses.txt wordlist --file words.txt

標準入力からのパイプ```bash

cat passwords.txt | vuke generate --transform=sha256 stdin

### 結果をファイルに保存```bash
vuke generate --output results.csv range --start 1 --end 1000000
vuke generate --output results.txt --verbose range --start 1 --end 1000
vuke scan --output hits.txt --targets addresses.txt wordlist --file passwords.txt

永続ストレージ (Parquet)

結果をParquet形式で保存し、TB規模の分析に対応します(storage機能が必要です):```bash

Build with storage support

cargo build --release --features storage

Store generated keys to Parquet

vuke generate --storage ./results --transform milksad range --start 1 --end 1000000

Configure chunk rotation

vuke generate --storage ./results --chunk-records 500000 --chunk-bytes 50M range --start 1 --end 10000000

Configure compression (default: zstd level 3)

vuke generate --storage ./results --compression zstd --compression-level 9 range --start 1 --end 1000000

No compression (fastest writes)

vuke generate --storage ./results --compression none range --start 1 --end 1000000

Available algorithms: none, snappy, gzip, lz4, zstd

### 保存された結果のクエリ (SQL)

SQLを使用して保存されたParquetファイルをクエリします(`storage-query` 機能が必要):```bash
# Build with query support
cargo build --release --features storage-query

# Count results by transform
vuke query ./results "SELECT transform, COUNT(*) FROM results GROUP BY transform"

# Find matches
vuke query ./results "SELECT * FROM results WHERE matched_target IS NOT NULL LIMIT 10"

# Export to JSON
vuke query ./results --format json "SELECT source, wif_compressed FROM results LIMIT 100"

# Export to CSV
vuke query ./results --format csv "SELECT address_p2pkh_compressed, wif_compressed FROM results" > export.csv

# Show schema
vuke query ./results --schema

出力形式: table (デフォルト), json, csv

クラウドアップロード(S3互換)

Parquet結果をS3互換ストレージにアップロードします(storage-cloud機能が必要です):```bash

Build with cloud upload support

cargo build --release --features storage-cloud

Set credentials (AWS S3)

export AWS_ACCESS_KEY_ID=your_key export AWS_SECRET_ACCESS_KEY=your_secret

Upload to AWS S3

vuke generate --storage ./results --cloud-upload --cloud-bucket my-bucket
--transform milksad range --start 1 --end 1000000

Upload to Cloudflare R2

vuke generate --storage ./results --cloud-upload
--cloud-endpoint https://account.r2.cloudflarestorage.com
--cloud-bucket my-r2-bucket
--transform milksad range --start 1 --end 1000000

Upload to MinIO (self-hosted)

vuke generate --storage ./results --cloud-upload
--cloud-endpoint http://localhost:9000
--cloud-bucket vuke-results
--transform milksad range --start 1 --end 1000000

ツールをダウンロード