Вернуться   Биткоин Форум > Сервисы
23 сентября 2014, 6:33:55 PM   # 1
 
 
Сообщения: 327
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Дать рабочее решение проблемы ниже, вместе с BTC адрес, и я пришлю вам 0,3 БТД. Первым прибыл - первым обслужен Эквивалент в русском языке: поздний гость гложет и кость. Для доказательства того, что я платить щедроты сразу после рабочего раствора, пожалуйста видеть эту нить.

В принципе, мне нужно сделать кучу математики вычислений в C ++ (с использованием Qt), и я застрял с извлечением ключа ребенка BIP32. У меня есть справедливый бит сделать хотя. Я могу ввести секретный ключ BIP32, возьмите его на части, получить открытый ключ, используя ECDSA (сжатый или несжатый), я могу кодировать адрес из ключа, и так далее.

Тем не менее, я застрял на выводе ключа ребенка. Я могу сделать математику просто отлично с библиотекой ГМПА PHP, но я не могу получить результаты из PHP и C ++ кода, чтобы совпасть. Они должны идеально совпадают, так как это просто математика. Я пробовал оба, QCA (http://delta.affinix.com/docs/qca/) И только с помощью BIGNUM типа данных не дали никаких результатов. Так вот проблема:


Сжатый Public Key: 023E4740D0BA639E28963F3476157B7CF2FB7C6FDF4254F97099CF8670B505EA59
Private Key: 5c22f8937210130ad1bbc50678a7c0a119a483d47928c323bf0baa3a57fa547d
Цепь Код: 180c998615636cd875aa70c71cfa6b7bf570187a56d8c6d054e60b644d13e9d3
Индекс ключа: 35 (00000023)


Вот небольшой фрагмент кода я в настоящее время.

Код:
QByteArray Публичных = "023E4740D0BA639E28963F3476157B7CF2FB7C6FDF4254F97099CF8670B505EA5900000023";
QByteArray privkey = "5c22f8937210130ad1bbc50678a7c0a119a483d47928c323bf0baa3a57fa547d";
QByteArray chain_code = "180c998615636cd875aa70c71cfa6b7bf570187a56d8c6d054e60b644d13e9d3";

// HMAC SHA512 Хэш
ККА :: MessageAuthenticationCode HMAC ("HMAC (SHA512)", ККА :: SecureArray ());
ККА :: SecureArray Карр (chain_code);
ККА :: SymmetricKey ск (Карр);
hmac.setup (ки);
hmac.update (ККА :: hexToArray (Публичная));

// Анализировать полученный хэш
QByteArray результат = hmac.final () toByteArray ().
ККА :: SecureArray arr_left (result.left (32));
ККА :: SecureArray arr_key (privkey);

// Получить большие целые числа
ККА :: BigInteger BNL (arr_left);
ККА :: BigInteger БНК (arr_key);
ККА :: BigInteger БНО ("115792089237316195423570985008687907852837564279074904382605163141518161494337");

// Делай математику
BNL + = БНК;
BNL% = БНО;

// Вернуть
QByteArray new_key = bnl.toArray () toByteArray () toHex ()..;
вернуться new_key;

Хэш HMAC SHA512 прекрасно, и я получаю правильный результат от обоих, PHP и C ++, который является: fa634546bbddad6f51e8a7ff05976e0d8813aafb656bf0c7cacb53a200e9e3e624e199e9e83fa03 eedd5056ac2de8482be17fcb6d85ebf15faa1976e5df957aa

Тем не менее, вот где она заканчивается. В принципе, мне нужно остаток ((BNL + БНК) / БНО). Проблема, кажется, начинается только после того, как результаты, которые я получаю, просто немного иначе:

PHP: 56863dda2dedc07a23a46d057e3f2eaea1b82ecfde94b3eb89d6fddc58e43863
C ++ 156863dda2dedc07a23a46d057e3f2eaea1b82ecfde94b3eb89d6fddc58e43863

По какой-то причине, C ++ вариант бросает дополнительный «1» на начало. Если я пытаюсь преобразовать любого из целых чисел в строки, они полностью от того, что из PHP дает мне как строки для чисел. Во всяком случае, вот текущие результаты, которые я получаю для нового секретного ключа:

PHP: 56863dda2dedc07a23a46d057e3f2eafe70951e92f4c13afca049f4f88adf722
C ++: 56863dda2dedc07a23a46d057e3f2eaea1b82ecfde94b3eb89d6fddc58e43863

Мне нужно решение в C ++ (с использованием QCA, BIGNUM, что угодно, - хотя я предпочел бы QCA), что делает правильную математику, и дает мне тот же результат, я получаю в PHP. Если вы знаете, как, пожалуйста, напишите Ваше решение здесь вместе с BTC адрес, и я пришлю 0,3 BTC сразу. Благодаря!

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


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


23 сентября 2014, 8:05:43 PM   # 2
 
 
Сообщения: 112
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

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





У меня есть кто-то, кто может сделать это для как 0,05 BTC, но я не есть какие-либо, если и заплатить мне 0,05 BTC теперь я пошлю его и получить его решить, после того, как решил и может заплатить мне отдохнуть 0.025 иначе я дам у -ve респ , BTC адрес всегда в моей подписи пространства
Babba D сейчас офлайн Пожаловаться на Babba D   Ответить с цитированием Мультицитирование сообщения от Бабба D Быстрый ответ на сообщение Babba D

23 сентября 2014, 8:10:42 PM   # 3
 
 
Сообщения: 327
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

У меня есть кто-то, кто может сделать это для как 0,05 BTC, но я не есть какие-либо, если и заплатить мне 0,05 BTC теперь я пошлю его и получить его решить, после того, как решил и может заплатить мне отдохнуть 0.025 иначе я дам у -ve респ , BTC адрес всегда в моей подписи пространства

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

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

23 сентября 2014, 8:12:13 PM   # 4
 
 
Сообщения: 112
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

У меня есть кто-то, кто может сделать это для как 0,05 BTC, но я не есть какие-либо, если и заплатить мне 0,05 BTC теперь я пошлю его и получить его решить, после того, как решил и может заплатить мне отдохнуть 0.025 иначе я дам у -ve респ , BTC адрес всегда в моей подписи пространства

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



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

23 сентября 2014, 8:42:11 PM   # 5
 
 
Сообщения: 1092
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

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

Код:

QByteArray new_key = bnl.toArray () toByteArray () toHex ()..;


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


Edit1: К сожалению, логическая ошибка ... ошибка, должно быть, произошло раньше.

Edit2: Вопрос: Что такое результат, если рассчитать так же, как:

Код:

// Делай математику
BNL% = БНО;
БНК% = БНО;

BNL + = БНК;
BNL% = БНО;

?


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

23 сентября 2014, 10:02:32 PM   # 6
 
 
Сообщения: 327
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

К сожалению yayayo, но нет!

Хорошо, 0,4 BTC это тогда! Я собираюсь немного поспать, но я проверю эту тему прямо после пробуждения, и если кто-то может решить эту проблему, вы будете иметь дополнительные 0,4 BTC на ваше имя. На текущей рыночной ставке, это около $ 200. Неплохо...

Опять же, первым пришел, первым обслужен. Дать решение здесь публично, так что я знаю, что вы были первыми.
Envrin сейчас офлайн Пожаловаться на Envrin   Ответить с цитированием Мультицитирование сообщения от Envrin Быстрый ответ на сообщение Envrin

23 сентября 2014, 11:57:29 PM   # 7
 
 
Сообщения: 497
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

Не могли бы вы Pastebin код PHP?

(Я получил другую HMAC SHA512 ...: /)

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

24 сентября 2014, 12:46:13 AM   # 8
 
 
Сообщения: 672
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

К сожалению yayayo, но нет!

Хорошо, 0,4 BTC это тогда! Я собираюсь немного поспать, но я проверю эту тему прямо после пробуждения, и если кто-то может решить эту проблему, вы будете иметь дополнительные 0,4 BTC на ваше имя. На текущей рыночной ставке, это около $ 200. Неплохо...

Опять же, первым пришел, первым обслужен. Дать решение здесь публично, так что я знаю, что вы были первыми.

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

24 сентября 2014, 6:03:30 AM   # 9
 
 
Сообщения: 327
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

Не могли бы вы Pastebin код PHP?

(Я получил другую HMAC SHA512 ...: /)

Elbandi

Конечно, полное содержание bip32.h и bip32.cpp файлы находятся по адресу:

http://pastebin.com/vCqtspFV

Тогда вот код, я в настоящее время работает только для тестирования различных функций:

Код:
bip32 * bp32 = новый bip32 ();
bp32->Импортировать("xprv9s21ZrQH143K2JF8RafpqtKiTbsbaxEeUaMnNHsm5o6wCW3z8ySyH4UxFVSfZ8n7ESu7fgir8imbZKLYVBxFPND1pniTZ81vKfd45EHKX73");
QByteArray Публичных = bp32->private_to_public ();
QString адр = bp32->get_addr ();
bp32->get_definition_tuple ("35");

QString CKEY = bp32->derive_child_key ();
txtPrivateKey->setPlainText (CKEY);

Практически все функции работают нормально, хотя некоторые являются неполными. Одна мне нужна помощь последняя функция есть, derive_child_key (). Все, кажется, работает нормально, до тех пор, пока я сделать эту операцию по модулю. Тогда это просто игра в кости из, и, кажется, не выполняет каких-либо математику вообще, так как она не изменяет переменную BNL на всех.


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

24 сентября 2014, 6:26:07 AM   # 10
 
 
Сообщения: 327
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы


Если бы запрос кода PHP, а, так вот кусок кода, который работает отлично. 

Код:

$ chain_code 
знак равно "180c998615636cd875aa70c71cfa6b7bf570187a56d8c6d054e60b644d13e9d3";
$ private_key знак равно "5c22f8937210130ad1bbc50678a7c0a119a483d47928c323bf0baa3a57fa547d";
$ Публичных знак равно "023E4740D0BA639E28963F3476157B7CF2FB7C6FDF4254F97099CF8670B505EA5900000023";

// данные Hash
$ I знак равно hash_hmac('Sha512'пак("ЧАС*"$ Публичных), пак("ЧАС*"$ chain_code));
$ I_l знак равно зиЬзЬг($ I064);
$ I_r знак равно зиЬзЬг($ I6464);

// Инициализировать кривую
$ г знак равно SECcurve::generator_secp256k1();
$ п знак равно $ г->GetOrder();

// ключ Генерировать
$ ключ знак равно str_pad(gmp_strval(gmp_Utils::gmp_mod2(gmp_add(gmp_init($ I_l16), gmp_init($ private_key16)), $ п), 16), 64'0'STR_PAD_LEFT);
если (! Исеть (
$ ключ)) вернуть ЛОЖНЫЙ;

эхо 
«NEW KEY:  $ ключ\ П»;

?>

Это gmp_Utils :: mod2 () функция может быть найдена на самом верху эта страница Github.

Для этого PHP кода для правильной работы вам нужна вся библиотека по адресу:  https://github.com/Bit-Wasp/bitcoin-lib-php
Envrin сейчас офлайн Пожаловаться на Envrin   Ответить с цитированием Мультицитирование сообщения от Envrin Быстрый ответ на сообщение Envrin

24 сентября 2014, 6:46:07 AM   # 11
 
 
Сообщения: 1288
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

Оказывается, я не знаю вещь о C ++

Проще говоря, чем вопрос? Можно ли упростить?

http://www.mibsoftware.com/php2cpp/
http://sourceforge.net/projects/binaryphp/

это просто, что вы получаете 1 вы не должны получать?

эта часть правильно?

Код:
/ Получить ключ
   [Ь], если (key_type == "частный") {
        decoded.remove (0, 1);
        ключ = decoded.left (32);
        decoded.remove (0, 32); [/ б]
    } Еще {
        ключ = decoded.left (33);
        decoded.remove (0, 33);
    }
ndnh сейчас офлайн Пожаловаться на ndnh   Ответить с цитированием Мультицитирование сообщения от ndnh Быстрый ответ на сообщение ndnh

24 сентября 2014, 7:04:15 AM   # 12
 
 
Сообщения: 1288
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

и попробуйте вместо этого:

BNL = BNL + БНК
BNL = BNL% БНО или это BNL = БНО% BNL?
ndnh сейчас офлайн Пожаловаться на ndnh   Ответить с цитированием Мультицитирование сообщения от ndnh Быстрый ответ на сообщение ndnh

24 сентября 2014, 7:06:20 AM   # 13
 
 
Сообщения: 327
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

Вот дерьмо, я получил его! Я действительно не знаю, как, но я сделал. Просто использовали это:

Код:
   // Делай математику
    BNL + = БНК;
    ККА :: BigInteger BND (BNL);
    BND / = БНО;

    если (BND > 0) {
        БНД * = БНО;
        BNL - = BND;
    } Еще {BNL - = БНО; }

    // Вернуть
    QByteArray new_key = bnl.toArray () toByteArray ().
    Возвращение new_key.remove (0, 1) .toHex ();

К сожалению, награда в настоящее время закрыта!

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

24 сентября 2014, 7:08:45 AM   # 14
 
 
Сообщения: 1288
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

Вот дерьмо, я получил его! Я действительно не знаю, как, но я сделал. Просто использовали это:

Код:
   // Делай математику
    BNL + = БНК;
    ККА :: BigInteger BND (BNL);
    BND / = БНО;

    если (BND > 0) {
        БНД * = БНО;
        BNL - = BND;
    } Еще {BNL - = БНО; }

    // Вернуть
    QByteArray new_key = bnl.toArray () toByteArray ().
    Возвращение new_key.remove (0, 1) .toHex ();

К сожалению, награда в настоящее время закрыта!



Из моего ограниченного знания, я думаю, что вся проблема возникла из этого знак равно

если у вас есть какие-либо проблемы, как это, просто разместить его на StackOverflow.

Может у еще сказать, работает ли это?
и попробуйте вместо этого:

BNL = BNL + БНК
BNL = BNL% БНО или это BNL = БНО% BNL?

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

24 сентября 2014, 7:25:30 AM   # 15
 
 
Сообщения: 327
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

Может у еще сказать, работает ли это?
и попробуйте вместо этого:

BNL = BNL + БНК
BNL = BNL% БНО или это BNL = БНО% BNL?


Нет, я не могу использовать такие операции, как, что (например, BNL = BNL + БНК). Он бросает ошибки по какой-то причине, следовательно, почему у меня есть "BNL + = БНК" тип операции вместо этого. Это единственный способ, которым я могу получить его скомпилировать без ошибок. Документация говорит "BNL = BNL + БНК" должен работать нормально, но это не для меня по крайней мере.

Тогда что-то вроде "BNL% = БНО" прекрасно работает только стандартные целые числа, но, кажется, не работают вообще для типов данных КК :: BigInteger. Не знаю, почему, но не делает.

Ну, это было весело 3 дня ...

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

24 сентября 2014, 9:33:51 AM   # 16
 
 
Сообщения: 196
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

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

24 сентября 2014, 11:48:33 AM   # 17
 
 
Сообщения: 497
Цитировать по имени
цитировать ответ
по умолчанию Re: 0,3 BTC Баунти - C ++ Большой Integer Math проблемы

хмм ...

Вот дерьмо, я получил его! Я действительно не знаю, как, но я сделал. Просто использовали это:
Да, это работает, потому что вы просто удалить первый символ ( new_key.remove (0, 1) .toHex () ).

Во всяком случае, этот код
Код:
   ККА :: BigInteger BND (BNL);
    BND / = БНО;

    если (BND > 0) {
        БНД * = БНО;
        BNL - = BND;
    } Еще {BNL - = БНО; }
эквивалентно деления по модулю ( BNL% БНО), Только неправильно (если БНД равно 1 и БНО равно 2, после того, как / =, Bnd воли 0, остальное подножка и BNL -1) ...

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



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW