Skip to content

C++ Tool for Working with BIP(SLIP) Mnemonics. THIS TOOL IS INTENDED SOLELY FOR TESTING THE SECURITY OF YOUR OWN MNEMONICS AND/OR IDENTIFYING OTHER VULNERABILITIES TO ENSURE SECURE ACCESS TO CRYPTOCURRENCIES. THE PRODUCT IS PROVIDED "AS IS".

License

Notifications You must be signed in to change notification settings

XopMC/Mnemonic_CPP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mnemonic_CPP

Tool for Working with Mnemonics THIS TOOL IS INTENDED SOLELY FOR TESTING THE SECURITY OF YOUR OWN MNEMONICS AND/OR IDENTIFYING OTHER VULNERABILITIES TO ENSURE SECURE ACCESS TO CRYPTOCURRENCIES. THE PRODUCT IS PROVIDED "AS IS".

ENG

RUS

30.05.2024 - version 1.0.0

✅ Релизована работа с мнемоникой на языке C++
✅ Практически всё операции самописные (за исключением hmac и pbdkf2, почему-то либа OpenSSL показала лучший результат нежели своя реализация, поэтому оставил эту либу)
✅ Реализована поддежрка блюмфильтов (того-же типа, что использует brainflayer)
✅ Работа с внешними генераторами и файлами с мнемониками или энтропиями
✅ Рабочая реализация SLIP-0010 (для кривых secp256k1 и ed25519) - https://slips.readthedocs.io/en/latest/slip-0010/
✅ Поддержка кривой ed25519 и криптовалюты Solana в частности
✅ Поддержка невалидных мнемоник и кастомных путей деривации
✅ Возможность генерации мнемоники по кастомному словарю 2048 слов
✅ Возможность сохранения найденных хешей сразу в виде адресов криптовалют
✅ Встроенный в программу генератор энтропии, быстрый и криптостойкий, дергающий байты с процессора (сделаный методом проверки, я действительно брал разные генераторы и проверял на качество сгенерированных значений и скорость генерации)
✅ Код адаптирован сразу под 3 системы: Linux, Windows, OSX(MacOS) - добавлены проекты Visual Studio, Xcode, Makefile(для Linux)

Описани аргументов запуска:

-h -- Показывает справку
-d файл.txt -- загрузка путей деривации из файла
-deep число -- Глубина деривации (не обязательно использовать, если в файле с деривациями указаны полные пути)
-c режим -- выбор режимов для поиска хэшей, можно указывать сразу несколько, например -c cuse или -c eS
u - uncompressed address
c - compressed address
s - segwit address
e - ethereum address
x - x coordinate
S - Solana address
-custom файл.txt -- Указание своего словаря из 2048 слов (каждое слово с новой строки, не работает с параметром -lang)
-in -- Использование внешнего генератора или файла с мнемониками или энтропией


(Эти параметры работают только с -in )
-f файл.txt -- Чтение из файла
-entropy -- Указывает что входной поток это энтропия (работает с -lang и с -custom)
-n -- Дополнительно прибавляет шаг step к пришедшей энтропии указанное количество раз
-step -- Шаг для -n, может быть отрицательным, по умолчанию - 1
То есть, если мы укажем -in -f ent.txt -entropy -n 10 -step 16, и файл ent.txt будет содеражать такую энтропию - 00000000, то программа проверит все эти энтропии:
00000000, 00000010, 00000020, 00000030, 00000040, 00000050, 00000060, 00000070, 00000080, 00000090, 00000100


-lang язык (EN, CT, CS, KO, JA, IT, FR, SP) | Языки для мнемоники -
English, ChineseTraditional, ChineseSimplified, Korean , Japanese, Italian, French, Spanish
-t число -- Количество потоков
-o файл.txt -- Сохранение найденого в указанный файл
-save -- Сохранение найденых хэшей в виде адресов
-w кол-во слов -- 3, 6, 9, 12, 15, 18, 21, 24 ... 48 - Количество слов для генератора мнемоники (По стандарту 12)

Сборка из исходников

В Release на GitHub уже есть сборки для 3-х систем, однако если вам нужно собрать самостоятельно, то вот шаги действий для этого:

Windows сборка

В файлах уже находится проект для Visual Studio - вам нужно лишь установить библиотеку OpenSSL для успешной сборки (сделать это можно с помощью VCPKG)

OSX(MacOS) сборка

В файлах уже лежит готовый проект для Xcode, однако требуется библиотека OpenSSL
Для её установки я добавил скрипт install_openssl_macos.sh - запустив который вы установите homebrew и OpenSSL

Linux сборка

В файлах уже лежит Makefile, который можно запустить командой make
Требуется установка библиотек, можно установить так - sudo apt install gcc g++ make openssl libssl-dev

Примеры запуска для некоторых режимов

  1. Программа обязательно требует файл с деривациями, без него не будет запуска
    Никаких зашитых в коде дериваций, только кастом
    В файле должны быть полные деривации, начиная с m/
    Пример:
    image

  2. Обязательно требуются блюмфильтры, содержащие хэши для поиска
    Для того, что-бы их сделать, в меню Release GitHub для каждой системы я собрал эти программы:
    base58-bech32_to_hash160 -- Программа для преобразования разных типов адресов в 20-байт хэш, проверял на адресах BTC, BCH, Tron, ETH, LTC - другие валюты нужно тестировать
    Solana_to_hex -- Преобразует адреса соланы в 20-байт публичного ключа
    hex_to_bloom -- создает блюмфильтры из указанного файла с хэшами. Программа сама разделит файл на нужное кол-во блюмфильтров, управляется параметром -capacity - рекомендую не ставить более 40000000, это количество хэшей в одном блюме
    image

  3. Пример запуска рандомной генерации 12 слов:
    MnemonicC.exe -c cus -d der.txt -b btc.blf -b btc_2.blf -w 12 -t 8
    где -c cus -- поиск Compressed, Uncompressed и Segwit хэшей
    -d der.txt -- файл с деривациями
    -b btc.blf -b btc_2.blf -- блюмфильтры
    -w 12 -- количество слов для генерации
    -t 8 -- Использование 8 потоков процессора

image

  1. Пример запуска со сторонним генератором мнемоник:
    Generator.exe | MnemonicC.exe -c cus -d der.txt -b btc.blf -b btc_2.blf -t 8 -in где in -- указание работы с внешним генератором

image

  1. Пример запуска из файла, с отображением найденного
    MnemonicC.exe -c cus -d der.txt -b btc.blf -b btc_2.blf -t 8 -in -f file.txt А добавление параметра save будет сохранять хэши в виде адресов

image

About

C++ Tool for Working with BIP(SLIP) Mnemonics. THIS TOOL IS INTENDED SOLELY FOR TESTING THE SECURITY OF YOUR OWN MNEMONICS AND/OR IDENTIFYING OTHER VULNERABILITIES TO ENSURE SECURE ACCESS TO CRYPTOCURRENCIES. THE PRODUCT IS PROVIDED "AS IS".

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages