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

    • Биткоин вошел в новую стадию восстановления — Glassnode

      Биткоин восстановил важный уровень поддержки и перешел в фазу восстановления после затяжного периода накопления актива, заявили аналитики платформы Glassnode. Первая криптовалюта протестировала отметку $82 000, пробив сразу два важных уровня — $78 200 и среднюю себестоимость покупок краткосрочных инвесторов на уровне $79 100.   «По сути, рынок разом перекрыл среднюю цену приобретения всех активных монет за последние 155 дней. Плотный кластер накопления между $65 000 и $70 000 стал на

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

    • Мэтт Хоуган назвал главный фактор восстановления биткоина

      Инвестиционный директор компании Bitwise Мэтт Хоуган (Matt Hougan) заявил, что ключевым фактором восстановления биткоина стали покупки крупнейшего корпоративного держателя криптовалюты — компании Strategy. По его словам, притоки капитала в спотовые биржевые фонды (ETF) на биткоин и накопление монет крупными игроками сыграли меньшую роль по сравнению с агрессивной стратегией Strategy. Хоуган отметил, что компания продолжает наращивать позиции благодаря устойчивому интересу инвесторов к ее бе

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

    • Tether предложила кредит $127,5 млн для восстановления взломанного протокола Drift

      Компания Tether, эмитент крупнейшего по капитализации стейблкоина USDT, объявила о готовности предоставить до $127,5 млн в виде кредита для восстановления децентрализованной платформы Drift, подвергшейся хакерской атаке. Поддержка предполагает использование USDT в качестве основного расчетного актива на платформе после ее перезапуска. Общий объем фонда помощи может достигнуть $150 млн. Помимо Tether, финансирование предоставят неназванные партнеры. Компенсации пользователям планируется выпл

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

    • Майк Новограц назвал ключевые уровни для восстановления биткоина

      Гендиректор финансовой компании Galaxy Digital Майк Новограц (Mike Novogratz) заявил, что для перехода к восходящему тренду биткоину необходимо закрепиться выше $74 000, а затем преодолеть отметку $80 000. Комментируя снижение биткоина с $100 000 в январе до уровней около $60 000, Новограц назвал происходящее «утечкой ликвидности» — фазой, когда рынок покидают слабые участники.   «Ключевыми условиями для возобновления роста являются закрепление цены выше $74 000 и последующий пробой

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

    • Биткоин демонстрирует признаки восстановления — Glassnode

      На рынке биткоина появились первые признаки восстановления, но до формирования устойчивого бычьего тренда еще далеко, заявили аналитики ончейн-платформы Glassnode. Рост биткоина выше отметки $70 000 вернул на рынок оптимизм, однако ончейн-метрики показывают: текущее движение скорее похоже на начальную фазу восстановления, для которой характерны резкие колебания цен, сообщили аналитики.   Биткоин сейчас находится в относительно «свободном» диапазоне между $72 000 и $82 000 — в этой зон

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

×
×
  • Create New...