Jump to content

Recommended Posts

Posted (edited)

Написал утилитку для восстановления приватных ключей формата WIF. Ключ этого формата имеет длина 51 символ. Состоит из символов алфавита base58 - 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz (Обратите внимание что отсутствуют некоторые буквы и цифра 0).

Ключ формата WIF начинается на 5 для BTC или на 6 для LTC.

Ключ может быть искажён при переписывании вручную. Может пострадать бумажка с записью ключа и ещё много разных ситуаций.

Методом перебора утилита добивается того что бы ключ подходил под хэш, или хэш под ключ.

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

То есть теоретически возможно нахождение нескольких ключей.

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

PriKeyWIF.thumb.jpg.4475b882cc958471c43ac77dee8c5235.jpg

 

 

PriKeyWIF.zip

 

Адрес для помощи проекту.

BTC 3GmNvNHWnmGdcm26AaVVyENqM2K9YXm9MV

 

 

Edited by Lenchik
Posted
1 час назад, NapsterNapster сказал:

было бы не плохо заглянуть исходник

Там нет ничего интересного. Хэш считают библиотеки MIT. Перебор вариантов только оригинальный. 

Здесь не выложить, объём большой за счёт библиотек от MIT.

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

Решили что в ключе есть ошибка, тем более один символ был "О", а такого символа в base58 нет. Написал утилиту для исправления ошибок. При двух исправленных символах она нашла один валидный ключ, при трёх, чуть больше десятка. Все адреса оказались пустыми, а договаривались на 10% от содержимого. 10% от ноля, это ноль, всё честно.

Код написан в индусском стиле  Индусский код — Lurkmore , такое даже стыдно выкладывать. 

 

@NapsterNapster проверить её очень просто. Онлайн генерируете ключ WIF. Меняете два символа в ключе на любые из алфавита base58. Скармливаете утилите и на выходе получаете снова оригинальный ключ. Можно и три символа, но будет долго, пару часов на среднем компьютере. Для проверки утилиты хватит и двух символов.

Скорость сильно не оптимизировал. Утилита работает в один поток. Не стал с мультипоточностью заморачиваться. Можно несколько экземпляров BAT запустить одновременно что бы загрузить многоядерный процессор. CUDA могу написать, а под OpenCL никогда не писал. Да и смысла большого нет её разгонять. Если сделать подбор четырёх символов, то она сотни валидных ключей подберёт. Причина в том что хэш в ключе не полный, первые четыре байта от двойного sha256, а под такое много чего можно подобрать. 

 

 

Posted

@NapsterNapster Здесь ограничение в 9 мегабайт на прикреплённые файлы.

И зачем вам оно? В лучшем случае приделать сбоку бантик и выложить под своим именем, в худшем, приделать трояна и то же выложить. 

 

  • 2 months later...
Posted

Добрый день! А вам не сложно будет переделать ее под адрес WIF начинающийся на  'L' и 'K'?

Posted
17 минут назад, ldb68 сказал:

Добрый день! А вам не сложно будет переделать ее под адрес WIF начинающийся на  'L' и 'K'?

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

Первый символ ни на что не влияет и не участвует в вычислении контрольной суммы. То есть вы можете заменить свои L или K скажем на 5, найти ошибку в ключе, а потом заменить обратно на L или K.

Posted
1 минуту назад, Lenchik сказал:

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

Первый символ ни на что не влияет и не участвует в вычислении контрольной суммы. То есть вы можете заменить свои L или K скажем на 5, найти ошибку в ключе, а потом заменить обратно на L или K.

Понял, спасибо. Буду пробовать!

Posted
2 часа назад, Lenchik сказал:

Когда я писал, то не знал что такие ключи бывают.

А когда писал?  В этом году?

2 часа назад, Lenchik сказал:

То есть вы можете заменить свои L или K скажем на 5, найти ошибку в ключе, а потом заменить обратно на L или K.

А ничо, что длина ключей разная? там 51 и 52 символа.

Posted

@rammendo В этом году, после январских праздников. Писал чисто под одну задачу, ключ Litecoin исправить. Дня за три написал и несколько дней делал ввод, вывод и описание.

Я же написал что это для ключей формата WIF. Универсальную смысла нет писать. Под друге представление ключа проще отдельную утилиту написать.

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

Posted
52 минуты назад, Lenchik сказал:

В этом году, после январских праздников.

 

4 часа назад, Lenchik сказал:

Когда я писал, то не знал что такие ключи бывают.

Такие ключи (5...) не используются с 2014 года. 

Posted
5 часов назад, Lenchik сказал:

То есть вы можете заменить свои L или K скажем на 5, найти ошибку в ключе, а потом заменить обратно на L или K.

Было бы всё так просто, то ничего бы этого не было. Или было бы, но в первоначальном виде - в виде курсовой работы студента профильного техникума

Posted

@romariogland L и К "сжатые" ключи. Вы хотя бы напишите зачем вам это?

Я писал утилиту конкретно для исправления ключа начинающегося на 6. Человек один попросил. Ошибку в ключе исправили.

Можно и для сжатых написать. Теоретически скорость подбора должна быть даже выше, так как один байт в сжатом ключе константа. 

Posted
6 часов назад, Lenchik сказал:

Вы хотя бы напишите зачем вам это?

Мне это не нужно, я ничего не просил, я и сам в состоянии это сделать, только на py/php/c

Posted

@romariogland На скриптовых языках не получится. Скорость будет очень маленькой. На С я пробовал. Невозможно из base58 в HEX ключ сконвертировать. Там надо весь ключ представить как одно целое число, а в С таких переменных нет. 

Posted
6 часов назад, Lenchik сказал:

L и К "сжатые" ключи.

А что это значит? Не нашел в Гугле "сжатых" ключей Биткоин?

Posted (edited)
16 минут назад, Lenchik сказал:

На скриптовых языках не получится

Всё ясно, ладно

16 минут назад, Lenchik сказал:

Невозможно из base58 в HEX ключ сконвертировать

Имел в виду плюсы - это раз, а во-вторых путь решения задачи явно не один

Edited by romariogland
Posted
11 минут назад, rammendo сказал:

А что это значит? Не нашел в Гугле "сжатых" ключей Биткоин?

Я то откуда знаю. Один байт HEX - 01 добавили между ключом и хэшем и он у них почему стал сжатый. Я бы его так не назвал.

WIFC.thumb.jpg.1fb78b14944c89aa9f955177d212fda9.jpg

 

Но это даёт дополнительную возможность по валидации ключа. При переводе из base58 в hex меняются все байты и если после конвертации нет на своём месте этих 01, то можно хэш уже не проверять, что приведёт к существенному ускорению процесса. 

Posted
2 минуты назад, Lenchik сказал:

Я то откуда знаю. Один байт HEX - 01 добавили между ключом и хэшем и он у них почему стал сжатый. Я бы его так не назвал.

Так это не ключ "сжатый", а адрес, он стал 148 байт, вместо 180 байт. Одну координату убрали. Нафиг она, если задана кривая эллипсов и есть одна координата.

Posted
5 минут назад, Lenchik сказал:

и он у них почему стал сжатый. Я бы его так не назвал.

public key (uncompressed) = 04b4632d08485ff1df2db55b9dafd23347d1c47a457072a1e87be26896549a87378ec38ff91d43e8c2092ebda601780485263da089465619e0358a5c1be7ac91f4
public key (compressed)   = 02b4632d08485ff1df2db55b9dafd23347d1c47a457072a1e87be26896549a8737

Что не так? По-моему, всё логично

Posted
2 минуты назад, rammendo сказал:

Нафиг она, если задана кривая эллипсов и есть одна координата.

Только хотел написать об этом

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Similar Topics

    • Ledger представил ключ для восстановления доступа к криптокошелькам

      Производитель аппаратных криптокошельков Ledger представил опцию под названием Recovery Key — физический ключ, позволяющий восстановить доступ к устройствам моделей Stax и Flex. Для восстановления доступа надо будет поднести ключ в форме смарт-карты к кошельку и ввести PIN-код. Связь осуществляется через NFC-соединение. Recovery Key может использоваться в качестве альтернативы или дополнения к стандартной seed-фразе. Активация ключа возможна только с подтверждением на основном устройстве.

      in Новости криптовалют

    • В CryptoQuant назвали условия быстрого восстановления цены эфира

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

      in Новости криптовалют

    • CryptoQuant: У биткоина отсутствуют признаки восстановления курса

      Эксперты аналитической платформы CryptoQuant заявили, что первая криптовалюта смогла преодолеть ключевую отметку сопротивления нынешнего бычьего цикла. Однако, по их оценкам, биткоин не демонстрирует признаков восстановления в краткосрочной перспективе. На рынке фьючерсов доминируют сделки по продажам и закрытию коротких позиций, а трейдеры с начала июня сокращают свои запасы биткоинов, перечислили доводы в CryptoQuant. Из-за снижения курса первой криптовалюты маржа трейдеров уменьшилась н

      in Новости криптовалют

    • Утилита: Хешрейт

      Сделали апгрейд утилиты, которая отображает хешрейт в разных блокчейнах. Основная страница хешрейта была такой:   А стала такой:   Страница конкретной крипты на примере хешрейта Биткоина была такой:     А стала такой:   Если есть любой фидбек по удобству, содержанию, или любые предложения по улучшению - всегда велком!

      in Предложения и замечания по работе сайта

    • Tether представила инструмент для восстановления доступа к активам

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

      in Новости криптовалют

×
×
  • Create New...