Article Бездонная бочка приватных ключей, крипто-верстачок, вперед на поиски кладов!

  • Автор темы Admin

Admin

#1
Администратор
Регистрация
31.12.2019
Сообщения
6,977
Реакции
34
На кого ориентирована статья?
На тех кто пользуется криптовалютами, на тех кто добывает крипуту из логов, на тех кто хочет попытать счастья в поисках криптокладов.

Что в статье.
Бренность бытия или говно случается, как хранить неограниченное количество приватных ключей у себя в уме.
Разбор авторской программы криптоверстачок, че куда тыкать и как работает.
Вскрываем, генерируем, изучаем ключи, проверяем балансы.
Ищем клады.
Что хотел сделать но не успел.
Напутствие для кодеров которые решили допилить софт.
Еще в статье много копипаста из консоли программы, это сделано для того что вы понимали а стоит ли вообще это использовать, вполне возможно что ваши инструменты перекрывают весь предложенный функционал.


Часть первая, про бездонную бочку приватных ключей.

Глава первая - Ахилесова спина или говно случается.
Бэкапы это важно, и как часть данной процедуры ротация устройств хранения это очень хорошая практика. На примере, есть несколько флешек и бэкапы записываются на них по очереди, сегодня на флэшку 1, завтра на 2, ..., затем возвращаемся к первой. Какие то флэшки разумно держать у друзей, встретились и отдали флэху другу на хранение(естественно там никаких крипто хидеров и прочего что может доставить другу потенциальных неприятностей, при возникновении определенного рода интереса со стороны “недружелюбно настроенных, компетентных лиц”). Что то можно хранить в облаке. Но.., говно случается, более того оно иногда случается синхронно в нескольких местах сразу, а компетенцию недоброжелателей не стоит недооценивать. Кстати очень надежный внешний raid массив с крипто данными накрывается на раз от бракованного юсб кабеля, райды ведь про то что вряд ли сдохнут все диски разом, а вовсе не про то что на них слегка не испортятся данные.

Вот так подключил я флэху забэкапить кошели, а она не але, неприятно но да черт с ней, беру следующую, она але, но это але на уровень объема в пару мегов..., да это конечно не все мои хранилища важной информации, и опять же я сохранял а не извлекал.., но накал драматизма меня впечатлил так что любимые хуго босы пришлось выбросить в окно.

А если серьезно, то лично меня сам факт необходимости хранить несколько кошельков, на нескольких устройствах как то напрягает, а еще хрен пойми кто и как эти кошели поддерживает, а еще экспорнтнуть 100-500ключей начиная с порядкового 300 до порядкового 800 становится проблемой. А еще все это не смешивать в одном кошеле, а значит под разную тему разные копии кошеля с разными пассами и так для нескольких крипто валют. Но больше всего конечно напрягала мысль - что если накроются медным тазом все источники данных, или какую то копию вскроют?.... Отчаянно захотелось все это как то удобно хранить в уме да так что бы не запоминать огромные массивы данных, и десятки паролей, про сид фразы из 12+ слов вообще молчу. Короче меня все это напрягло и я решил как то это все разгрести и больше не парится с такими головняками.

Да и еще момент про райды, флешки, облака и глинянные таблички - Лично мне не нравится сама идея что то важное доверять чему то за пределами моей головы.

*Предполагается что читатель усвоил статью - "Базовые навыки работы с ключами и адресами, или как не просрать крипту которая была так рядом."

Глава вторая - Операция Ы, или не храните деньги в сберегательной кассе.
И так план:
Генерация неограниченного количества последовательных приватных ключей.
Основание генерации должно быть легко запоминаемым.
Криптостойкость.

Из базовых навыков мы помним что основание ключа это 32 байта исходных данных + флаги. И для основания сам собой напрашивается sha256 но мы конечно же будем использовать sha512 и для этого есть более чем серьезные причины, мы из конечно же обсудим.

Алгоритм действий такой:
От сид фразы получаем sha512 - 64 байт хеша.
Берем от хеша первые 32 байт и делаем из них приват ключ.
Для следующего ключа считаем сид фразой хекс всего хеша от теперешней.

и так допустим наша фраза - my super secret phrase.my work keys
получаем от нее sha512 = f9c2a0faf7d5cc1794d5d8d23b63d2f29a9e203da3c946131d0069d365bf91bb2ead7e84eb64fc94de5b83a4591a886a80706f016d71fbf72aa6bcc879e6ed74
берем первые 32 байта(64 символа) f9c2a0faf7d5cc1794d5d8d23b63d2f29a9e203da3c946131d0069d365bf91bb и делаем из них приватный ключ битка таким образом получая наш первый по порядку ключ = L5bDG7jKgNTx61DSXfeCzPKRtnv1yftSxuXCGMU8S3r2hopJgiL7

для второго по порядку ключа считаем сид фразой f9c2a0faf7d5cc1794d5d8d23b63d2f29a9e203da3c946131d0069d365bf91bb2ead7e84eb64fc94de5b83a4591a886a80706f016d71fbf72aa6bcc879e6ed74
получаем от нее sha512 = 125be9b6a133789678cfdda04fde677295668d72212030f7d43c7357e4a618b4a480f148fd8a8679f33338ba5032c718ddd5e965dc96223cd64a1a90770ded9f
берем первые 32 байта(64 символа) 125be9b6a133789678cfdda04fde677295668d72212030f7d43c7357e4a618b4 и делаем из них приватный ключ битка таким образом получая наш первый по порядку ключ = KwqQ4dH6TtZWUgaG52G42zbxLz5zQN2udq2496AFZJJ3b81j8aop


Глава третья - Я взялся за питон и сделал это...
Алгоритм на питоне для данной операции не требует никаких внешних библиотек, рассмотрим его.

Код:
import hashlib
import base58

phrase_for_key = "my super secret phrase.my private keys"  # сид фраза
key_first = 10  #  первый по порядку от нуля ключ который нас интересует
keys_num = 3  # количество ключей которое хотим получить

for key_index_current in range(0, key_first + keys_num):  # естественно старутуем от нуля даже если нас интересуют ключ начиная с 1000
    key_utf8 = phrase_for_key.encode("utf8")  # получаем из внутреннего формата строк питона utf8
    hash_hex = hashlib.sha512(key_utf8).hexdigest()  # получаем хеш сумму в хекс виде

    if key_index_current >= key_first:  # в интересном нам  диапазоне ключ?
        currency_id = '80'  # ид код биткоина
        compressed = '01'  # флаг сжатого ключа
        key_body = currency_id + hash_hex[:64] + compressed  # полное тело ключа с кодом и флагом
        private_key_utf8 = base58.b58encode_check(bytes.fromhex(key_body))  # наш приват ключ на битки но в формате utf8
        private_key = private_key_utf8.decode("utf8")  # переводим в текст
        print(f"{key_index_current}: {private_key}")  # печатаем на экран

    phrase_for_key = hash_hex   # назначаем текущий хеш как сид для следующего ключа

# видим на выходе
# 10: L59p9RYKoD6kAgGjDwX5eaBaYcE5nZvNdMKwyiFDqobBxZVGK6pK
# 11: L5YXMr4xERiN9zVLHGq6BQRXohxdmtyXENQFJVLvT6mbsDqn7knW
# 12: KwG5CgK79vpk3Gf5pncDFYnjXMLRQaCmWYdGNSVfGzuw59eKgcZs
Если вы осилили понять код то теперь вы можете хранить любое количество крипто ключей просто в уме, ведь вы знаете как их легко получить, и если вам понадобится записать о них информацию то это может выглядеть примерно так:
my private keys
10 0.5
11 0.7
12 0.33
То есть в уме вы всегда держите супер секретную фразу, к ней делаете добавочную которая объясняет целевое назначение, личные, рабочие, на очистку....

И ты уже спросишь а почему не sha256? - потому что если использовать sha256 то спалив приватный ключ вы спалите всю цепь последующих, и если вы думаете что хрен кто догадается что от вашего привата нужно брать sha256 что бы вычислить следующий то я вас разочарую - еще как догадаются!


Часть вторая - Криптоверстачок.
Потребуется установка питон библиотек
https://pypi.org/project/bitcoinlib
https://pypi.org/project/pycryptodome/
https://pypi.org/project/ecdsa/

Криптоверстачок это достаточно простой инструмент для работы с ключами и адресами.
Валюты которые поддерживает криптоверстачок - btc, ltc, bch, dash, zec, doge, xmr, eth.

Он позволяет:
Заглянуть внутрь ключа или адреса.
Создать полный набор вариантов адресов для приватного ключа.
Создать альтернативный приватный ключ.
Создать версии ключа для всех поддерживаемых верстачком валют.
Создать по описываемому выше алгоритму ключи+адреса по своей сид sha512 фразе, в указанном диапазоне.
Зашифровать\Расшифровать ключ BIP38.
Быстро проверить адреса в базе адресов с балансами. _оффлайн_
Узнать балансы по адресам. _оффлайн_
Поискать криптоклад.

Программа поставляется в двух вариантах, секретном и открытом.
Особенности секретного варианта.
Криптоверстачок это инструмент который хочется всегда иметь под рукой, но очень не хочется что бы кто то мог понять что это за программа и что она делает, не хочется что бы кто то мог что то в ней изменить, и секретный вариант решает эти вопросы. Реализовано это просто, код зашифрован aes256cbc и лоадер у вас попросит ввести ключ, после ввода он расшифрует тело верстачка и выполнит через compile, exec - таким образом код не попадет в расшифрованном виде на постоянный носитель информации.



Базы проверки адресов.

Быстрая проверка есть баланс или нет.
База проверки адресов может быть собрана верстачком(в 1 поток, и это медленно) из .tsv файлов gz.blockchair.com, база собирается по следующему алгоритму:
Программа парсит указанную ей папку и из всех найденных .tsv файлов извлекает тела адресов отбрасывая из них ид и чексуммы.
То есть для
1Q1pE5vPGEEMqRcVRMbtBK842Y6Pzo6nK9 - p2pkh:legacy:base58check 00 fc7250a211deddc70ee5a2738de5f07817351cef compressed unknown 90dffab8
в базу попадет только fc7250a211deddc70ee5a2738de5f07817351cef именно в таком хекс виде.

Когда я нахожу приват ключ мне как правило важно знать есть ли баланс на одном из его многочисленных адресов, и только если он есть мне уже интересно в каком именно чейне, поэтому
для всех чейнов

blockchair_bitcoin_addresses_latest.tsv
blockchair_bitcoin-cash_addresses_latest.tsv
blockchair_bitcoin-sv_addresses_latest.tsv
blockchair_dash_addresses_latest.tsv
blockchair_dogecoin_addresses_latest.tsv
blockchair_litecoin_addresses_latest.tsv
я создаю единую базу тел с балансами.

Интересная информация на подумать, из всех этих чейнов было извлечено 81 719 457 адресов, из них уникальных тел 59 188 139, 20 потоков сделали мне единую базу за 7.2 минуты(код много-поточного билдера будет приложен к статье).
В моей базе не содержатся балансы и ссылки на оригинальный форматированный адрес из .tsv, мне нужна была легкая и быстрая база в которой можно будет в 20+ потоков быстро проверять массивы адресов - база потянула на 2.5гиг.

Проверка по ней получается очень быстрая но балансы она не показывает и даже не показывает какой именно адрес в каком чейне был найден.
пример:

looks like balanced body 17743beb429c55c942d2ec703b98c4d57c2df5c6 of address 1391nVmnCuxs5N5mvNxbShM2r9q7Rxmem6. WARNING BODY NOT ADDRESS!
address body checked 1, found 1, time elapsed 0.00041029999556485564
balanced body: 17743beb429c55c942d2ec703b98c4d57c2df5c6

получаем что на теле адреса 17743beb429c55c942d2ec703b98c4d57c2df5c6, есть баланс но какой именно адрес в каком чейне неясно, что бы прояснить это делаем проверку по .tsv базе.


Собираем эту базу быстро в многопотоке.
Если вам важно иметь всегда свежие базы то это единственный разумный вариант ее сборки.
запускаем утилиту
fast_address_check_database_maker
в поле Input path to folder with .tsv files, example - R:\Temp\tsv_folder: указываем на папку с .tsv файлами. Если в папке будут какие то еще файлы то это не проблема, программа будет открывать только .tsv
в поле Input path to folder for store database address_fast_check_database.json, example - R:\Temp\fast_db_folder: указываем папку куда положить созданную единую базу для быстрой проверки
в поле Input num threads: узказываем количество потоков от 1 до 64, не нужно указывать больше чем умеет ваш процессор.

*bitcoinlib будет постоянно ныть - Could not import all modules. Error: No module named 'mysql' - но вы просто забейте на это.

если все ок получим такой лог
Load file R:\Temp\bases\blockchair_bitcoin-sv_addresses_latest.tsv
process file R:\Temp\bases\blockchair_bitcoin-sv_addresses_latest.tsv
Load file R:\Temp\bases\blockchair_bitcoin_addresses_latest.tsv
process file R:\Temp\bases\blockchair_bitcoin_addresses_latest.tsv
Load file R:\Temp\bases\blockchair_dash_addresses_latest.tsv
process file R:\Temp\bases\blockchair_dash_addresses_latest.tsv
Load file R:\Temp\bases\blockchair_dogecoin_addresses_latest.tsv
process file R:\Temp\bases\blockchair_dogecoin_addresses_latest.tsv
Load file R:\Temp\bases\blockchair_litecoin_addresses_latest.tsv
process file R:\Temp\bases\blockchair_litecoin_addresses_latest.tsv
wait threads finish work
total adderess 81719457, unical 59188139 # да многие адреса имеют одну основу, это ведь так удобно =)
time elapsed 7.277706288333333 minutes # в однопоток это реально боль, напомню это было 20 потоков
address_fast_check_database saved to - R:\Temp\bases\address_fast_check_database.json, num records 59188139


Быка за рога а Машку за ляжку.
Прежде чем рассматривать меню программы давайте сразу пройдемся по практическому примеру.
Допустим мы нашли приватный ключ 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf и нам интересно что мы можем с него получить, действуем так:
запускаем верстачек
вводим: 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf
получаем:
base58check: 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf
37 bytes hex_b58check: 800000000000000000000000000000000000000000000000000000000000000001 a85aa87e
best match:BTC:private:mainnet
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf - WIF:base58check 80 0000000000000000000000000000000000000000000000000000000000000001 not compressed a85aa87e
1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm - p2pkh:legacy:base58check 00 91b24bf9f5288532960ac687abb035127b1d28a5 compressed unknown 0074ffe0
.....

обращаем внимание на появившуюся строку
Last output has private keys 6 and adresses 11. For save enter - s. For fast check balances enter - c. For check in .tsv bases - t


но нам сейчас интересно только тело ключа освобожденное от лишнего поскольку хотим получить все производное от этого ключа(и да не волнуемся что ключ странный, их много таких...странных, в основном это объясняется хардком на случай ошибок в софте или тестами)
вводим: b:0000000000000000000000000000000000000000000000000000000000000001
получаем все что программа может выжать из тела данного ключа:
....
обращаем внимание на то что адресов и ключей прибавилось
Last output has private keys 13 and adresses 21. For save enter - s. For fast check balances enter - c. For check in .tsv bases - t


вот теперь настало время проверять балансы, и для начала делаем быструю проверку есть ли там что то
вводим: c
и программа у нас спрашивает откуда ей взять базу для проверки, это нужно сделать только один раз в течении сеанса, база из памяти не выгружается.
Enter database file name, example - c:\db\address_fast_check_database.json:


вводим путь к базе и получаем
Success database loaded 59188139 keys
looks like balanced body 751e76e8199196d454941c45d1b3a323f1433bd6 of address 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH. WARNING BODY NOT ADDRESS!
looks like balanced body 17743beb429c55c942d2ec703b98c4d57c2df5c6 of address 33q2i3GDkpHFAXnD3UdBsKhxzg7pvwAqtN. WARNING BODY NOT ADDRESS!
address body checked 5, found 2, time elapsed
0.0004619999999988522
balanced body: 17743beb429c55c942d2ec703b98c4d57c2df5c6
balanced body: 751e76e8199196d454941c45d1b3a323f1433bd6


видим что по двум адресам у нас нашелся баланс, теперь нужно узнать что по каким именно адресам и сколько там микро-сатоши
вводим: t
и программа у нас спрашивает откуда ей взять базы для точной проверки, это нужно сделать только один раз в течении сеанса, базы из памяти не выгружается.
Enter folder name with .tsv files, example - c:\address_tsv:


вводим путь к базе и получаем
Load file Z:\R\Temp\bases\blockchair_bitcoin-cash_addresses_latest.tsv
Load file Z:\R\Temp\bases\blockchair_bitcoin-sv_addresses_latest.tsv
Load file Z:\R\Temp\bases\blockchair_bitcoin_addresses_latest.tsv
Load file Z:\R\Temp\bases\blockchair_dash_addresses_latest.tsv
Load file Z:\R\Temp\bases\blockchair_dogecoin_addresses_latest.tsv
Load file Z:\R\Temp\bases\blockchair_litecoin_addresses_latest.tsv
address_tsv_check_database updated
33q2i3GDkpHFAXnD3UdBsKhxzg7pvwAqtN 550 Z:\R\Temp\bases\blockchair_bitcoin-sv_addresses_latest.tsv
33q2i3GDkpHFAXnD3UdBsKhxzg7pvwAqtN 112653 Z:\R\Temp\bases\blockchair_bitcoin_addresses_latest.tsv
qp63uahgrxged4z5jswyt5dn5v3lzsem6cy4spdc2h 1000 Z:\R\Temp\bases\blockchair_bitcoin-cash_addresses_latest.tsv

address checked 19, found 3, time elapsed
17.387576100000004

Ну вот теперь можно что то снять со всех трех адресов. Я кстати ничего с них не снимал, так что кто то может потренироваться на этих кошках.
Обратите внимание на разницу в скоростях проверки, делайте всегда предварительный чек на быстрой базе.
А теперь собственно рассмотрим меню программы.

Главное меню.


72f68ace9f39e2aad4329.png


Не все консоли поддерживают цветовые режимы, или не все из режимов поддерживают, так что если у вас какие то странные символы на экране то вводите bw для перехода в черно белый режим.

Пункт 1, вы просто вводите приватный адрес или ключ и программа сама определяет что ей дают и выводит тип который посчитала правильным, используется для исследования содержимого ключа а так же проверки баланса.
base58check: 1Q1pE5vPGEEMqRcVRMbtBK842Y6Pzo6nK9
25 bytes hex_b58check: 00fc7250a211deddc70ee5a2738de5f07817351cef 90dffab8
best match:BTC:address:mainnet
1Q1pE5vPGEEMqRcVRMbtBK842Y6Pzo6nK9 - p2pkh:legacy:base58check 00 fc7250a211deddc70ee5a2738de5f07817351cef compressed unknown 90dffab8
BCH:address:mainnet
bitcoincash:qr78y59zz80dm3cwuk388r097pupwdguauvqmahfks - p2pkh:legacy:bitcoincash 00 fc7250a211deddc70ee5a2738de5f07817351cef 90dffab8


Пункт 2, вы подсказываете программе что именно за формат данных вы ввели, это на тот случай если авто распознавание ошиблось а в остальном это то же самое что и пункт 1.
например hex:80111111111111111111111111111111111111111111111111111111111111111101

Пункт 3, ввод тела адреса или тела ключа, всегда хекс формат, означает что программа должна вам составить все знакомые ей типы ключей и адресов для которых подойдет это тело.
например если вы в базе нашли тело адреса fc7250a211deddc70ee5a2738de5f07817351cef вы делаете ввод b:fc7250a211deddc70ee5a2738de5f07817351cef и получаете лист всех адресов которые можно сделать из этого тела а именно
BTC:address:mainnet
1Q1pE5vPGEEMqRcVRMbtBK842Y6Pzo6nK9 - p2pkh:legacy:base58check 00 fc7250a211deddc70ee5a2738de5f07817351cef compressed unknown 90dffab8
BTC:address:mainnet
3Qhq9dQpp8YjvbJvYTGUbwUzB4P7Yimwur - p2psh:p2sh-segwit:base58check 05 fc7250a211deddc70ee5a2738de5f07817351cef compressed unknown 8744d5e1
BTC:address:mainnet
bc1ql3e9pgs3mmwuwrh95fecme0s0qtn2880lsvsd5 - bech32:legacy:bech32 fc7250a211deddc70ee5a2738de5f07817351cef compressed by default
LTC:address:mainnet
LiEmVJEDLtUR6EJebVbBTLBpEkTg9d3Tx3 - p2pkh:legacy:base58check 30 fc7250a211deddc70ee5a2738de5f07817351cef compressed unknown cee45770
LTC:address:mainnet
3Qhq9dQpp8YjvbJvYTGUbwUzB4P7Yimwur - p2psh:p2sh-segwit:base58check 05 fc7250a211deddc70ee5a2738de5f07817351cef compressed unknown 8744d5e1
LTC:address:mainnet
ltc1ql3e9pgs3mmwuwrh95fecme0s0qtn2880mvk54y - bech32:legacy:bech32 fc7250a211deddc70ee5a2738de5f07817351cef compressed by default
BCH:address:mainnet
bitcoincash:qr78y59zz80dm3cwuk388r097pupwdguauvqmahfks - p2pkh:legacy:bitcoincash 00 fc7250a211deddc70ee5a2738de5f07817351cef 0c001b1d17091610
BCH:address:mainnet
bitcoincash:pr78y59zz80dm3cwuk388r097pupwdguaum9xjs2dd - p2psh:p2sh-segwit:bitcoincash 08 fc7250a211deddc70ee5a2738de5f07817351cef 1b050612100a0d0d
ZEC:address:mainnet
t1gtRERLXEZ1xS4fPMnR1K8DyHCHUjAgWni - p2pkh:legacy:base58check 1cb8 fc7250a211deddc70ee5a2738de5f07817351cef compressed unknown 0a9d3117
DASH:address:mainnet
Xyhf4LaHDwSwzND5HEv72qoqrsg625rCMt - p2pkh:legacy:base58check 4c fc7250a211deddc70ee5a2738de5f07817351cef compressed unknown 7ceb758f
DOGE:address:mainnet
DU9umLs2Ze8eNRo69wbSj5HeufphJawFPh - p2pkh:legacy:base58check 1e fc7250a211deddc70ee5a2738de5f07817351cef compressed unknown 608949bc
ETH:address:mainnet
0xfC7250A211Deddc70eE5a2738de5f07817351cef - ethereum:hex_ethereum fc7250a211deddc70ee5a2738de5f07817351cef


и вот вы уже приблизительно знаете где искать золото.

Так же если вы нашли приватный адрес, вскрыли его и хотите(я как правило очень хочу) узнать а какие вообще родственные адреса и приват ключи вы можете получить от него.
Алгоритм действий:

вводим приват KwntMbt59tTsj8xqpqYqRRWufyjGunvhSyeMo3NTYpFYzZbXJ5Hp и получаем вывод
base58check: KwntMbt59tTsj8xqpqYqRRWufyjGunvhSyeMo3NTYpFYzZbXJ5Hp
38 bytes hex_b58check: 80111111111111111111111111111111111111111111111111111111111111111101 969b59a7
best match:BTC:private:mainnet
KwntMbt59tTsj8xqpqYqRRWufyjGunvhSyeMo3NTYpFYzZbXJ5Hp - WIF:base58check 80 1111111111111111111111111111111111111111111111111111111111111111 01 969b59a7
1Q1pE5vPGEEMqRcVRMbtBK842Y6Pzo6nK9 - p2pkh:legacy:base58check 00 fc7250a211deddc70ee5a2738de5f07817351cef compressed unknown 90dffab8


видим что тело привата это 1111111111111111111111111111111111111111111111111111111111111111, а значит вводим b:1111111111111111111111111111111111111111111111111111111111111111 и получаем все на свете что можно от него произвести, вот такой вывод
hex: 1111111111111111111111111111111111111111111111111111111111111111
BTC:private:mainnet
KwntMbt59tTsj8xqpqYqRRWufyjGunvhSyeMo3NTYpFYzZbXJ5Hp - WIF:base58check 80 1111111111111111111111111111111111111111111111111111111111111111 01 969b59a7
1Q1pE5vPGEEMqRcVRMbtBK842Y6Pzo6nK9 - p2pkh:legacy:base58check 00 fc7250a211deddc70ee5a2738de5f07817351cef compressed unknown 90dffab8
3PFpzMLrKWsphFtc8BesF3MGPnimKMuF4x - p2psh:p2sh-segwit:base58check 05 ec8f3d9c2763a0997a465b968d99db47e82e69d2 compressed unknown c5e119fd
bc1ql3e9pgs3mmwuwrh95fecme0s0qtn2880lsvsd5 - bech32:legacy:bech32 fc7250a211deddc70ee5a2738de5f07817351cef compressed by default
BTC:private:mainnet
5HwoXVkHoRM8sL2KmNRS217n1g8mPPBomrY7yehCuXC1115WWsh - WIF:base58check 80 1111111111111111111111111111111111111111111111111111111111111111 not compressed e5ce7258
1MsHWS1BnwMc3tLE8G35UXsS58fKipzB7a - p2pkh:legacy:base58check 00 e4e517ee07984a4000cd7b00cbcb545911c541c4 compressed unknown 532576dd
39MLXh2vuGyzCuNVTepwPdEwLuU1oRQ1Qp - p2psh:p2sh-segwit:base58check 05 540837f1a3bf5871d3cb4c80c49b506d6003088e compressed unknown b9f7b8bd
LTC:private:mainnet
T3d9oMBFZGSUVybiNUVhdn4HcqNayswbGBYcer117nRiWT8Gph6i - WIF:base58check b0 1111111111111111111111111111111111111111111111111111111111111111 01 6df78793
LiEmVJEDLtUR6EJebVbBTLBpEkTg9d3Tx3 - p2pkh:legacy:base58check 30 fc7250a211deddc70ee5a2738de5f07817351cef compressed unknown cee45770
3PFpzMLrKWsphFtc8BesF3MGPnimKMuF4x - p2psh:p2sh-segwit:base58check 05 ec8f3d9c2763a0997a465b968d99db47e82e69d2 compressed unknown c5e119fd
ltc1ql3e9pgs3mmwuwrh95fecme0s0qtn2880mvk54y - bech32:legacy:bech32 fc7250a211deddc70ee5a2738de5f07817351cef compressed by default
LTC:private:mainnet
6uFXzdHphqp1LhvBHCDPoPtwy9hEbBdqYXwHgqiEcyWcgpVMRxT - WIF:base58check b0 1111111111111111111111111111111111111111111111111111111111111111 not compressed 9c5e6d70
Lg6EmeK1sbbfJh2PJQ2NkYwCHM2buUDWjT - p2pkh:legacy:base58check 30 e4e517ee07984a4000cd7b00cbcb545911c541c4 compressed unknown d82e64c2
39MLXh2vuGyzCuNVTepwPdEwLuU1oRQ1Qp - p2psh:p2sh-segwit:base58check 05 540837f1a3bf5871d3cb4c80c49b506d6003088e compressed unknown b9f7b8bd
BCH:private:mainnet
KwntMbt59tTsj8xqpqYqRRWufyjGunvhSyeMo3NTYpFYzZbXJ5Hp - WIF:base58check 80 1111111111111111111111111111111111111111111111111111111111111111 01 969b59a7
bitcoincash:qr78y59zz80dm3cwuk388r097pupwdguauvqmahfks - p2pkh:legacy:bitcoincash 00 fc7250a211deddc70ee5a2738de5f07817351cef 0c001b1d17091610
bitcoincash:prkg70vuya36pxt6gededrvemdr7stnf6g8d8uyqtr - p2psh:p2sh-segwit:bitcoincash 08 ec8f3d9c2763a0997a465b968d99db47e82e69d2 070d071c04000b03
BCH:private:mainnet
5HwoXVkHoRM8sL2KmNRS217n1g8mPPBomrY7yehCuXC1115WWsh - WIF:base58check 80 1111111111111111111111111111111111111111111111111111111111111111 not compressed e5ce7258
bitcoincash:qrjw29lwq7vy5sqqe4aspj7t23v3r32pcszzn5dxqp - p2pkh:legacy:bitcoincash 00 e4e517ee07984a4000cd7b00cbcb545911c541c4 020213140d060001
bitcoincash:pp2qsdl35wl4suwnedxgp3ym2pkkqqcg3cvnc4nthc - p2psh:p2sh-segwit:bitcoincash 08 540837f1a3bf5871d3cb4c80c49b506d6003088e 0c131815130b1718
ZEC:private:mainnet
KwntMbt59tTsj8xqpqYqRRWufyjGunvhSyeMo3NTYpFYzZbXJ5Hp - WIF:base58check 80 1111111111111111111111111111111111111111111111111111111111111111 01 969b59a7
t1gtRERLXEZ1xS4fPMnR1K8DyHCHUjAgWni - p2pkh:legacy:base58check 1cb8 fc7250a211deddc70ee5a2738de5f07817351cef compressed unknown 0a9d3117
ZEC:private:mainnet
5HwoXVkHoRM8sL2KmNRS217n1g8mPPBomrY7yehCuXC1115WWsh - WIF:base58check 80 1111111111111111111111111111111111111111111111111111111111111111 not compressed e5ce7258
t1ejtWmRKmG9CeXP84grCcLyMKnrQWQccdH - p2pkh:legacy:base58check 1cb8 e4e517ee07984a4000cd7b00cbcb545911c541c4 compressed unknown 4a607a6c
DASH:private:mainnet
XBroosGSTa6KnTyDrbYhvehvazzrMbXwpYzGKZhesBXePig6zouV - WIF:base58check cc 1111111111111111111111111111111111111111111111111111111111111111 01 3e818834
Xyhf4LaHDwSwzND5HEv72qoqrsg625rCMt - p2pkh:legacy:base58check 4c fc7250a211deddc70ee5a2738de5f07817351cef compressed unknown 7ceb758f
DASH:private:mainnet
7qgNw7riZkkM7gBvfRbNWNgdcLwLnuEMaRvJX2yLTKhUWBUdZ14 - WIF:base58check cc 1111111111111111111111111111111111111111111111111111111111111111 not compressed 29b7f7d3
XwZ8Lgf5keaCCpvoz9MJL4ZDuUF1msarf7 - p2pkh:legacy:base58check 4c e4e517ee07984a4000cd7b00cbcb545911c541c4 compressed unknown 83e3e64e
DOGE:private:mainnet
QPBoWSh4QVwzxfMtR7PdJeMX91kqxM4WLELGafmJHAruSVa7vey5 - WIF:base58check 9e 1111111111111111111111111111111111111111111111111111111111111111 01 a9566cb0
DU9umLs2Ze8eNRo69wbSj5HeufphJawFPh - p2pkh:legacy:base58check 1e fc7250a211deddc70ee5a2738de5f07817351cef compressed unknown 608949bc
DOGE:private:mainnet
6JG8pTDFNBdvuwTUxm3Qdd71V6cJtWU5P2fMJ9L6jBPdofeGnc6 - WIF:base58check 9e 1111111111111111111111111111111111111111111111111111111111111111 not compressed f9bf8c2f
DS1P3gwq6MFtatWprr2e2J32xGPd89n75C - p2pkh:legacy:base58check 1e e4e517ee07984a4000cd7b00cbcb545911c541c4 compressed unknown fb4c39b3
ETH:private:mainnet
1111111111111111111111111111111111111111111111111111111111111111 - WIF:hex 1111111111111111111111111111111111111111111111111111111111111111
0x19E7E376E7C213B7E7e7e46cc70A5dD086DAff2A - ethereum:hex_ethereum 19e7e376e7c213b7e7e7e46cc70a5dd086daff2a
XMR:seed:mainnet: seed base is 1111111111111111111111111111111111111111111111111111111111111111
XMR: inundate ridges slug inundate ridges slug inundate ridges slug inundate ridges slug inundate ridges slug inundate ridges slug inundate ridges slug inundate ridges slug inundate
secret_spend_key: 243d1bb4f6adfeb83a74196e321732fc10111111111111111111111111111101
secret_view_key: 779e4dd2c49ac3c0b2edcd1b843c795b7d6eb51457125bb9c90339b752f23700
public_spend_key: 857eed804ff087b97f87848f6493e87257a8c5203cb9f422f6e7a7d8a4d299f3
public_view_key: 0489cb98c7108372eaff2cdeddc5e76166b017a847537bf8499d61465395e942
public_address: 46gXNFZinyUY2Zk5wJNro1L8GMSDCdCiF6rCZ3JKr3VJheaRvUyBHqtLDrC6jY6TLzHHux42kSzgiiXhcuDuceP28Y2x8vA


В самой программе оно разукрашено и смотрится получше.
и вот теперь можно уже проверить все это на балансы, смотри главу про быка и Машку.

Пункт 4, получаем sha256 от фразы после !, и делаем из результата пункт 3.

Пункт 5, шифруем или расшифровываем приват адрес, ну ты же в курсе мой друг - кругом жулье.

Пункт 6, бездонная бочка ключей, об этом было написано выше, вот как она выглядит в программе.
вводим p:all:2:10:my super secret phrase.my private keys
получаем



49274f66173d96780b0df.png



Картинка и фраза из бойцовского клуба поможет тебе избежать опечаток, неверная сид фраза=неверная картинка и "возможно" другая фраза(фраз мало).

Пункт 7 ltsvdb, загрузка .tsv баз для проверки балансов.

Пункт 8 lchkdb, загрузка уже собранной из .tsv базы для быстрой проверки балансов.

Пункт 9 bchkdb, собрать из .tsv базу быстрой проверки балансов address_fast_check_database.json.
Здесь она будет собираться медленно, поскольку в 1 поток, но к статье будет приложен скрипт для быстрой много-поточной сборки.

Пункт 10 chkdb, быстро проверить базу парсера(Криптофунтика) db_prv_variants.json, что это за база можно прочитать в статье про парсинг логов, провека будет идти по базе address_fast_check_database.json.
база в 600+мег проверяется довольно быстро, 7 милионов адресов за 11 секунд в один поток я считаю очень неплохо.
address body checked 6863487 of total ~6863550, found 5, time elapsed 11.175164999999993

Пункт 11 q, пойти уже делать домашку.


Сохранение последнего вывода программы.
Как только вы даете программе пищу для исследовани или генерации ключей, у вас над предложением ввода появится строка предлагающая сохранить последний вывод в файл или проверить ключи на баланс.
Last output has private keys 13 and adresses 21. For save enter - s. For fast check balances enter - c. For check in .tsv bases - t
*Информация о XMR не сохраняется и не проверяется (не успел, увы) .
Сохранение вполне подробное и грепабельно-авкабельно-седабельное.
Выглядит так:
BTC:private:mainnet:WIF:KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn
BTC:private:mainnet:WIF:5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf
LTC:private:mainnet:WIF:T33ydQRKp4FCW5LCLLUB7deioUMoveiwekdwUwyfRDeGZm76aUjV
LTC:private:mainnet:WIF:6u823ozcyt2rjPH8Z2ErsSXJB5PPQwK7VVTwwN4mxLBFrao69XQ
BCH:private:mainnet:WIF:KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn
BCH:private:mainnet:WIF:5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf
ZEC:private:mainnet:WIF:KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn
ZEC:private:mainnet:WIF:5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf
DASH:private:mainnet:WIF:XBHddvWWiMu3nZhhpTXBQWJMmdz5JNKJD85b9fgKAckCT2coW3Y4
DASH:private:mainnet:WIF:7qYrzJZWqnyCWMYswFcqaRJypGdVceudXPSxmZKsngN7fyo7aAV
DOGE:private:mainnet:WIF:QNcdLVw8fHkixm6NNyN6nVwxKek4u7qrioRbQmjxac5TVoTtZuot
DOGE:private:mainnet:WIF:6J8csdv3eDrnJcpSEb4shfjMh2JTiG9MKzC1Yfge4Y4GyUsjdM6
ETH:private:mainnet:WIF:0000000000000000000000000000000000000000000000000000000000000001
BTC:address:mainnet:p2pkh:1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn
BTC:address:mainnet:p2psh:3JvL6Ymt8MVWiCNHC7oWU6nLeHNJKLZGLN KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn
BTC:address:mainnet:bech32:bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn
BTC:address:mainnet:p2pkh:1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf
BTC:address:mainnet:p2psh:33q2i3GDkpHFAXnD3UdBsKhxzg7pvwAqtN 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf
LTC:address:mainnet:p2pkh:LVuDpNCSSj6pQ7t9Pv6d6sUkLKoqDEVUnJ T33ydQRKp4FCW5LCLLUB7deioUMoveiwekdwUwyfRDeGZm76aUjV
LTC:address:mainnet:p2psh:3JvL6Ymt8MVWiCNHC7oWU6nLeHNJKLZGLN T33ydQRKp4FCW5LCLLUB7deioUMoveiwekdwUwyfRDeGZm76aUjV
LTC:address:mainnet:bech32:ltc1qw508d6qejxtdg4y5r3zarvary0c5xw7kgmn4n9 T33ydQRKp4FCW5LCLLUB7deioUMoveiwekdwUwyfRDeGZm76aUjV
LTC:address:mainnet:p2pkh:LYWKqJhtPeGyBAw7WC8R3F7ovxtzAiubdM 6u823ozcyt2rjPH8Z2ErsSXJB5PPQwK7VVTwwN4mxLBFrao69XQ
LTC:address:mainnet:p2psh:33q2i3GDkpHFAXnD3UdBsKhxzg7pvwAqtN 6u823ozcyt2rjPH8Z2ErsSXJB5PPQwK7VVTwwN4mxLBFrao69XQ
BCH:address:mainnet:p2pkh:bitcoincash:qp63uahgrxged4z5jswyt5dn5v3lzsem6cy4spdc2h KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn
BCH:address:mainnet:p2psh:bitcoincash:pz70adegkkzz202l8acteduqa8hjrzng7s9tg65l3m KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn
BCH:address:mainnet:p2pkh:bitcoincash:qzgmyjle755g2v5kptrg02asx5f8k8fg55zdx7hd4l 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf
BCH:address:mainnet:p2psh:bitcoincash:pqthgwltg2w9tj2z6tk8qwuccn2hct04cc000ppsgr 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf
ZEC:address:mainnet:p2pkh:t1UYsZVJkLPeMjxEtACvSxfWuNmddpWfxzs KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn
ZEC:address:mainnet:p2pkh:t1X9yaRpCHJpWX1HrGUxEu39xyQinmo3Ana 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf
DASH:address:mainnet:p2pkh:XmN7PQYWKn5MJFna5fRYgP6mxT2F7xpekE XBHddvWWiMu3nZhhpTXBQWJMmdz5JNKJD85b9fgKAckCT2coW3Y4
DASH:address:mainnet:p2pkh:XoyDQM3xGhFW5JqYBwTLckjqZ67Q3jZfAL 7qYrzJZWqnyCWMYswFcqaRJypGdVceudXPSxmZKsngN7fyo7aAV
DOGE:address:mainnet:p2pkh:DFpN6QqFfUm3gKNaxN6tNcab1FArL9cZLE QNcdLVw8fHkixm6NNyN6nVwxKek4u7qrioRbQmjxac5TVoTtZuot
DOGE:address:mainnet:p2pkh:DJRU7MLhcPwCTNRZ4e8gJzDebtG1H5M7pc 6J8csdv3eDrnJcpSEb4shfjMh2JTiG9MKzC1Yfge4Y4GyUsjdM6
ETH:address:mainnet:ethereum:0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf 0000000000000000000000000000000000000000000000000000000000000001



Часть третья - Криптоклады.
Ну вот дорогой друг ты уже вооружен и опасен, теперь уже можно и поискать этих чудных кладов.
Берем sha256 от скажем слова bitcoin, вводим
!bitcoin
hex: 6b88c087247aa2f07ee1c5956b8e1a9f4c7f892a70e324f1bb3d161e05ca107b

и получаем список адресов и чекаем в чейне первый
Address
18VkRiDhFu2Z17AvtpU3vL2LbTXDzCvDVo
Format
Base58 (P2PKH)
Transactions
4
Total Received
0.01010000 BTC
Total Sent
0.01010000 BTC
Final Balance
0.00000000 BTC


а что если почекать еще 1 из списка?
Address
1E984zyYbNmeuumzEdqT8VSL8QGJi3byAD
Format
Base58 (P2PKH)
Transactions
54
Total Received
0.17054557 BTC
Total Sent
0.17054557 BTC
Final Balance
0.00000000 BTC


последняя транза кстати -
Hash
8b76837e189ddf6e654a3d9aad9aae979de6cbd2a31d67c8b83f78871c3dafd8
2021-04-15 19:41
1E984zyYbNmeuumzEdqT8VSL8QGJi3byAD
0.00008010 BTC
35Esny2NqaYjVWTEJRNt9SJEth9jMHB37u
0.00001010 BTC
Fee
0.00007000 BTC(31.674 sat/B - 7.919 sat/WU - 221 bytes)


а вот что там насчет биткоин кеш от этого же привата =)
Address
qzgz9hg7u927jltdsafhtdy27nqxyxdg3vmmlq8788
Format
Unknown (Unknown)
Transactions
44
Total Received
0.29879767 BCH
Total Sent
0.29879767 BCH
Final Balance
0.00000000 BCH


последняя транза -
2021-04-03 21:09
qrqfupnx3a57pjenkjuelejawj9q9pwg05l39kvs9x
38.28669453 BCH
qzgz9hg7u927jltdsafhtdy27nqxyxdg3vmmlq8788
0.12837530 BCH
qpx6hmk24c0ychyysxw0maptllkd0lgvsvuns99mjs
38.15831698 BCH
Fee
0.00000225 BCH(1.000 sat/B - 0.250 sat/WU - 225 bytes)
+0.12837530 BCH


!treasures, !i love you,... =)
Виды спорта, команды, знаменитости, крылатые фразы, даты, события, география, игры, герои аниме, формулы, наркотеги, ...кто знает...., а где то можно взять хеш от хеша, а потом еще и еще, я встречал матрешку на 4 вложности и на каждой были транзакции.


Что хотел сделать но не успел.
Вскрытие wallet.dat и чек его адресов.
Многоядерный чекер баланса как сервис, те. верстачок отправляет сервису скажем на 192.128.x.x:4521 пачку ключей, сервис что может проверяет локально а остальное через апи онлайн чекеров.
Брут BIP38 по словарю, и по выборке слов из файла клиента(например по кешу пассов браузера), то есть раздергиваем файл на все что может быть пассом и прогоняем через бип.
Парсинг крипты в указанном файле\папке с проверкой балансов, иногда хочется просто быстро проверить лог какого то клиента есть там что то вообще или нет.
Ну и конечно же маловато коинов.


Почему такой корявый код?
Я новичок в питоне моя тема c++ и asm, а еще на конкурс отведено было мало времени для создания инструментов которые можно было бы предложить публике, то есть что то большее чем куски концептов.


Для тех кто хочет улучшить код.
Мне вас жаль, но если что начинайте с ознакомления со словарем MyCC.currency_data.

Дополнительно:

Тестировалось на питон 3.8
crypto-tool - открытый
crypto-tool - закрытый пароль на вход в программу exploit.in
fast_address_check_database_maker - многопоточный билдер базы для быстрой проверки есть баланс или нет
все тулзы здесь: anonfiles.com/x42aI1jay0/tools_rar


Автор: CryptoBoy
 

spdnet

Banned
BAN
Регистрация
25.05.2022
Сообщения
1
Реакции
0
Вроде прикольно, а какой пароль на файлы? :)
 

Admin

#1
Администратор
Регистрация
31.12.2019
Сообщения
6,977
Реакции
34
spdnet, перезалил без пароля.
 

panodig

Banned
BAN
Регистрация
16.11.2022
Сообщения
3
Реакции
0
где можно скачать ? по ссылке нет
и спасибо за толковый разбор методики поиска
 

Admin

#1
Администратор
Регистрация
31.12.2019
Сообщения
6,977
Реакции
34
panodig, линк в конце статьи рабочий.
 

dreamCatcher

Banned
BAN
Регистрация
16.11.2022
Сообщения
8
Реакции
0
Очень толково написано, спасибо. Если, например, будут вопросы - можно будет как-то связаться с автором?
 

panodig

Banned
BAN
Регистрация
16.11.2022
Сообщения
3
Реакции
0
чуть помониторил вопрос и нашел закономерность 0000000000000000000000000000000000000000000000000000000000000001 и адреса плюс-минус 500 что дает примерно такой набор мастеркей
KwntMbt59tTsj8xqpqYqRRWufyjGunvhSyeMo3NTYpFYzZbXJ5Hp
5HwoXVkHoRM8sL2KmNRS217n1g8mPPBomrY7yehCuXC1115WWsh
KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU75NBY2dKG
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreB4AD8Yi уже все выпоторошили и с инверсией нулей в еденицы так же ,действительно рабочий сид либо мастеркей дает поле для отработки ближайших вариантов ключа по всем монеткам
 

Admin

#1
Администратор
Регистрация
31.12.2019
Сообщения
6,977
Реакции
34
dreamCatcher, тс с форума exploit, если если у вас есть аккаунт на данном форуме - по нику его можно без проблем там будет найти и связаться по вопросам данной статьи.
 

dreamCatcher

Banned
BAN
Регистрация
16.11.2022
Сообщения
8
Реакции
0
dreamCatcher, тс с форума exploit, если если у вас есть аккаунт на данном форуме - по нику его можно без проблем там будет найти и связаться по вопросам данной статьи.

Да, благодарю, понял что статья с эксплойта) К сожалению, аккаунт не завел в свое время. Там ведь по инвайтам только.
Не проблема, может тут будут единомышленники. Очень уж заинтересовала тема. Ясно, что на относительно легкодоступных кошелях и паблик логах уже все вычистили, плюс скрипты автовывода понаставили. Но хотелось бы надеяться, что еще много вкусностей ждут своего часа...

В общем - знаю чем займусь в ближайшие месяцы )) И интересно и продуктивно в перспективе.
 

Admin

#1
Администратор
Регистрация
31.12.2019
Сообщения
6,977
Реакции
34
Там ведь по инвайтам только.

Раньше было через аккаунты с других доверенных площадок, но после смены администратора года 4 назад стало просто через фикс. оплату 100$.
 

Admin

#1
Администратор
Регистрация
31.12.2019
Сообщения
6,977
Реакции
34

dreamCatcher

Banned
BAN
Регистрация
16.11.2022
Сообщения
8
Реакции
0
dreamCatcher, тс с форума exploit, если если у вас есть аккаунт на данном форуме - по нику его можно без проблем там будет найти и связаться по вопросам данной статьи.

Раньше было через аккаунты с других доверенных площадок, но после смены администратора года 4 назад стало просто через фикс. оплату 100$.

Отлично, раз можно купить доступ. Но меня терзают смутные сомнения, что без плотного общения там можно будет увидеть что-либо стоящее. Как эти статьи, например. Там же все под хайдом скорее всего.

Кстати,подобных интересных статей нет больше? Там или на xss.is? Давайте больше криптовалютных тем на подумать )
 

Admin

#1
Администратор
Регистрация
31.12.2019
Сообщения
6,977
Реакции
34
dreamCatcher, по разному, бывает под хайдами, бывает без. Эти статьи были конкурсные т.е. за них спонсоры платили бабки. На халяву такое не пишут=)
 

dreamCatcher

Banned
BAN
Регистрация
16.11.2022
Сообщения
8
Реакции
0
Ясно )
 

Members, viewing this thread

Сейчас на форуме нет ни одного пользователя.