23 июня 2012, 5:10:13 PM   # 1
 
 
Сообщения: 1092
Цитировать по имени
цитировать ответ
по умолчанию Re: FindAndDelete метода в script.h

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Здравствуйте я ищу здесь: https://github.com/bitcoin/bitcoin/blob/master/src/script.h#L482

Это используется для удаления OP_CODE_SEPARATOR кодов и подписей. Так от того, что я могу сказать, коды OP_CODE_SERPARATOR просто удаляются, если они соответствуют следующему оператору в петле. Для подписей, как они совпадают? У подписи должна соответствовать всей операции нажимной? Похоже, что это может также соответствовать подписи, если они приходят друг за другом в операции нажимной как:

OP_PUSHDATA1

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

Подпись не удаляется ?:

OP_PUSHDATA1

Подпись удалена, но не произвольные данные ?:

OP_PUSHDATA1


Очевидно, что это очень важно, чтобы OP_CHECKSIG и т.д., чтобы работать.
MatthewLM сейчас офлайн Пожаловаться на MatthewLM   Ответить с цитированием Мультицитирование сообщения от MatthewLM Быстрый ответ на сообщение MatthewLM


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


23 июня 2012, 8:02:37 PM   # 2
 
 
Сообщения: 1092
Цитировать по имени
цитировать ответ
по умолчанию Re: FindAndDelete метода в script.h

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





У меня есть это для подписей. Является ли это правильно? Она ищет для кнопочных операций, а затем переходит к началу данных для проверки подписи. Если подпись найдена, то он удаляется:

Код:
аннулированию CBSubScriptRemoveSignature (u_int8_t * подстрочный u_int32_t * subScriptLen, CBScriptStackItem подпись) {
если (signature.data == NULL) возвращение; // нулевой Подпись
u_int8_t * PTR = Подстрочный;
u_int8_t * конец = Подстрочный + * subScriptLen;
для (PTR; < конец;) {
если (* PTR && * PTR < 78) {// Нажмите
// Переместить данные для нажатия и записи движения к следующей операции. Нет проверки нажимной данных не ограничивает, так как оно должно было уже сделано.
u_int32_t двигаться;
если (* PTR < 75) {
двигаться = * PTR;
PTR ++;
} Еще если (* PTR == CB_SCRIPT_OP_PUSHDATA1) {
ход = PTR [1];
PTR + = 2;
} Еще если (* PTR == CB_SCRIPT_OP_PUSHDATA2) {
ход = PTR [1];
ход + = PTR [2] << 8;
PTR + = 3;
} Еще {// PUSHDATA4
ход = PTR [1];
ход + = PTR [2] << 8;
ход + = PTR [3] << 16;
ход + = PTR [4] << 24;
PTR + = 5;
}
// Проверяет в пределах границ
если (PTR + signature.length >= Конец)
ломать;
// Проверка подписи
если (memcmp (PTR, signature.data, signature.length)) {
// Удалить подпись
memmove (PTR, PTR + signature.length, конец - (PTR + signature.length));
конец - = signature.length;
* SubScriptLen - = signature.length; // регулировка длины.
}
// Переход к следующей операции
PTR + = движение;
} Еще {
PTR ++;
}
}
}
MatthewLM сейчас офлайн Пожаловаться на MatthewLM   Ответить с цитированием Мультицитирование сообщения от MatthewLM Быстрый ответ на сообщение MatthewLM

26 июня 2012, 12:10:33 PM   # 3
 
 
Сообщения: 1232
Цитировать по имени
цитировать ответ
по умолчанию Re: FindAndDelete метода в script.h

Я не уверен, что вы просите. Да удаляет код разделителей.

Проверьте мой код здесь (я думаю, что это легче понять):

https://gitorious.org/libbitcoin/libbitcoin/blobs/master/src/script.cpp

Поиск BOOL сценария :: op_checksigverify (...)

Вы видите внешний вид, где я создаю объект script_code? Это петля с последней позиции codehash до конца всех операций, пропуская подпись или любые codeseparators. Все остальное выталкивается на новый объект сценария, который затем используется для функции check_signature.

Я хотел бы предложить не копируя представление Bitcoin в скриптах и ​​вместо того, чтобы хранить дерево разбора для сценариев. Это делает его гораздо проще для пользователя с точки зрения API. Просто помните, что coinbases является неразборчивым так что вам потребуется либо специальный тип сценария или опкод для raw_script (который поддается интерпретация).
genjix сейчас офлайн Пожаловаться на genjix   Ответить с цитированием Мультицитирование сообщения от genjix Быстрый ответ на сообщение genjix



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW