BitOk2019

Premium
Сообщения
302
Реакции
4
Восстановление приватного ключа от Биткойн-кошелька, потерянного в 2011 году

Несколько недель назад ко мне обратился друг с проблемой. Еще в 2011 году ему пришла в голову отличная идея переустановить Windows.
Недолго думая, он установил новую версию Windows и некоторое время пользовался накопителем.
Лишь позже он понял, что на диске действительно содержится приличное количество биткойнов. К счастью, он понял, что существует шанс, что фактические данные, содержащие ключи, однажды можно будет восстановить, и немедленно отключил их и сохранил для безопасного хранения.

Когда цена приблизилась к 1000 долларов США за BTC, он принес диск на местную биткойн-встречу и поспрашивал.
Один парень безуспешно пытался использовать различные профессиональные криминалистические инструменты для диска, и в конце ночи диск оказался в моих руках.

Обсуждение криминалистической гигиены выходит за рамки этой конкретной записи в блоге, но, разумеется, моим первым шагом было использование dd для извлечения необработанных данных с диска,
что дало мне файл размером 160 ГБ в моей локальной файловой системе для работы.
 

BitOk2019

Premium
Сообщения
302
Реакции
4
Восстановление приватного ключа от Биткойн-кошелька, потерянного в 2011 году

Несколько недель назад ко мне обратился друг с проблемой. Еще в 2011 году ему пришла в голову отличная идея переустановить Windows.
Недолго думая, он установил новую версию Windows и некоторое время пользовался накопителем.

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

Когда цена приблизилась к 1000 долларов США за BTC, он принес диск на местную биткойн-встречу и поспрашивал.
Один парень безуспешно пытался использовать различные профессиональные криминалистические инструменты для диска, и в конце ночи диск оказался в моих руках.


Обсуждение криминалистической гигиены выходит за рамки этой конкретной записи в блоге, но, разумеется, моим первым шагом было использование dd для извлечения необработанных данных с диска,
что дало мне файл размером 160 ГБ в моей локальной файловой системе для работы.

Идея №1 восстановление BerkeleyDB

Так что, конечно, в оригинале было "найти и вытащить Wallet.dat". Мой выбор для подобных вещей — Magicrescue.

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

К сожалению для меня, не было «файла рецепта» BerkeleyDB, который Magicrescue использует для восстановления файлов. Немного покопавшись, я понял, как писать собственные файлы рецептов, и двинулся в путь.

Используя шестнадцатеричный редактор, я проверил первые 16 байтов обычного файла Wallet.dat и подтвердил, что они одинаковы во всех файлах Wallet.dat, которые у меня лежали. Я запустил магическое сканирование и не нашел результатов.
 

BitOk2019

Premium
Сообщения
302
Реакции
4
Идея №1 восстановление BerkeleyDB

Так что, конечно, в оригинале было "найти и вытащить Wallet.dat". Мой выбор для подобных вещей — Magicrescue.

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

К сожалению для меня, не было «файла рецепта» BerkeleyDB, который Magicrescue использует для восстановления файлов. Немного покопавшись, я понял, как писать собственные файлы рецептов, и двинулся в путь.

Используя шестнадцатеричный редактор, я проверил первые 16 байтов обычного файла Wallet.dat и подтвердил, что они одинаковы во всех файлах Wallet.dat, которые у меня лежали. Я запустил магическое сканирование и не нашел результатов.

Идея № 2. Найдите *что-нибудь*

На этом этапе я начал копаться в файлах Wallet.day в поисках чего-нибудь уникального.

Первые несколько вещей, которые я попробовал, оказались отрицательными, а затем я заметил строку name"1 , за которой сразу же следовал биткойн-адрес в различных файлах Wallet.dat, которые у меня были.

Я составил рецепт, запустил сканирование и получил один удар. Я заглянул в выходной файл, и там был биткойн-адрес.

Я посмотрел адрес в BlockExplorer, и вот он. Адрес с точным количеством монет, как догадался мой друг, был на диске, и никаких транзакций с 2011 года.
 

BitOk2019

Premium
Сообщения
302
Реакции
4
Идея № 2. Найдите *что-нибудь*

На этом этапе я начал копаться в файлах Wallet.day в поисках чего-нибудь уникального.

Первые несколько вещей, которые я попробовал, оказались отрицательными, а затем я заметил строку name"1 , за которой сразу же следовал биткойн-адрес в различных файлах Wallet.dat, которые у меня были.

Я составил рецепт, запустил сканирование и получил один удар. Я заглянул в выходной файл, и там был биткойн-адрес.

Я посмотрел адрес в BlockExplorer, и вот он. Адрес с точным количеством монет, как догадался мой друг, был на диске, и никаких транзакций с 2011 года.


Следующей моей мыслью было то, что мне нужно вырезать файл Wallet.dat из найденного фрагмента данных. Немного повозившись, я заметил, что почти прямо над адресом находится заголовок сборки .NET.

Это означало одно: фрагментацию, что было для меня плохой новостью.
 

BitOk2019

Premium
Сообщения
302
Реакции
4
Следующей моей мыслью было то, что мне нужно вырезать файл Wallet.dat из найденного фрагмента данных. Немного повозившись, я заметил, что почти прямо над адресом находится заголовок сборки .NET.

Это означало одно: фрагментацию, что было для меня плохой новостью.

Идея №3. Извлечение необработанного ключа.

Ладно, пришло время наконец разобраться, как напрямую извлечь ключи.

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

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

BitOk2019

Premium
Сообщения
302
Реакции
4
Идея №3. Извлечение необработанного ключа.

Ладно, пришло время наконец разобраться, как напрямую извлечь ключи.

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

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

Мой большой прорыв произошел вчера вечером, когда я понял, что могу экспортировать один из моих собственных пустых закрытых ключей и получить необработанный 32-байтовый шестнадцатеричный код с веб-сайта. Как только я это узнал, я смог покопаться в файле Wallet.dat.

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

Я быстро придумал рецепт магического спасения, и, прежде чем я это осознал, у меня было 400 попаданий.
 

BitOk2019

Premium
Сообщения
302
Реакции
4
Мой большой прорыв произошел вчера вечером, когда я понял, что могу экспортировать один из моих собственных пустых закрытых ключей и получить необработанный 32-байтовый шестнадцатеричный код с веб-сайта. Как только я это узнал, я смог покопаться в файле Wallet.dat.

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

Я быстро придумал рецепт магического спасения, и, прежде чем я это осознал, у меня было 400 попаданий.

Я быстро придумал рецепт магического спасения, и, прежде чем я это осознал, у меня было 400 попаданий.

Я написал некоторый код для просмотра файлов, перевода 32-байтовых данных в ключи WIF base58, добавил их в сценарий оболочки, который запускал «bitcoind importprivkey ...», и импортировал их в свой локальный кошелек. Когда это было сделано, я запустил «bitcoind getbalance» и вот они:-D Я быстро перенес монеты в более безопасное место и сообщил другу хорошие новости.
 

BitOk2019

Premium
Сообщения
302
Реакции
4
Я быстро придумал рецепт магического спасения, и, прежде чем я это осознал, у меня было 400 попаданий.

Я написал некоторый код для просмотра файлов, перевода 32-байтовых данных в ключи WIF base58, добавил их в сценарий оболочки, который запускал «bitcoind importprivkey ...», и импортировал их в свой локальный кошелек. Когда это было сделано, я запустил «bitcoind getbalance» и вот они:-D Я быстро перенес монеты в более безопасное место и сообщил другу хорошие новости.

Рождение KeyHunter

Я полагаю, что не все хотят возиться с MagicRescue, поэтому я написал инструмент под названием KeyHunter, который автоматически перебирает большие объемы данных и выдает адрес импорта base58
 

BitOk2019

Premium
Сообщения
302
Реакции
4
Рождение KeyHunter

Я полагаю, что не все хотят возиться с MagicRescue, поэтому я написал инструмент под названием KeyHunter, который автоматически перебирает большие объемы данных и выдает адрес импорта base58

github com/pierce403/keyhunter
 
kaspersky keys
Верх