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".
✅ Релизована работа с мнемоникой на языке 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-х систем, однако если вам нужно собрать самостоятельно, то вот шаги действий для этого:
В файлах уже находится проект для Visual Studio - вам нужно лишь установить библиотеку OpenSSL для успешной сборки (сделать это можно с помощью VCPKG)
В файлах уже лежит готовый проект для Xcode, однако требуется библиотека OpenSSL
Для её установки я добавил скрипт install_openssl_macos.sh
- запустив который вы установите homebrew и OpenSSL
В файлах уже лежит Makefile, который можно запустить командой make
Требуется установка библиотек, можно установить так - sudo apt install gcc g++ make openssl libssl-dev
-
Программа обязательно требует файл с деривациями, без него не будет запуска
Никаких зашитых в коде дериваций, только кастом
В файле должны быть полные деривации, начиная с m/
Пример:
-
Обязательно требуются блюмфильтры, содержащие хэши для поиска
Для того, что-бы их сделать, в меню Release GitHub для каждой системы я собрал эти программы:
base58-bech32_to_hash160
-- Программа для преобразования разных типов адресов в 20-байт хэш, проверял на адресах BTC, BCH, Tron, ETH, LTC - другие валюты нужно тестировать
Solana_to_hex
-- Преобразует адреса соланы в 20-байт публичного ключа
hex_to_bloom
-- создает блюмфильтры из указанного файла с хэшами. Программа сама разделит файл на нужное кол-во блюмфильтров, управляется параметром-capacity
- рекомендую не ставить более 40000000, это количество хэшей в одном блюме
-
Пример запуска рандомной генерации 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 потоков процессора
- Пример запуска со сторонним генератором мнемоник:
Generator.exe | MnemonicC.exe -c cus -d der.txt -b btc.blf -b btc_2.blf -t 8 -in
гдеin
-- указание работы с внешним генератором
- Пример запуска из файла, с отображением найденного
MnemonicC.exe -c cus -d der.txt -b btc.blf -b btc_2.blf -t 8 -in -f file.txt
А добавление параметраsave
будет сохранять хэши в виде адресов