Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
20 августа 2011, 4:34:06 PM   # 1
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: MysteryHex.py 1,0: Выяснить неопознанные двоичные данные / шестигранных!

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Вводя MysteryHex v1.0

Когда-либо имел кусок шестнадцатеричных или двоичный от сети BTC / файлов, которые вы хотели помочь в идентификации? Ну, вот скрипт, который делает это для вас! Найдем все блочные заголовки главной сети, TX-ые года, хэш, публичные ключи, адрес, скрипты и общие двоичные строки (числа, магических verack, адр, и т.д.). Клон моего GIT репозитория в https://github.com/etotheipi/PyBtcEngine , или просто загрузить два файла: pybtcengine.py и mysteryHex.py. Вот простой пример:

Код:
./mysteryHex.py 04fc8ad7af7e5bbc66d1bac090855d9d4eedc59a38bba2847e3ee23a1d3d4270ed71f5596409ab7c9601482671216e381fd506be2cccbb2350f44cc3aaa2bd0fbb012345f9beb4d9
$

Найденный:

   0x0000: AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA
   0x0020: AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA
   0x0040: AA ------ BBBBBBBB

   A: BarePublicKey: 1HdjH5Rgnsrn5PPWAQDWwmU2cxk5huXqm2
   B: MagicNum: Основные сетевые магические байты (f9beb4d9)

Если ничего другого, вы можете использовать этот инструмент преобразования открытых ключей строки в соответствующий адрес. Но это своего рода скучный ... давайте посмотрим на что-то более сложное. Скачать dataIDTest.hex из моего репозитория:


Код:
$ ./mysteryHex.py -s -f dataIDTest.hex

################################################## ##################################################

Найдено: BlockHeader
Размер: 80 байт
Б: от 4 до 84 (0x00000004 до 0x00000054)

   0x0000: -------- 01000000 55bd840a 78798ad0 da853f68 974f3d18 3e2bd1db 6a842c1f
   0x0020: eecf222a 00000000 ff104ccb 05421ab9 3e63f8c3 ce5c2c2e 9dbb37de 2764b3a3
   0x0040: 175c8166 562cac7d 51b96a49 ffff001d 283e9e70 -------- -------- --------
   0x0060: -------- -------- -------- -------- -------- -------- -------- --------
   0x0080: -------- -------- -------- -------- -------- -------- -------- --------
   0x00a0: -------- -------- -------- -------- -------- -------- -------- --------
   0x00c0: -------- -------- -------- -------- -------- -------- -------- --------
   0x00e0: -------- -------- -------- -------- -------- -------- -------- --------
   0x0100: -------- -------- -------- -------- -------- -------- -------- --------
   0x0120: -------- -------- -------- -------- -------- -------- -------- --------
   0x0140: -------- -------- -------- -------- -------- -------- -------- --------
   0x0160: -------- -------- -------- -------- -------- -------- -------- --------
   0x0180: -------- -------- -------- -------- -------- -------- -------- --------
   0x01a0: -------- -------- -------- -------- -------- -------- -------- --------
   0x01c0: -------- -------- -------- -------- -------- -------- -------- --------
   0x01e0: -------- -------- -------- -------- -------- -------- -------- --------
   0x0200: -------- -------- -------- -------- -------- -------- -------- --------
   0x0220: -------- -------- -------- -------- -------- -------- -------- --------
   0x0240: -------- -------- -------- -------- -------- -------- ------

   BlockHeader:
      Хэш: 00000000d1145790a8694403d4063f323d499e655c83426834d4ce2f8dd4a2ee (BE)
      Версия: 1
      PrevBlock: 000000002a22cfee1f2c846adbd12b3e183d4f97683f85dad08a79780a84bd55 (BE)
      MerkRoot: 7dac2c5666815c17a3b36427de37bb9d2e2c5ccec3f8633eb91a4205cb4c10ff (BE)
      Отметка: 1231731025
      Сложность: ffff001d
      Нонс: 1889418792
################################################## ##################################################
Найдено: Транзакция
Размер: 134 байт
Б: от 150 до 284 (0x00000096 до 0x0000011c)

   0x0000: -------- -------- -------- -------- -------- -------- -------- --------
   0x0020: -------- -------- -------- -------- -------- -------- -------- --------
   0x0040: -------- -------- -------- -------- -------- -------- -------- --------
   0x0060: -------- -------- -------- -------- -------- -------- -------- --------
   0x0080: -------- -------- -------- -------- -------- ---- 0100 00000100 00000000
   0x00a0: 00000000 00000000 00000000 00000000 00000000 00000000 000000ff ffffff07
   0x00c0: 04ffff00 1d0102ff ffffff01 00f2052a 01000000 434104d4 6c4968bd e02899d2
   0x00e0: aa096336 7c7a6ce3 4eec332b 32e42e5f 3407e052 d64ac625 da6f0718 e7b30214
   0x0100: 0434bd72 5706957c 092db538 05b821a8 5b23a7ac 61725bac 00000000 --------
   0x0120: -------- -------- -------- -------- -------- -------- -------- --------
   0x0140: -------- -------- -------- -------- -------- -------- -------- --------
   0x0160: -------- -------- -------- -------- -------- -------- -------- --------
   0x0180: -------- -------- -------- -------- -------- -------- -------- --------
   0x01a0: -------- -------- -------- -------- -------- -------- -------- --------
   0x01c0: -------- -------- -------- -------- -------- -------- -------- --------
   0x01e0: -------- -------- -------- -------- -------- -------- -------- --------
   0x0200: -------- -------- -------- -------- -------- -------- -------- --------
   0x0220: -------- -------- -------- -------- -------- -------- -------- --------
   0x0240: -------- -------- -------- -------- -------- -------- ------

   Сделка:
      TxHash: 82501c1178fa0b222c1f3d474ec726b832013f0a532b44bb620cce8624a5feb1
      Версия: 1
      nInputs: 1
      nOutputs: 1
      Locktime: 0
      Входы:
         TxIn:
            минус:
               PrevTxHash: 0000000000000000000000000000000000000000000000000000000000000000 (BE)
               TxOutIndex: 4294967295
            Сценарий: (SignatureForCoinbaseTx)
            Seq: 4294967295
      Выходы:
         TxOut:
            Значение: 5000000000 (50,0)
            Сценарий: Публичный (1PSSGeFHDnKNxiEyFrD1wcEaHr9hrQDDWc) OP_CHECKSIG
################################################## ##################################################
Найдено: Транзакция
Размер: 275 байт
Б 284 до 559 (0x0000011c к 0x0000022f)

   0x0000: -------- -------- -------- -------- -------- -------- -------- --------
   0x0020: -------- -------- -------- -------- -------- -------- -------- --------
   0x0040: -------- -------- -------- -------- -------- -------- -------- --------
   0x0060: -------- -------- -------- -------- -------- -------- -------- --------
   0x0080: -------- -------- -------- -------- -------- -------- -------- --------
   0x00a0: -------- -------- -------- -------- -------- -------- -------- --------
   0x00c0: -------- -------- -------- -------- -------- -------- -------- --------
   0x00e0: -------- -------- -------- -------- -------- -------- -------- --------
   0x0100: -------- -------- -------- -------- -------- -------- -------- 01000000
   0x0120: 01c997a5 e56e1041 02fa209c 6a852dd9 0660a20b 2d9c3524 23edce25 857fcd37
   0x0140: 04000000 00484730 4402204e 45e16932 b8af5149 61a1d3a1 a25fdf3f 4f7732e9
   0x0160: d624c6c6 1548ab5f b8cd4102 20181522 ec8eca07 de4860a4 acdd1290 9d831cc5
   0x0180: 6cbbac46 22082221 a8768d1d 0901ffff ffff0200 ca9a3b00 00000043 4104ae1a
   0x01a0: 62fe09c5 f51b1390 5f07f06b 99a2f715 9b2225f3 74cd378d 71302fa2 8414e7aa
   0x01c0: b37397f5 54a7df5f 142c21c1 b7303b8a 0626f1ba ded5c72a 704f7e6c d84cac00
   0x01e0: 286bee00 00000043 410411db 93e1dcdb 8a016b49 840f8c53 bc1eb68a 382e97b1
   0x0200: 482ecad7 b148a690 9a5cb2e0 eaddfb84 ccf97444 64f82e16 0bfa9b8b 64f9d4c0
   0x0220: 3f999b86 43f656b4 12a3ac00 000000-- -------- -------- -------- --------
   0x0240: -------- -------- -------- -------- -------- -------- ------

   Сделка:
      TxHash: 169e1e83e930853391bc6f35f605c6754cfead57cf8387639d3b4096c54f18f4
      Версия: 1
      nInputs: 1
      nOutputs: 2
      Locktime: 0
      Входы:
         TxIn:
            минус:
               PrevTxHash: 0437cd7f8525ceed2324359c2d0ba26006d92d856a9c20fa0241106ee5a597c9 (BE)
               TxOutIndex: 0
            Сценарий: (SignatureForCoinbaseTx)
            Seq: 4294967295
      Выходы:
         TxOut:
            Значение: 1000000000 (10,0)
            Сценарий: Публичный (1Q2TWHE3GMdB6BZKafqwxXtWAWgFt5Jvm3) OP_CHECKSIG
         TxOut:
            Значение: 4000000000 (40,0)
            Сценарий: Публичный (12cbQLTFMXRnSzktFkuoG3eHoMeFtpTu3S) OP_CHECKSIG
################################################## ##################################################
Другие сортировали вещи:

   0x0000: AAAAAAAA -------- -------- -------- -------- -------- ------- - --------
   0x0020: -------- -------- -------- -------- -------- -------- -------- --------
   0x0040: -------- -------- -------- -------- -------- BBBBBBBB BBBBBBBB BBBBBBBB
   0x0060: BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB
   0x0080: BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BB ------ -------- --------
   0x00a0: -------- -------- -------- -------- -------- -------- -------- --------
   0x00c0: -------- -------- -------- -------- -------- -------- -------- --------
   0x00e0: -------- -------- -------- -------- -------- -------- -------- --------
   0x0100: -------- -------- -------- -------- -------- -------- -------- --------
   0x0120: -------- -------- -------- -------- -------- -------- -------- --------
   0x0140: -------- -------- -------- -------- -------- -------- -------- --------
   0x0160: -------- -------- -------- -------- -------- -------- -------- --------
   0x0180: -------- -------- -------- -------- -------- -------- -------- --------
   0x01a0: -------- -------- -------- -------- -------- -------- -------- --------
   0x01c0: -------- -------- -------- -------- -------- -------- -------- --------
   0x01e0: -------- -------- -------- -------- -------- -------- -------- --------
   0x0200: -------- -------- -------- -------- -------- -------- -------- --------
   0x0220: -------- -------- -------- -------- -------- -------- ------ CC CCCCCCCC
   0x0240: CCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCC CCCCCC

   A: MagicNum: Основные сетевые магические байты (f9beb4d9)
   Б: BarePublicKey: 15VihAPHSVKRyCbWLBbysJnXhmpta8MBJJ
   С: HeaderHash (BE): 000000000000043dd94eb922fbf4e21eedf05f7af1ec5477470955c523bfdd6c

Обратите внимание на последнюю строку, что "HeaderHash" был помечен как определенных данных. Это происходит потому, что сценарий будет сканировать ваш blk0001.dat файл в каталоге Bitcoin, и построить сиюминутный словарь известного заголовка / Merkle / TX хэш для использования в поиске. Этот параметр (флаг -s) по умолчанию отключен, потому что это займет около 4 минут, чтобы обработать 1,5 миллиона транзакций в blk0001.dat первый раз сделано. Тем не менее, он будет помнить свой прогресс (хранит все в ./knownHashes.bin) и обновление только на основе новых блоков клиента получил, так как вы в последний раз запускали скрипт. Там нет никакой опасности в делать это время клиента открыт, и будет обновлять hashlist почти мгновенно на все будущие казни. Используйте флаг -s при каждом вызове, если вы хотите, чтобы эта функциональность.

Известные вопросы:
  • Автоматическое определение каталога BTC было реализовано для Windows, Linux и Mac. Это работает для меня в Linux, но я не проверял его в ОС Windows или Mac. Пожалуйста, дайте мне знать, если он не работает.
  • Testnet адрес может быть обработан в библиотеке, но он не реализован таким образом, легко получить доступ с помощью сценария. Вы должны изменить "USE_TESTNET" переменная в pybtcengine.py, а затем использовать «-r -k /path/to/testnet/blk0001.dat» пересканировать testnet blockchain для хэшей. Я буду работать на более-гибкое решение в ближайшем будущем.
  • Для того, чтобы максимизировать полезность, я поставил библиотеку для печати все хэши в обратном порядке байт, так что шестнадцатеричные строки могут быть скопированы непосредственно в blockexplorer.com. Это не может быть предпочтительным поведением для всех. В будущем я добавлю флаг, который позволяет выбрать порядок байтов. (На самом деле, я бы предпочел, чтобы просто всегда печатать в прямой порядок байтов, и лоббировать блок-исследователь, чтобы искать со струнами LE)

В ходе выполнения:
  • Поиск неопознанных байт для частных ключей, которые соответствуют открытым ключам найдены
  • Включить флаг -t для работы с тест-сети
  • Частичные поиски хэш


Я провел много времени полировки этого кода, поэтому он должен быть очень прочным. Пожалуйста, дайте мне знать (через ПМ), если вы обнаружите какие-либо ошибки, или разместить здесь, если у вас есть предложения по улучшению сценария. И, конечно же, пожалуйста, пожертвовать! Подставляя это вместе было не легко! 1Gffm7LKXcNFPrtxy6yF4JBoe5rVka4sn1

-Eto

etotheipi сейчас офлайн Пожаловаться на etotheipi   Ответить с цитированием Мультицитирование сообщения от etotheipi Быстрый ответ на сообщение etotheipi


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


20 августа 2011, 4:44:05 PM   # 2
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: MysteryHex.py 1,0: Выяснить неопознанные двоичные данные / шестигранных!

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





У меня нет времени, чтобы проверить это сейчас, но я уверен, что буду мучить свой инструмент

Автоматическое определение Bitcoin каталога работает в Linux, но терпит неудачу в других ОС. Если флаг -s используется, но blk0001.dat не может быть найден, сценарий будет продолжаться без заполнения / обновления файла хэш. использование -к /path/to/blk0001.dat чтобы помочь скрипт найти его на других ОС. Пожалуйста, дайте мне знать, как я могу поддерживать автоматическое обнаружение на других ОС.  
А вы посмотрите на pywallet код? Он должен работать очень хорошо. На самом деле я не проверял на что-то другое, чем Linux, но, как это одна из функций Joric, я думаю, что он должен был тестировал

Код:
Защиту determine_db_dir ():
импорт ОС
импорт os.path
импорт платформы
если platform.system () == "Дарвин":
вернуться os.path.expanduser ("~ / Support Library / Application / Bitcoin /")
Элиф platform.system () == "Windows":
вернуться os.path.join (os.environ [ 'AppData'], "Bitcoin")
вернуться os.path.expanduser ("~ / .bitcoin")
jackjack сейчас офлайн Пожаловаться на jackjack   Ответить с цитированием Мультицитирование сообщения от jackjack Быстрый ответ на сообщение jackjack

21 августа 2011, 12:42:42 AM   # 3
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: MysteryHex.py 1,0: Выяснить неопознанные двоичные данные / шестигранных!

Благодаря Jackjack. Я использовал os.getenv ( «») APPDATA вызов для Windows, вместо os.getenv ( «HOME»), и теперь он выглядит работу автоматического обнаружения окон. 

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

Если вы хотите использовать его для тестовой сети, вам придется перевернуть "USE_TESTNET" вар в pybtcengine, а затем использовать

Код:
$ ./mysteryHex.py -r -k /path/to/testnet/blk0001.dat -f somefile.hex

которая удалит текущий файл knownHashes.bin и пересканировать blockdata от testnet blockfile. Я не проверял, но я не понимаю, почему это не будет работать.
etotheipi сейчас офлайн Пожаловаться на etotheipi   Ответить с цитированием Мультицитирование сообщения от etotheipi Быстрый ответ на сообщение etotheipi



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW