Вернуться   Биткоин Форум > - Помощь начинающим
2 мая 2017, 8:45:42 AM   # 1
 
 
Сообщений: 29
Цитировать по имени
цитировать ответ
по умолчанию Re: Работа над программой коллайдера Bitcoin в питоне, Я на правильном пути?

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я изменил сценарий, который я нашел, чтобы принимать входной файл с 64 байт шестнадцатиричное целое число (77) экспоненты. Проверить наличие каких-либо сделок, а затем увеличивается на 1, а и проверьте еще раз. Я поставил 12-секундную задержку между вызовами, так что я не перегружать blockchain.info.

Я на правильном пути? 


Код:
#! / USR / бен / окр питон
# Joric / Bitcoin-DEV, июнь 2012, общественное достояние

импорт hashlib
время импорта
импорт ctypes
импорт ctypes.util
импорт SYS
от pybitcointools импорта *

= ctypes.cdll.LoadLibrary SSL (ctypes.util.find_library ( 'SSL') или 'libeay32')

Защиту check_result (VAL, Func, арг):
    если вал == 0: поднять ValueError
    остальное: возвращение ctypes.c_void_p (вал)

ssl.EC_KEY_new_by_curve_name.restype = ctypes.c_void_p
ssl.EC_KEY_new_by_curve_name.errcheck = check_result

Класс KEY:
    Защиту __init __ (Я):
        NID_secp256k1 = 714
        self.k = ssl.EC_KEY_new_by_curve_name (NID_secp256k1)
        self.compressed = False
        self.POINT_CONVERSION_COMPRESSED = 2
        self.POINT_CONVERSION_UNCOMPRESSED = 4

    Защиту __del __ (Я):
        Если протокол SSL:
            ssl.EC_KEY_free (self.k)
        не self.k = None

    Защита генерация (я, секрет = нет):
        если секрет:
            self.prikey = секрет
            priv_key = ssl.BN_bin2bn (секрет, 32, ssl.BN_new ())
            группа = ssl.EC_KEY_get0_group (self.k)
            pub_key = ssl.EC_POINT_new (группа)
            CTX = ssl.BN_CTX_new ()
            ssl.EC_POINT_mul (группа, pub_key, priv_key, Ничего, Ничего, CTX)
            ssl.EC_KEY_set_private_key (self.k, priv_key)
            ssl.EC_KEY_set_public_key (self.k, pub_key)
            ssl.EC_POINT_free (pub_key)
            ssl.BN_CTX_free (CTX)
            возвращение self.k
        еще:
            вернуться ssl.EC_KEY_generate_key (self.k)

    Защиту get_pubkey (самостоятельно):
        Размер = ssl.i2o_ECPublicKey (self.k, 0)
        Мб = ctypes.create_string_buffer (размер)
        ssl.i2o_ECPublicKey (self.k, ctypes.byref (ctypes.pointer (MB)))
        вернуться mb.raw

    Защиту get_secret (самостоятельно):
        млрд = ssl.EC_KEY_get0_private_key (self.k);
        байт = (ssl.BN_num_bits (Bn) + 7) / 8
        Мб = ctypes.create_string_buffer (байт)
        п = ssl.BN_bn2bin (млрд, Мб);
        вернуть mb.raw.rjust (32, CHR (0))

    Защиту set_compressed (я, компрессией):
        self.compressed = сжатый
        если сжат:
            образуют = self.POINT_CONVERSION_COMPRESSED
        еще:
            образуют = self.POINT_CONVERSION_UNCOMPRESSED
        ssl.EC_KEY_set_conv_form (self.k, форма)

Защита dhash (ы):
    вернуть hashlib.sha256 (hashlib.sha256 (ы) .digest ()). дайджеста ()

Защиту rhash (ы):
    h1 = hashlib.new ( 'ripemd160')
    h1.update (hashlib.sha256 (ы) .digest ())
    вернуться h1.digest ()

b58_digits = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'

Защиту base58_encode (п):
    л = []
    в то время как п > 0:
        п, г = divmod (п, 58)
        l.insert (0, (b58_digits [г]))
    Возвращение '' .join (л)

Защиту base58_decode (ы):
    п = 0
    для ч в с:
        п * = 58
        цифра = b58_digits.index (ч)
        п + = цифра
    вернуться п

Защиту base58_encode_padded (ы):
    разреш = base58_encode (интермедиат ( '0x' + s.encode ( 'шестигранной'), 16))
    подушечка = 0
    для с в е:
        если с == CHR (0):
            коврик + 1 =
        еще:
            ломать
    вернуться b58_digits [0] * коврик + Рез

Защиту base58_decode_padded (ы):
    подушечка = 0
    для с в е:
        если с == b58_digits [0]:
            коврик + 1 =
        еще:
            ломать
    ч = '% х' % base58_decode (ы)
    если Len (ч)% 2:
        ч = '0' + Н
    разреш = h.decode ( 'шестигранной')
    вернуться CHR (0) * коврик + Рез

Защиту base58_check_encode (s, версия = 0):
    Vs = CHR (версия) + S
    проверить = dhash (VS) [: 4]
    возвращение base58_encode_padded (по сравнению с чеком +)

Защиту base58_check_decode (s, версия = 0):
    к = base58_decode_padded (ы)
    v0, данные, check0 = к [0], к [1: -4], к [-4:]
    check1 = dhash (v0 + данные) [: 4]
    если check0 = check1:
        поднять BaseException ( «ошибка контрольной суммы»)
    если версия = Ord (v0):
        поднять BaseException ( «несоответствие версий»)
    возвращать данные

