Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
vuke — أداة بحث لدراسة توليد المفاتيح المشفرة الضعيفة (brainwallet, PRNG, milksad, LCG, xorshift) | Kitploit
أدوات/GitHubGitHub/oritwoen/vuke
كسر كلمات المرورتحليل الثغرات الأمنيةالاستغلالالتحقيق الجنائي الرقميالتشفيرالأوراق والأبحاثالتعلم والتعليم
GitHuboritwoen/vuke

vuke

أداة بحث لدراسة توليد المفاتيح المشفرة الضعيفة (brainwallet, PRNG, milksad, LCG, xorshift)

عرض المستودع
185منذ 4 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

vuke

Crates.io Downloads License Ask DeepWiki

أداة بحث لتحليل وإعادة إنتاج توليد مفاتيح البيتكوين الضعيفة.

الميزات

  • هندسة معيارية - مصادر وتحويلات قابلة للإضافة
  • مصادر إدخال متعددة
    • نطاقات رقمية (اختبار البذور الضعيفة)
    • قوائم كلمات (تحليل محافظ الدماغ)
    • طوابع زمنية (استغلال المولدات العشوائية الزمنية)
    • الإدخال القياسي (التكامل مع خطوط الأنابيب)
  • تحويلات تتبع الثغرات التاريخية
    • مباشر (البايتات الخام كمفتاح)
    • SHA256 (محفظة الدماغ الكلاسيكية)
    • SHA256 مزدوجة (تجزئة على نمط البيتكوين)
    • MD5 (تجزئة ضعيفة قديمة)
    • سلسلة SHA256 (اشتقاق حتمي متكرر/مفهرس)
    • Milksad (مولد MT19937 - CVE-2023-39910)
    • MultiBit HD (خلل استخدام البذور كمدخل عشوائي)
    • Electrum قبل BIP39 (اشتقاق حتمي مخصص 2011-2014)
    • Armory (اشتقاق HD قديم)
  • تحليل أصل المفتاح - اكتشاف عكسي لطرق التوليد الضعيفة
  • معالجة متوازية عبر Rayon
  • مطابقة العناوين لمسح الأهداف المعروفة
  • إخراج ملف لحفظ النتائج
  • تخزين سحابي - رفع غير متزامن إلى S3/R2/MinIO
  • تنفيذ بلغة Rust النقية

لماذا هذا المشروع؟

هذه الأداة مصممة لـ البحث الأمني - فهم كيفية توليد المفاتيح الضعيفة في الماضي يساعد في تحسين أمان المحافظ الحديثة.

الثغرات التاريخية التي يمكن لهذه الأداة إعادة إنتاجها:

التثبيت

Cargo```bash

cargo install vuke

root@kitploit:~
### من المصدر```bash
git clone https://github.com/oritwoen/vuke
cd vuke
cargo build --release

الاستخدام

توليد مفتاح واحد من عبارة المرور```bash

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

root@kitploit:~
المخرجات:```
Passphrase: "correct horse battery staple"
Transform: sha256
Source: correct horse battery staple
---
Private Key (hex):     c4bbcb1fbec99d65bf59d85c8cb62ee2db963f0fe106f483d9afa73bd4e39a8a
WIF (compressed):      L3p8oAcQTtuokSCRHQ7i4MhjWc9zornvpJLfmg62sYpLRJF9woSu
---
P2PKH (compressed):   1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T
P2WPKH:               bc1qfnpg7ceg02y64qrskgz0drwp3y6hma3q6wvnzr

مسح wordlist للعناوين المعروفة```bash

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

root@kitploit:~
### مزودو البيانات

بدلاً من مسارات الملفات، استخدم مراجع المزوّد لتحميل الهدف الديناميكي:```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 syntax: provider:collection:filter or 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

root@kitploit:~
### اختبار المفاتيح القائمة على 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-based keys```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

root@kitploit:~
### اختبار المفاتيح المستندة إلى الطابع الزمني```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/

root@kitploit:~
### تحويلات متعددة```bash
vuke scan --transform=sha256 --transform=double_sha256 --transform=md5 --targets addresses.txt wordlist --file words.txt

الأنابيب من stdin```bash

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

root@kitploit:~
### حفظ النتائج إلى ملف```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

root@kitploit:~
### الاستعلام عن النتائج المخزنة (SQL)

استعلام عن ملفات Parquet المخزنة باستخدام SQL (يتطلب ميزة `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

Delete local files after successful upload

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

Fail fast on upload errors (default: continue on failures)

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

root@kitploit:~
ميزات التحميل إلى السحابة:
- تحميل متعدد الأجزاء بطريقة التدفق (فعال من حيث الذاكرة للملفات الكبيرة)
- إعادة المحاولة التلقائي مع التراجع الأسي (5 محاولات، من 100ms إلى 30s)
- تحميلات متزامنة مع قابلية ضبط التوازي
- يحذف الملفات المحلية التي تم تحميلها بنجاح فقط

### تسجيل كتالوج Iceberg

سجل ملفات Parquet المرفوعة في كتالوج Apache Iceberg للاستعلام باستخدام SQL (يتطلب ميزة `storage-iceberg`):```bash
# Build with Iceberg support
cargo build --release --features storage-iceberg

# Set credentials
export CLOUD_ACCESS_KEY_ID=your_key
export CLOUD_SECRET_ACCESS_KEY=your_secret

# Generate, upload, and register in Iceberg catalog
vuke generate --storage ./results --cloud-upload --cloud-bucket my-bucket \
  --iceberg-catalog http://localhost:8181 \
  --transform milksad range --start 1 --end 1000000

# With custom namespace and table name
vuke generate --storage ./results --cloud-upload --cloud-bucket my-bucket \
  --iceberg-catalog http://localhost:8181 \
  --iceberg-namespace my_namespace \
  --iceberg-table my_results \
  --transform milksad range --start 1 --end 1000000

# Using environment variables
export ICEBERG_CATALOG=http://localhost:8181
export ICEBERG_NAMESPACE=vuke
export ICEBERG_TABLE=results
vuke generate --storage ./results --cloud-upload --cloud-bucket my-bucket \
  --transform milksad range --start 1 --end 1000000

Iceberg catalog features:

  • REST catalog protocol (متوافق مع Apache Polaris, Nessie, Tabular, إلخ.)
  • إنشاء جدول تلقائي مع مخطط ومواصفات تقسيم
  • مقسم بواسطة transform (هوية) و timestamp (يوم)
  • بيانات الاعتماد مشتركة مع التحميل السحابي (متغيرات بيئة CLOUD_/AWS_)

تحولات المعايير```bash

vuke bench --transform milksad

root@kitploit:~
### تحليل أصل المفتاح الخاص

تحقق مما إذا كان المفتاح الخاص قد تم إنشاؤه بطريقة ضعيفة:```bash
vuke analyze c4bbcb1fbec99d65bf59d85c8cb62ee2db963f0fe106f483d9afa73bd4e39a8a

المخرجات:``` Private Key: c4bbcb1fbec99d65bf59d85c8cb62ee2db963f0fe106f483d9afa73bd4e39a8a Bit Length: 256 Hamming Weight: 144

Analysis: ✗ milksad: NOT_FOUND (checked 4294967296 seeds) ✗ direct: NOT_FOUND (no direct patterns detected) ? heuristic: UNKNOWN (entropy=5.00, hamming=144)

root@kitploit:~
الوضع السريع (تخطي القوة العمياء):```bash
vuke analyze --fast L3p8oAcQTtuokSCRHQ7i4MhjWc9zornvpJLfmg62sYpLRJF9woSu

مخرجات JSON:```bash vuke analyze --fast --json c4bbcb1f...

root@kitploit:~
محلل محدد:```bash
vuke analyze --analyzer milksad c4bbcb1f...

LCG analyzer

تحقق مما إذا كان المفتاح قد تم إنشاؤه باستخدام Linear Congruential Generator:```bash

Check all LCG variants

vuke analyze --analyzer lcg

Check specific variant and endianness

vuke analyze --analyzer lcg:glibc:le

With masking for puzzle analysis

vuke analyze --analyzer lcg:glibc --mask 5 0x15

root@kitploit:~
### تحليل المفاتيح المقنعة (ألغاز من نوع BTC1000)

تستخدم بعض ألغاز البيتكوين مخطط إخفاء حيث:
1. يتم إنشاء مفتاح كامل 256-بت (مثل من MT19937)
2. يتم إخفاء المفتاح إلى N بت مع فرض أعلى بت على 1

الصيغة: `masked_key = (full_key & (2^N - 1)) | 2^(N-1)````bash
# Analyze 5-bit puzzle key 0x15
vuke analyze 0x15 --mask 5 --analyzer milksad

الإخراج:``` Private Key: 0000000000000000000000000000000000000000000000000000000000000015 Bit Length: 5 Hamming Weight: 3

Analysis: ✓ milksad: CONFIRMED (seed=1610000002, full_key=7ed2...5055, masked=0x15, mask_bits=5, formula=(key & 0x1f) | 0x10)

root@kitploit:~
## البدء السريع

*   استبدل متغيرات البيئة بالقيم من `terraform.tfvars` أو قدم قيمًا خاصة بك. قم بتشغيل بنية Terraform التحتية:
*   انسخ المستودع
*   شغّل `build-multicloud-ids.sh````bash
# Analyze 10-bit puzzle key
vuke analyze 0x202 --mask 10 --analyzer milksad

مرشح متتالي (التحقق المتعدد للألغاز)

عند تحليل المفاتيح المقنعة، فإن تطابق بت صغير واحد له معدلات إيجابية كاذبة عالية. يقوم المرشح المتتالي بالتحقق من المرشحين مقابل عدة مفاتيح ألغاز معروفة:```bash

Verify seed against multiple puzzles with increasing bit widths

vuke analyze 0x16 --analyzer milksad --cascade "5:0x16,10:0x273,15:0x7a85"

root@kitploit:~
المخرجات:```
Private Key: 0000000000000000000000000000000000000000000000000000000000000016
Bit Length:  5
Hamming Weight: 3
---
Analysis:
  ✓ milksad: CONFIRMED (seed=100 (0x00000064))
  P5: target=0x16, full_key=08961c8b18dbd0ab4337434767df7b69572fad6c4f00c186b03f43d88af70a26
  P10: target=0x273, full_key=5e413501b4371e2862271f1f3550bc2f4236b6abe29ec9350e166bd322c3e673
  P15: target=0x7a85, full_key=f133ff22f0aac1de185139938f664d10e4ac2de46be7d29f3c458e353a1efa85)

تنسيق التسلسل هو bits:target,bits:target,... حيث:

  • bits هو عرض القناع (1-64)
  • target هو سداسي عشري (مع بادئة 0x) أو عشري

تحليل الاحتمالات:

  • P5 وحده: احتمالية 1/16 لنتيجة إيجابية خاطئة
  • P5 + P10: 1/16 × 1/512 = 1/8192
  • P5 + P10 + P15: نتائج إيجابية خاطئة شبه مستحيلة

تحليل قائم على المزوّد

استخدم مزوّدي البيانات لتهيئة تحليل الألغاز تلقائيًا:```bash

Auto-set mask from puzzle bits (puzzle #5 = 5 bits)

vuke analyze 0x15 --puzzle boha:b1000:5

Build cascade from solved neighbors (3 puzzles before #5)

vuke analyze 0x15 --cascade boha:b1000:5:3 --analyzer milksad

Verify key against entire collection

vuke analyze 0x01 --verify boha:b1000

JSON output for scripting

vuke analyze 0x01 --verify boha:b1000 --json

root@kitploit:~
العلامة `--puzzle`:
- تحميل سياق اللغز من المزوّد
- تعيين `--mask` تلقائيًا من puzzle.key.bits
- عرض العنوان المتوقع للتحقق

العلامة `--cascade` مع المزوّد:
- التنسيق: `boha:collection:puzzle_id:neighbor_count`
- بناء سلسلة متتالية من N ألغاز محلولة قبل الهدف
- الافتراضي: 5 جيران إذا لم يتم تحديد العدد

### محلل MT19937-64 (بذور 64 بت)

لاختبار فرضيات البذور 64 بت، يتطلب محلل `mt64` **مرشح** السلسلة المتتالية (مساحة البذور 64 بت غير قابلة للبحث الاستنفادي):```bash
# MT19937-64 cascade search - REQUIRES cascade filter
vuke analyze 0x15 --analyzer mt64 --cascade "5:0x15,10:0x202,20:0xd2c55,30:0x3d94cd64"

يُظهر التقدم معدل البحث ونتائج مرشح التتالي:``` ⠋ Searched: 1200000 seeds | Rate: 850K/s | Elapsed: 1.4s | Cascade hits: 73

root@kitploit:~
### Xorshift analyzer (64-bit seeds)

تتطلب Xorshift PRNGs (المستخدمة في محركات V8/SpiderMonkey JavaScript) أيضًا cascade filter بسبب مساحة البذور 64-bit:```bash
# Test all xorshift variants
vuke analyze 0x15 --analyzer xorshift --cascade "5:0x15,10:0x202,20:0xd2c55"

# Test specific variant
vuke analyze 0x15 --analyzer xorshift:64 --cascade "5:0x15,10:0x202,20:0xd2c55"
vuke analyze 0x15 --analyzer xorshift:128plus --cascade "5:0x15,10:0x202,20:0xd2c55"

المتغيرات المدعومة:

  • xorshift:64 - xorshift كلاسيكي بحالة 64 بت
  • xorshift:128 - xorshift بحالة 128 بت (البذرة تُهيأ كـ (seed, 0))
  • xorshift:128plus - Xorshift128+ (المستخدم في V8/SpiderMonkey Math.random())
  • xorshift:xoroshiro - Xoroshiro128** (النوع الحديث)

مُحلل MultiBit HD (خلل البذرة كعشوائية)

يحتوي MultiBit HD Beta 7 (2014-2016) على خلل حيث تم تمرير بذرة BIP39 ذات الـ 64 بايت مباشرة إلى مُنشئ DeterministicSeed الخاص بـ BitcoinJ كعشوائية (المتوقع 16-32 بايت). أنشأ هذا مفاتيح غير متوافقة لا يمكن استعادتها باستخدام أدوات BIP39 القياسية.```bash

Check if a key was generated by the MultiBit HD bug

vuke analyze --analyzer multibit-hd --mnemonic "word1 word2 ... word12"

Test with a specific passphrase

vuke analyze --analyzer multibit-hd --mnemonic "word1 word2 ..." --passphrase "my passphrase"

Dictionary attack with mnemonic file

vuke analyze --analyzer multibit-hd --mnemonic-file candidates.txt

root@kitploit:~
توليد مفاتيح معطوبة من عبارة تذكيرية معروفة:```bash
vuke single "skin join dog sponsor camera puppy ritual diagram arrow poverty boy elbow" --transform=multibit

الإخراج (المفتاح الأول عند m/0'/0/0):``` P2PKH (compressed): 1LQ8XnNKqC7Vu7atH5k4X8qVCc9ug2q7WE

root@kitploit:~
يتطابق هذا مع العنوان المعيب من [مشكلة MultiBit HD #445](https://github.com/Multibit-Legacy/multibit-hd/issues/445).
العنوان الصحيح وفقًا لـ BIP39 سيكون `12QxtuyEM8KBG3ngNRe2CZE28hFw3b1KMJ`.

### مفاتيح Electrum قبل إصدار BIP39 (2011-2014)

كانت محافظ Electrum قبل اعتماد BIP39 تستخدم مخطط اشتقاق مخصص:
- بذور ست عشرية 128 بت ممتدة عبر 100,000 تكرار SHA256
- اشتقاق المفاتيح الفرعية كـ `(master + sequence) mod n`
- مفاتيح عامة غير مضغوطة للعناوين

توليد مفاتيح من بذرة Electrum قديمة:```bash
# Generate receiving chain addresses (first 20 keys)
vuke single "acb740e454c3134901d7c8f16497cc1c" --transform electrum

# Generate change chain addresses
vuke single "acb740e454c3134901d7c8f16497cc1c" --transform electrum:change

المخرجات (عنوان الاستلام 0):``` P2PKH (uncompressed): 1FJEEB8ihPMbzs2SkLmr37dHyRFzakqUmo

root@kitploit:~
### محلل سلسلة SHA256

اكتشاف المفاتيح المولدة باستخدام سلاسل SHA256 الحتمية (key[n] = SHA256(key[n-1]) أو SHA256(seed || n)):```bash
# Check with iterated chain (default): key[n] = SHA256(key[n-1])
vuke analyze <KEY> --analyzer sha256_chain --chain-depth 20

# Check indexed variant: key[n] = SHA256(seed || n as bytes)
vuke analyze <KEY> --analyzer sha256_chain:indexed --chain-depth 20

# With masking for puzzle analysis
vuke analyze 0x15 --mask 5 --analyzer sha256_chain --chain-depth 10

# With cascade filter for reduced false positives
vuke analyze 0x15 --analyzer sha256_chain --cascade "5:0x15,10:0x202" --chain-depth 10

المتغيرات المدعومة:

  • sha256_chain أو sha256_chain:iterated - الاشتقاق المتسلسل: key[n] = SHA256(key[n-1])
  • sha256_chain:indexed أو sha256_chain:indexed:be - مفهرس: SHA256(seed || n) بترتيب البايت الكبير
  • sha256_chain:indexed:le - مفهرس بترتيب البايت الصغير
  • sha256_chain:counter - مفهرس بنص: SHA256(seed || "n")

تحويل سلسلة SHA256

توليد المفاتيح باستخدام الاشتقاق المتسلسل SHA256:```bash

Generate iterated chain keys from numeric seeds

vuke generate --transform=sha256_chain range --start 1 --end 1000

Generate indexed chain with counter strings

vuke generate --transform=sha256_chain:counter --chain-depth 5 wordlist --file seeds.txt

Generate with specific chain depth

vuke generate --transform=sha256_chain:iterated --chain-depth 10 range --start 1 --end 100

root@kitploit:~
## التحويلات المدعومة

| التحويل | الوصف | حالة الاستخدام |
|-----------|-------------|----------|
| `direct` | بايتات خام مبطنة إلى 32 بايت | اختبار البذور الرقمية الخام |
| `sha256` | SHA256(المدخل) | محافظ الدماغ الكلاسيكية |
| `double_sha256` | SHA256(SHA256(المدخل)) | تجزئة على نمط البيتكوين |
| `md5` | MD5(المدخل) مكرر إلى 32 بايت | تجزئة ضعيفة قديمة |
| `milksad` | مولد أرقام عشوائية MT19937 ببذرة 32 بت | CVE-2023-39910 (libbitcoin) |
| `mt64` | مولد MT19937-64 ببذرة 64 بت | اختبار فرضية البذرة 64 بت |
| `multibit` | خطأ بذرة MultiBit HD كإنتروبيا | محافظ MultiBit HD من 2014-2016 |
| `armory` | سلسلة اشتقاق Armory HD | محافظ ما قبل BIP32 |
| `electrum` | اشتقاق Electrum قبل BIP39 | محافظ Electrum 2011-2014 |
| `electrum:change` | سلسلة التغيير لـ Electrum | عناوين التغيير لـ Electrum 2011-2014 |
| `lcg[:variant][:endian]` | مولد LCG ببذرة 32 بت | دالة rand() من مكتبة C القياسية القديمة |
| `xorshift[:variant]` | مولد Xorshift ببذرة 64 بت | V8/SpiderMonkey Math.random() |
| `sha256_chain[:variant]` | سلسلة SHA256 حتمية | اشتقاق مفتاح متكرر/مفهرس |
| `bitimage` | ملف←base64←SHA256←BIP39←HD | اشتقاق مفتاح لغز Bitimage |

## المحللات المدعومة

| المحلل | الطريقة | حالة الاستخدام |
|----------|--------|----------|
| `milksad` | القوة العمياء 2^32 بذرة | التحقق مما إذا كان المفتاح ضحية Milksad |
| `milksad --mask N` | القوة العمياء مع قناع N بت | تحليل ألغاز على نمط BTC1000 |
| `milksad --cascade` | تحقق تسلسلي متعدد الأهداف | تقليل الإيجابيات الكاذبة في أبحاث الألغاز |
| `mt64 --cascade` | القوة العمياء 2^64 مع مرشح متتالي | فرضية PRNG 64 بت لـ BTC1000 |
| `multibit-hd --mnemonic` | اختبار العبارة التذكيرية مقابل المفتاح | التحقق من أصل خطأ MultiBit HD |
| `multibit-hd --mnemonic-file` | هجوم القاموس | العثور على العبارة التذكيرية لمفتاح MultiBit HD |
| `direct` | كشف النمط | كشف البذور الصغيرة، سلاسل ASCII |
| `heuristic` | تحليل إحصائي | شذوذات الإنتروبيا ووزن هامينغ |
| `lcg[:variant][:endian]` | القوة العمياء 2^31-2^32 بذرة | كشف rand() من glibc/minstd/msvc/borland |
| `xorshift[:variant] --cascade` | القوة العمياء 2^64 مع مرشح متتالي | مولدات Xorshift في V8/SpiderMonkey |
| `sha256_chain[:variant]` | القوة العمياء 2^32 بذرة مع عمق السلسلة | سلاسل مفاتيح SHA256 حتمية |

## استخدام المكتبة```rust
use vuke::derive::KeyDeriver;
use vuke::transform::{Input, Transform, Sha256Transform};

fn main() {
    let deriver = KeyDeriver::new();
    let transform = Sha256Transform;

    let input = Input::from_string("test passphrase".to_string());
    let mut buffer = Vec::new();
    transform.apply_batch(&[input], &mut buffer);

    for (source, key) in buffer {
        let derived = deriver.derive(&key);
        println!("Source: {}", source);
        println!("WIF: {}", derived.wif_compressed);
        println!("Address: {}", derived.p2pkh_compressed);
    }
}

الهندسة المعمارية```

src/ ├── main.rs # CLI entry point (clap derive) ├── lib.rs # Library exports ├── derive.rs # Private key → address derivation ├── matcher.rs # Address matching against targets ├── network.rs # Bitcoin network handling ├── benchmark.rs # Performance testing ├── provider.rs # Data provider system (boha puzzles) ├── lcg.rs # LCG PRNG shared logic ├── xorshift.rs # Xorshift PRNG shared logic ├── mt64.rs # MT19937-64 PRNG shared logic ├── multibit.rs # MultiBit HD bug logic (PBKDF2, BIP32) ├── electrum.rs # Electrum pre-BIP39 deterministic derivation ├── sha256_chain.rs # SHA256 chain shared logic (iterated/indexed) ├── bitimage.rs # Bitimage puzzle derivation logic ├── analyze/ │ ├── mod.rs # Analyzer trait and types │ ├── key_parser.rs # Parse hex/WIF/decimal keys │ ├── output.rs # Plain text and JSON formatting │ ├── milksad.rs # MT19937 brute-force (GPU accelerated) │ ├── mt64.rs # MT19937-64 brute-force (requires cascade) │ ├── multibit.rs # MultiBit HD mnemonic verification │ ├── lcg.rs # LCG brute-force (glibc, minstd, msvc, borland) │ ├── xorshift.rs # Xorshift brute-force (requires cascade) │ ├── sha256_chain.rs # SHA256 chain brute-force (GPU accelerated) │ ├── direct.rs # Pattern detection │ └── heuristic.rs # Statistical analysis ├── source/ │ ├── mod.rs # Source trait and types │ ├── range.rs # Numeric range source │ ├── wordlist.rs # File-based wordlist │ ├── timestamps.rs # Date range → Unix timestamps │ ├── stdin.rs # Streaming from stdin │ └── files.rs # File/directory source for binary data ├── output/ │ ├── mod.rs # Output trait │ ├── console.rs # Console output (compact CSV + verbose YAML) │ ├── multi.rs # Multi-output dispatcher │ ├── storage.rs # Parquet backend bridge (feature: storage) │ └── query_format.rs # DuckDB result formatting (feature: storage-query) ├── transform/ │ ├── mod.rs # Transform trait and types │ ├── input.rs # Input value representation │ ├── direct.rs # Raw bytes transform │ ├── sha256.rs # SHA256 hashing │ ├── double_sha256.rs # Double SHA256 │ ├── md5.rs # MD5 hashing │ ├── milksad.rs # MT19937 PRNG (CVE-2023-39910) │ ├── mt64.rs # MT19937-64 PRNG transform │ ├── multibit.rs # MultiBit HD seed-as-entropy bug │ ├── electrum.rs # Electrum pre-BIP39 deterministic derivation │ ├── lcg.rs # LCG PRNG transform │ ├── xorshift.rs # Xorshift PRNG transform │ ├── sha256_chain.rs # SHA256 chain transform │ ├── bitimage.rs # File-derived HD keys (Bitimage puzzle) │ └── armory.rs # Armory HD derivation ├── gpu/ # WebGPU acceleration (feature: gpu) │ ├── mod.rs # Module exports │ ├── context.rs # GPU device initialization │ ├── error.rs # GPU error types │ ├── buffer.rs # GPU buffer utilities │ ├── hash.rs # SHA256/MD5 hash pipelines │ ├── mt19937.rs # MT19937 brute-force pipeline │ ├── sha256_chain.rs # SHA256 chain pipeline │ └── shaders/ # WGSL compute shaders │ ├── mt19937.wgsl │ ├── sha256.wgsl │ └── md5.wgsl └── storage/ # Persistent storage (feature: storage) ├── mod.rs # StorageBackend trait ├── schema.rs # Arrow schema definitions ├── parquet_backend.rs # Parquet file writer with auto-chunking ├── query.rs # DuckDB SQL executor (feature: storage-query) ├── cloud/ # S3-compatible upload (feature: storage-cloud) │ ├── mod.rs # CloudUploader trait │ ├── s3.rs # S3/R2/MinIO implementation │ ├── credentials.rs # Credential resolution │ ├── sync.rs # Batch upload with concurrency │ ├── progress.rs # Upload progress tracking │ └── error.rs # Cloud error types └── iceberg/ # Iceberg catalog (feature: storage-iceberg) ├── mod.rs # Iceberg integration entry ├── catalog.rs # REST catalog client ├── schema.rs # Iceberg schema mapping ├── partition.rs # Partition spec └── error.rs # Iceberg error types

root@kitploit:~
## المتطلبات

- Rust 1.70+

## إخلاء مسؤولية

هذه الأداة مخصصة **لأغراض تعليمية وبحثية أمنية فقط**. لا تستخدمها للوصول إلى محافظ لا تملكها. المؤلفون غير مسؤولين عن أي سوء استخدام.

## الترخيص

رخصة MIT - انظر [LICENSE](https://github.com/oritwoen/vuke/blob/HEAD/LICENSE) للتفاصيل.

## المراجع

- [Milksad vulnerability](https://milksad.info/) - CVE-2023-39910
- [MultiBit HD issue #445](https://github.com/Multibit-Legacy/multibit-hd/issues/445) - خطأ استخدام البذور كعشوائية
- [Brainwallet attacks](https://eprint.iacr.org/2016/103.pdf) - ورقة أكاديمية
- [وثائق Armory](https://btcarmory.com/) - محفظة HD قديمة
- [المولد التطابقي الخطي](https://en.wikipedia.org/wiki/Linear_congruential_generator) - ويكيبيديا
- [مولدات Xorshift العشوائية الزائفة](https://en.wikipedia.org/wiki/Xorshift) - ويكيبيديا
- [اشتقاق المفاتيح في Electrum 1.x](https://github.com/spesmilo/electrum/blob/b9196260cfd515363a026c3bfc7bc7aa757965a0/lib/bitcoin.py) - الكود المصدري قبل BIP39
تنزيل الأداة
الثغرةالسنةالتأثير
محافظ الدماغ2011-2015SHA256(كلمة المرور) سهلة الاختراق
مولدات عشوائية ضعيفة2013-2023بذور قابلة للتنبؤ (طوابع زمنية، معرفات العمليات)
Milksad2023استخدمت bx من libbitcoin MT19937 ببذور 32 بت
MultiBit HD2014-2016بذرة BIP39 بحجم 64 بايت استخدمت كعشوائية
Electrum قبل BIP392011-2014اشتقاق حتمي مخصص بتمديد ضعيف
Armory HD2012-2016اشتقاق حتمي قبل BIP32
مولدات LCG1990s-2010sglibc rand(), MINSTD, MSVC - حالة 31-32 بت فقط
مولدات Xorshift2003-حتى الآنV8/SpiderMonkey Math.random() - حالة 64-128 بت
سلاسل SHA2562010s-حتى الآناشتقاق حتمي للمفاتيح من بذور ضعيفة