Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
10 августа 2011, 5:48:04 PM   # 1
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: 2 дополнительных байта перед ScriptSig

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Здравствуй,
Я сейчас читаю сделки: http://blockexplorer.com/rawtx/947656865df51aaa6ea3d7535263f0e3358fa700e7ff4769645741e9d7b473b8
Шестнадцатеричные данные txin # 1 является:
котировка
4f539888478f3bfcd6ea1c52a3f3bcb5abf645ee5dccfb5e34aa30ac7579eeff
03000000
8c49
304602210090e58c2e9c3686557553f085958bf2a17c89044858c457921a55a781f04147ac02210 0eec9749891436ac36e937412d1e9bde7adda176bafe3c839d938c6159cb0e50201
41
042e6c25cb2712f6f997004d675432d480540851db63fccfea9f45ec968a76ffeda1b41c85cf3d4 6176a86d8b6cfe33993cd01246e3a08bbcee05b2fde0bba5653
FFFFFFFF

Мы имеем: prevout_hash, prevout_n, 8c49, scriptsig41pubkey, последовательность
Итак, что такое 8c49?
jackjack сейчас офлайн Пожаловаться на jackjack   Ответить с цитированием Мультицитирование сообщения от jackjack Быстрый ответ на сообщение jackjack


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


10 августа 2011, 6:15:27 PM   # 2
 
 
Сообщения: 2870
Цитировать по имени
цитировать ответ
по умолчанию Re: 2 дополнительных байта перед ScriptSig

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





Код:
4f539888478f3bfcd6ea1c52a3f3bcb5abf645ee5dccfb5e34aa30ac7579eeff prev_out
03000000 п
Длина сценария 8в
49 толчка следующего байт 0x49

304602210090e58c2e9c3686557553f085958bf2a17c89044858c457921a55a781f04147ac022100eec9749891436ac36e937412d1e9bde7adda176bafe3c839d938c6159cb0e50201

41 толчка следующего байт 0x41

042e6c25cb2712f6f997004d675432d480540851db63fccfea9f45ec968a76ffeda1b41c85cf3d46176a86d8b6cfe33993cd01246e3a08bbcee05b2fde0bba5653

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

10 августа 2011, 6:40:23 PM   # 3
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: 2 дополнительных байта перед ScriptSig

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

10 августа 2011, 9:15:37 PM   # 4
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: 2 дополнительных байта перед ScriptSig

Это очень полный пробой bytemap сделки, вплоть до частей подписи и кодирования DER:

http://dl.dropbox.com/u/1139081/BitcoinImg/TxBinaryMap.png

Это из моей нити Вот где я создал немало визуализаций, чтобы помочь прояснить вопросы, как это.

Постскриптум - В случае, если он слишком мал, чтобы читать:

0x8c является var_int, описывающий длину всего сценария. После этого, вы будете видеть в подписи:

Байт 0: длина подпись (73 байт в вашем случае)
Байт 1: 0x30 (МЭД код)
Байт 2: длина DER кодированного (R, S) пара с дополнительным МЭДОМ байтами кодирования (да, кажется излишней)
Байт 3: 0х02 (МЭД код)
Байт 4: длина подписи г-значения
Байт 4 + х: г-значение (около 31-34 байт)
Байт 4 + х + 1: 0х02 (МЭД код)
Байт 4 + х + 2: длина S-значение (около 31-34 байт)
Байт [конец]: 0x01 (конец сиг)

Это описывает первую часть сценария - подпись часть - вторая часть является открытым ключом, для справки:

Байт 0: длина открытый ключ  (это будет всегда быть 65)
Байт 1: 0x04
+32 Б: х-значение EC открытого ключа точки
+32 Б у-значение EC открытого ключа точки
etotheipi сейчас офлайн Пожаловаться на etotheipi   Ответить с цитированием Мультицитирование сообщения от etotheipi Быстрый ответ на сообщение etotheipi

10 августа 2011, 9:38:14 PM   # 5
 
 
Сообщения: 350
Цитировать по имени
цитировать ответ
по умолчанию Re: 2 дополнительных байта перед ScriptSig

Это из моей нити Вот где я создал немало визуализаций, чтобы помочь прояснить вопросы, как это.

Вот

ссылка не права, не поставить кавычки в
Код:
[URL = HTTPS: //www.example.com/] Пример [/ URL]
ctoon6 сейчас офлайн Пожаловаться на ctoon6   Ответить с цитированием Мультицитирование сообщения от ctoon6 Быстрый ответ на сообщение ctoon6

11 августа 2011, 12:53:32 AM   # 6
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: 2 дополнительных байта перед ScriptSig

Спасибо за графа, etotheipi
Я люблю Bitcoin адрес график слишком
jackjack сейчас офлайн Пожаловаться на jackjack   Ответить с цитированием Мультицитирование сообщения от jackjack Быстрый ответ на сообщение jackjack

11 августа 2011, 4:00:27 AM   # 7
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: 2 дополнительных байта перед ScriptSig

Последний вопрос: Я знаю, как-то подписать с privkey, но то, что это сообщение, подписанное в <сиг>?


Я обнаружил, что на вики:
котировка
Другой компонент представляет собой подпись ECDSA над хэш упрощенной версии сделки. Это, в сочетании с открытым ключом, оказывается сделка была создана реальным владельцем адреса в вопросе. Различные флаги определяют, как транзакция упрощается и может быть использована для создания различных типов оплаты.
который не помогает мне, я до сих пор не знаю, что "упрощенная версия" это

Я нашел таблицу здесь: https://en.bitcoin.it/wiki/Script#Scripts
Я понимаю это, но OP_CHECKSIG Проверяет <сиг> из <Публичных>, Я не вижу сообщение, подписанное

Я не мог найти помощь на странице OP_CHECKSIG ни: https://en.bitcoin.it/wiki/OP_CHECKSIG

Я также попытался с изображением этого etotheipi в: http://dl.dropbox.com/u/1139081/BitcoinImg/OpCheckSigDiagram.png
Тем не менее не работает, я попытался с Hash256, как SHA256 и SHA256 ^ 2, но никто не работал
jackjack сейчас офлайн Пожаловаться на jackjack   Ответить с цитированием Мультицитирование сообщения от jackjack Быстрый ответ на сообщение jackjack

11 августа 2011, 12:15:06 PM   # 8
 
 
Сообщения: 1526
Цитировать по имени
цитировать ответ
по умолчанию Re: 2 дополнительных байта перед ScriptSig

Посмотрите на функцию SignatureHash () в исходном коде. Описание на OP_CHECKSIG также должно быть достаточно полным для вас осуществить. Подпись поставляется с флагами, которые описывают, как сделки упрощена - это в основном означает удаление или очистку деталей конструкции в зависимости от sighash флагов. Например, SIGHASH_ANYONECANPAY означает только то, что вход существует в упрощенной форме.
Майк Хирн сейчас офлайн Пожаловаться на Mike Хирн   Ответить с цитированием Мультицитирование сообщения от Mike Хирн Быстрый ответ на сообщение Mike Хирн

11 августа 2011, 2:17:19 PM   # 9
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: 2 дополнительных байта перед ScriptSig

Спасибо, это все еще не работает, но это помогло мне

Я выбрал SIGHASH_ALL и nvin = 0, так SignatureHash становится:
котировка
   CTransaction txTmp (txTo);

    scriptCode.FindAndDelete (CScript (OP_CODESEPARATOR)); // нет codeseparator, scriptPubkey не только OPDUP UPHASH HASH ПРОВЕРКИ CHECKSIG

    подписи // вымарать другие входы
    для (INT I = 0; я < txTmp.vin.size (); я ++)
        txTmp.vin.scriptSig = CScript ();
    txTmp.vin [0] = .scriptSig scriptCode;


    // Сериализация и хэш
   CDataStream сс (SER_GETHASH);
    ss.reserve (10000);
    сс << txTmp << nHashType;
    Возвращение Хэш (ss.begin (), ss.end ());
Единственное, что я не уверен, что синяя линия
Я думаю, что инициализирует сс с "04 00 00 00 00 00 00 00" (1 << 2 как int64)
Я тестировал "04 00 00 00" а также "" также
Но никто не работает

Кроме того, в том, что сс? (Я взял сделку только с 1 входом и 1 выходом на этот раз: http://blockexplorer.com/rawtx/a467d767729385c191d3e463ceb8a436a1c0dda9d362955909c64196db86e573 )
Код:
04000000 или 0400000000000000 или ничего
01000000 #version
01 # 1 вход
177a1f8fdfe69a2ad022f056bf45ef8162c7c8a1672919b885308b3b16162307 #inverted хэш ТХ
00000000 #index

#old scriptpubkey вместо scriptsig
__________________________________________________________
19 #length из scriptPubKey
76 #OP_DUP
a9 # OP_HASH160
14 #length хеша
5f10ada9157add69864482ef8c99ef8787943f04 # НЕ перевернутый hash160 моего Публичных
88 #OP_VERIFY
переменный ток #OP_CHECKSIG
__________________________________________________________
FFFFFFFF #sequence
01 # 1 выход
80841e0000000000 #value
19 #length из scriptPubKey
76 #OP_DUP
a9 # OP_HASH160
14 #length хеша
5c3f294acb5059a968c4a35700b5432a7397002b # НЕ перевернутый hash160 из Публичных, к которому я отправить деньги
88 #OP_VERIFY
переменный ток #OP_CHECKSIG
00000000 #locktime
01000000 #hashtype = SIGHASH_ALL
jackjack сейчас офлайн Пожаловаться на jackjack   Ответить с цитированием Мультицитирование сообщения от jackjack Быстрый ответ на сообщение jackjack

12 августа 2011, 3:49:04 AM   # 10
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: 2 дополнительных байта перед ScriptSig

Сыграло здесь: (FR)
jackjack сейчас офлайн Пожаловаться на jackjack   Ответить с цитированием Мультицитирование сообщения от jackjack Быстрый ответ на сообщение jackjack

14 августа 2011, 4:01:07 AM   # 11
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: 2 дополнительных байта перед ScriptSig

Jackjack,

Так как я не знаю, по-французски, я не могу сказать, что "решение" было то, что вы связаны с. Какие проблемы у вас были с моя схема?  Я хотел бы, чтобы обновить его, чтобы выяснить, какие бы трудности вы имели.

Если бы я должен был угадать, я бы поставил там было несколько вопросов, порядок байтов. Это всегда проблема. Сценарии и ключевые данные, как правило, большой обратный порядок байт, примерно все мало-младшему. в те времена Кроме того, что это не так ...
etotheipi сейчас офлайн Пожаловаться на etotheipi   Ответить с цитированием Мультицитирование сообщения от etotheipi Быстрый ответ на сообщение etotheipi

14 августа 2011, 12:32:40 PM   # 12
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: 2 дополнительных байта перед ScriptSig

Jackjack,

Так как я не знаю, по-французски, я не могу сказать, что "решение" было то, что вы связаны с. Какие проблемы у вас были с моя схема?  Я хотел бы, чтобы обновить его, чтобы выяснить, какие бы трудности вы имели.

Если бы я должен был угадать, я бы поставил там было несколько вопросов, порядок байтов. Это всегда проблема. Сценарии и ключевые данные, как правило, большой обратный порядок байт, примерно все мало-младшему. в те времена Кроме того, что это не так ...
Я не переводил, потому что на самом деле я была проблема. Я не полностью понимаю вашу схему, я забыл использовать двоичный вместо шестнадцатеричных строк (это всегда мой проблема), я была разочаровать, потому что единственный официальный пример является на самом деле старым примером, который не используется больше, я хэшируюсь сообщение дважды (один раз в функции сига, один раз перед вызовом), и да, задачкой порядка байт
Я думаю, что одна вещь должна быть изменена, хотя вы должны написать Hash (как в источнике клиента) или ша ^ 2 вместо hash256

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

14 августа 2011, 12:55:45 PM   # 13
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: 2 дополнительных байта перед ScriptSig

Благодаря Jackjack. Диаграмма была обновлена!

По крайней мере, когда вы, наконец, получить его, вы знаете, ваша библиотека является удивительным, так как выполнение одного OP_CHECKSIG требует только о все еще быть правым. Итак, поздравляю
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