Защиту gen_eckey (ключевая фраза = None, секрет = None, PKey = None, сжато = False, раунды = 1, версия = 0):
    к = КЛЮЧ ()
    если ключевая фраза:
        секрет = passphrase.encode ( 'utf8')
        ибо я в xrange (раундов):
            секрет = hashlib.sha256 (секрет) .digest ()
    если клавишей P.:
        секрет = base58_check_decode (PKey, 128 + версия)
        сжатый = Len (секретный) == 33
        Секрет = секрет [0:32]
    k.generate (секрет)
    k.set_compressed (сжатый)
    возвращение к

Защиту get_addr (к, версия = 0):
    time.sleep (12)
    Публичный = k.get_pubkey ()
    секрет = k.get_secret ()
    hash160 = rhash (Публичный)
    адр = base58_check_encode (hash160, версия)
    Полезная нагрузка = секрет
    если k.compressed:
        Полезная нагрузка = секрет + CHR (1)
    PKey = base58_check_encode (полезная нагрузка, 128 + версия)
    ч = История (адрес)
    если Н = []:
       Распечатать "мы нашли!"
       печать адр
       печать PKey
       sys.exit ()
    вернуться адр, PKEY

Защита Перекодировать (PKey, версия = 0):
    Полезная нагрузка = base58_check_decode (PKey, 128 + версия)
    секрет = полезная нагрузка [: - 1]
    Полезная нагрузка = секрет + CHR (1)
    PKey = base58_check_encode (полезная нагрузка, 128 + версия)
    печать get_addr (gen_eckey (PKey))

Тест четкости (otherversion):
    # Случайным образом сжатый
    #print get_addr (gen_eckey (сжатый = True, версия = otherversion), версия = otherversion)

    # Раскомментируйте их, чтобы создать адреса с помощью другого метода
    # Случайное несжатый
    #print get_addr (gen_eckey ())
    # по секрету
   
    входной_файл = открыт ( 'inputfile.txt', 'г')
    startdata = inputfile.read ()
    inputfile.close ()
    Распечатать "отправная точка"
   
    inputlove = startdata.strip ()   
    inputlove = inputlove.zfill (64)
    inputkeyin = INT (inputlove, 16)

    = INT начальной точки (inputlove, 16)
   

   
    в то время как inputkeyin < + 100 начальную точку:
        печать inputkeyin
        inputkeyhex = гекс (inputkeyin) [2: -1]
        печать inputkeyhex
        get_addr (gen_eckey (секрет = inputkeyhex.decode ( 'шестигранной')))
        inputkeyin = INT (inputkeyhex, 16)
        inputkeyin = inputkeyin + 1
    выходной_файл = открыт ( 'inputfile.txt', 'W')
    outputfile.write (inputkeyhex)
    outputfile.close ()
 
если __name__ == '__main__':
    импорт optparse
    парсер = optparse.OptionParser (использование ="% Проги [опция]")
    parser.add_option ("--otherversion", Приемник ="otherversion", По умолчанию = 0,
                    помощь ="Сформировать адрес с другим номером версии")
    (Опционы, арг) = parser.parse_args ()


answeryes = "Y"
answercapitalyes = "Y"


Распечатать "Y или N - Готов?"
fileresponse = raw_input ()

если fileresponse == answeryes или fileresponse == answercapitalyes:
  тест (интермедиат (options.otherversion))
еще:
  Распечатать "может быть в следующий раз"
 
Деон сейчас офлайн Пожаловаться на Деон   Ответить с цитированием Мультицитирование сообщения от Деон Быстрый ответ на сообщение Деон


Как заработать Биткоины?
Без вложений. Не майнинг.


2 мая 2017, 8:51:11 AM   # 2
 
 
Сообщений: 29
Цитировать по имени
цитировать ответ
по умолчанию Re: Работа над программой коллайдера Bitcoin в питоне, Я на правильном пути?

Получил 1806 Биткоинов
Реальная история.





Вот выход, если я нахожу частный / комб открытый ключ.

Я послал некоторые Bitcoin на публичный адрес, чтобы увидеть, если он будет работать. Я на самом деле не нашел в дикой природе.

Код:
маршрутизатор @ маршрутизатор-старт: ~ / Desktop / питон / bitcoingen $ питон usethis.py
Y или N - Готов?
Y
отправная точка
97674904567355991655113266145083667907747545640392289442288010322941462011111
d7f2096fe3f3b6902abc2afc3bab9ae3ce8d9303525f0505689a1507cca15ce7
97674904567355991655113266145083667907747545640392289442288010322941462011112
d7f2096fe3f3b6902abc2afc3bab9ae3ce8d9303525f0505689a1507cca15ce8
97674904567355991655113266145083667907747545640392289442288010322941462011113
d7f2096fe3f3b6902abc2afc3bab9ae3ce8d9303525f0505689a1507cca15ce9
97674904567355991655113266145083667907747545640392289442288010322941462011114
d7f2096fe3f3b6902abc2afc3bab9ae3ce8d9303525f0505689a1507cca15cea
мы нашли!
188CwnKs664tu4eKyohvektz6PbsCFPkFK
5KTPcpSHpmDAtYyjYX5VVWwkqRigQtxWf4o5pFYGd9wEGG5K2Tq
Деон сейчас офлайн Пожаловаться на Деон   Ответить с цитированием Мультицитирование сообщения от Деон Быстрый ответ на сообщение Деон



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW