Bitcoin Forum
May 13, 2024, 02:10:56 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Keyhunter.py поиск privatkey bitcion (до 2012) на отформатированных диск  (Read 288 times)
Pirog13 (OP)
Newbie
*
Offline Offline

Activity: 1
Merit: 0


View Profile
January 26, 2018, 03:33:10 PM
Last edit: January 27, 2018, 09:54:09 PM by Pirog13
 #1

Итак, по скольку пошаговых инструкций нет, напишу ка я её.
Всех результатов удалось добиться методом тыка, так как python и ubuntu я знаю оооочень поверхностно.
Не знаю в какой раздел определить эту тему, админы если что помогите.
За грамматику сорян, поехали:

Все началось когда я наткнулся на статью - https://xakep.ru/2013/12/20/61791/
Вроде все просто - скачал запустил по инструкции он тебе выдал ключи.
Но не тут то было.
Для начала нам понадобиться 64 битная Linux система, я выбрал Ubuntu.

-Устанавливаем систему на жесткий диск
-устанавливаем python27 (Гуглим как это сделать, буквально вводом одной команды)
- Устанавливаем iotop-0.6 (Эта утилита покажет нам какие процессы обращаются к жестким дискам)
- Скачиваем скрипт Keyhunter.py и Readme кнему

Все готово для начала.

Ищем старый диск на котором находился (может даже предположительно находился) холодный кошелек bitcoin. Подключаем его к комьютеру, занружаемся.

Открываем терминал и запускаем iotop.py
https://pp.userapi.com/c830108/v830108758/5943d/zcEIGvWzq88.jpg

После запуска скрипта мы увидим что он обращается к диску, значит все в порядке, он работает.
открываем еще один терминал и вводим команду:
df -h
Она выведет список всех жестких дисков на экран:
https://pp.userapi.com/c830108/v830108758/59446/kT9kBIBJToA.jpg

Выбираем диск. В моем случае это 40 гиговый диск в списке обозначеный как 38 гиговый и путь к нему в системе линукс выглядит след образом: /dev/sdb1 (запоминаем\копируем)

Итак пришло время запускать сам скрипт.
Распаковываем его в папку, заходим в нее и отрываем в ней терминал.
Для начала мы должны предоставить права для скрипта, вводим в терминале:
chmod +x keyhunter.py

Что дает ему неограниченные права на чтение, запись и т.д.
Запускаем сам скрипт. Если просто его запустить он запуститься на языке програмирования python34 (Или на любой последней версии) и не будет работать, поэтому нам нужно принудительно запустить его на python27, при этом предоставив права суперюзера:

sudo python ./keyhunter.py /dev/sdb1

поясню:
sudo (права суперюзера) python (запуск в python27) ./keyhunter.py(этот скрипт запустить) /dev/sdb1(этот диск сканировать)

На выходе мы получим зашифрованный в формате base58 ключ. Их список выдается прям в терминале где запущен скрипт. Но только ключ который начинается на 5K и есть privatekey.

https://pp.userapi.com/c830108/v830108758/5944e/_7lDGCeesys.jpg
А дальше.... дальше я еще не нашел ни одного ключа что бы перевести его в нужный формат.
Но уже есть случаи кто проделывал конвертацию ключа: https://bitcointalk.org/index.php?topic=1600645.0

You can convert it by using casascius' bitcoin address utility (wiki, download link), follow these steps:
1. Open 'Address > Enter an address/key' and enter blockchain.info's WIF key.
2. Copy the hex private key of the address that was added (view its details by right clicking it).
3. Open 'Tools > Base58 calculator' and enter the copied hex.
4. Go to 'Mode > Use Checksum' and make sure that it's checked and copy the base58 result.
5. Same as step 1 but enter the result from 4 instead.
6. Now your real address should be added. Just view the details and copy the WIF private key and import it to electrum.

Might want to wait few hours before doing this to let other users view this post. I'm pretty sure it's safe but just in case.

Дополню инструкцию по мере новых "открытий")))

Всем спасибо за внимание, за темой буду следить и отвечать на вопросы.

Обнвление: оказывается работал с не оригинальным скриптом а с этим:

Code:
#!/usr/bin/python

import binascii
import os
import hashlib
import sys

# bytes to read at a time from file (10meg)
readlength=1*1024

if len(sys.argv)!=2:
  print "./keyhunter.py <filename>"
  exit()

filename = sys.argv[1]

f = open(filename)
magic = '\x01\x01\x04\x20'
magiclen = len(magic)



##### start code from pywallet.py #############
__b58chars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
__b58base = len(__b58chars)

def b58encode(v):
  """ encode v, which is a string of bytes, to base58.
  """

  long_value = 0L
  for (i, c) in enumerate(v[::-1]):
    long_value += (256**i) * ord(c)

  result = ''
  while long_value >= __b58base:
    div, mod = divmod(long_value, __b58base)
    result = __b58chars[mod] + result
    long_value = div
  result = __b58chars[long_value] + result

  # Bitcoin does a little leading-zero-compression:
  # leading 0-bytes in the input become leading-1s
  nPad = 0
  for c in v:
    if c == '\0': nPad += 1
    else: break

  return (__b58chars[0]*nPad) + result

def Hash(data):
  return hashlib.sha256(hashlib.sha256(data).digest()).digest()

def EncodeBase58Check(secret):
  hash = Hash(secret)
  return b58encode(secret + hash[0:4])

########## end code from pywallet.py ############



# read through target file
# one block at a time
while True:
  data = f.read(readlength)
  if not data:
    break

  # look in this block for keys
  x=0
  while True:
    # find the magic number
    pos=data.find(magic,x)
    #pos=data.find('\13\02\01\01\04\20',0)
    if pos==-1:
      break
    print EncodeBase58Check('\xA6'+data[pos+magiclen:pos+magiclen+32])
    x+=(pos+1)
  
  # are we at the end of the file?
  if len(data) < readlength:
    break

  # make sure we didn't miss any keys at the end of the block
  f.seek(f.tell()-(32+magiclen))

# code grabbed from pywallet.py#!/usr/bin/python

import binascii
import os
import hashlib
import sys

# bytes to read at a time from file (10meg)
readlength=1*1024

if len(sys.argv)!=2:
  print "./keyhunter.py <filename>"
  exit()

filename = sys.argv[1]

f = open(filename)
magic = '\x01\x01\x04\x20'
magiclen = len(magic)



##### start code from pywallet.py #############
__b58chars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
__b58base = len(__b58chars)

def b58encode(v):
  """ encode v, which is a string of bytes, to base58.
  """

  long_value = 0L
  for (i, c) in enumerate(v[::-1]):
    long_value += (256**i) * ord(c)

  result = ''
  while long_value >= __b58base:
    div, mod = divmod(long_value, __b58base)
    result = __b58chars[mod] + result
    long_value = div
  result = __b58chars[long_value] + result

  # Bitcoin does a little leading-zero-compression:
  # leading 0-bytes in the input become leading-1s
  nPad = 0
  for c in v:
    if c == '\0': nPad += 1
    else: break

  return (__b58chars[0]*nPad) + result

def Hash(data):
  return hashlib.sha256(hashlib.sha256(data).digest()).digest()

def EncodeBase58Check(secret):
  hash = Hash(secret)
  return b58encode(secret + hash[0:4])

########## end code from pywallet.py ############



# read through target file
# one block at a time
while True:
  data = f.read(readlength)
  if not data:
    break

  # look in this block for keys
  x=0
  while True:
    # find the magic number
    pos=data.find(magic,x)
    #pos=data.find('\13\02\01\01\04\20',0)
    if pos==-1:
      break
    print EncodeBase58Check('\xA6'+data[pos+magiclen:pos+magiclen+32])
    x+=(pos+1)
  
  # are we at the end of the file?
  if len(data) < readlength:
    break

  # make sure we didn't miss any keys at the end of the block
  f.seek(f.tell()-(32+magiclen))

# code grabbed from pywallet.py

Оригинальный же код в конце сканирования не выведет ничего, при нахождении ключа сохранит его в файл в папке со скриптом.

Если кому помог:
BTC:
146FVjidd7cjnKjmSk3ApNtse3iWrnxDZN
ETH
0x39a8565abf89422e608473baf379179efe6e0063
ZEC
t1PKYoXZ1RtQH7U2KCY9UDFK4w2jkqmDx59
1715566256
Hero Member
*
Offline Offline

Posts: 1715566256

View Profile Personal Message (Offline)

Ignore
1715566256
Reply with quote  #2

1715566256
Report to moderator
"Governments are good at cutting off the heads of a centrally controlled networks like Napster, but pure P2P networks like Gnutella and Tor seem to be holding their own." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715566256
Hero Member
*
Offline Offline

Posts: 1715566256

View Profile Personal Message (Offline)

Ignore
1715566256
Reply with quote  #2

1715566256
Report to moderator
1715566256
Hero Member
*
Offline Offline

Posts: 1715566256

View Profile Personal Message (Offline)

Ignore
1715566256
Reply with quote  #2

1715566256
Report to moderator
1715566256
Hero Member
*
Offline Offline

Posts: 1715566256

View Profile Personal Message (Offline)

Ignore
1715566256
Reply with quote  #2

1715566256
Report to moderator
Andzhig
Jr. Member
*
Offline Offline

Activity: 183
Merit: 3


View Profile
June 06, 2018, 01:29:44 PM
 #2

Как это чудо под win 10 64 запустить установил питон 2.7 ничего не работает.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!