SimpleYggGen-Go — перереализация bash-скрипта SimpleYggGen на языке программирования Go, позволяющая работать в несколько потоков и более производительная за счет использования родных библиотек криптографии из Yggdrasil и нативного кода. Основана на программе cmd/genkeys
из Yggdrasil, изначально предназначенной для генерации более устойчивых к коллизиям ключей шифрования.
Текущая версия — v0.2.1.
За счет нативного кода и отсутствия затрат на запуск Yggdrasil и grep для выборки адресов дает в несколько тысяч раз большую производительность — на майнинг 100 000 000 ключей уходит 27 минут в 8 потоков на AMD Ryzen 1700X.
Исходный код программы доступен под лицензией MIT.
При установленном компиляторе Go:
go get -u -v github.com/tdemin/syg_go
Также собранные бинарники можно загрузить со страницы релизов или внутрисетевого репозитория. Если вы пользуетесь Arch Linux, вы можете установить программу из AUR одной командой:
yay -S syg_go
Майнер выполняется в терминале и выводит туда статистику выполнения, а также смайненные ключи.
У майнера несколько конфигурабельных опций командной строки: -threads
, которой устанавливается максимальное число потоков (по умолчанию равно количеству потоков вашего процессора), -iter
, с помощью которого задается количество итераций, после которого выводится прогресс (по умолчанию каждые 100 000 итераций для тестов производительности, на современных процессорах имеет смысл задавать в 100000000
или выше) и -regex
, после которой идет задание целевого регулярного выражения, на соответствие которому проверяется адрес (по умолчанию ::
). Смысл регулярного выражения тот же, что и у оригинального SimpleYggGen.
С версии 0.1.1 программа перереализует функции вывода адреса для улучшения производительности относительно кода Yggdrasil, включить использование только оригинального кода из Yggdrasil можно опцией -original
. С версии 0.1.3 можно также использовать опцию -highaddr
, которая устанавливает режим майнинга т.н. «высоких» адресов (т.е. более устойчивых к коллизиям: чем выше начальные биты адреса, тем более устойчив адрес).
Вывод майнера можно сохранять в файл одновременно с выводом в терминал, как это делается, зависит от используемой вами ОС. Например, в *nix-системах можно воспользоваться следующей командой:
syg_go | tee syg.txt