Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
20 марта 2015, 3:01:10 PM   # 1
 
 
Сообщений: 16
Цитировать по имени
цитировать ответ
по умолчанию Re: [PHP] Получить адрес из необработанного сделки

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Привет, Я работаю на PHP скрипт написал с другом (который на самом деле занят атм) в течение следующего маленького проекта .. Что случилось с ним? Иногда не будет читать правильный адрес от сырьевых сделок и multisig составляет 100% не хватает, потому что я не могу понять, как получить его.
Может кто-нибудь помочь мне, чтобы добавить правильные функции / исправить фактические функции? Благодаря!!

Кодекс также доступен на pastebin.com
Код:
включают('Setup.php');
require_once 'BitcoinRPC.php';

функция readTransaction($ rawtx)
{
        
$ подробнее знак равно $ this-->getrawtransaction($ rawtx["TXID"], 1);
        
$ vinhex знак равно $ подробнее['Vin'] [0] ['ScriptSig'] [«Шестигранной»];
        
$ decodedscript знак равно decodescript($ vinhex);
        
$ адрес знак равно pubKeyToAddress($ decodedscript[1]);
        
вернуть $ адрес;
}

функция hash160ToAddress($ hash160,$ addressversion знак равно "00")
{
$ hash160 знак равно $ addressversion.$ hash160;
$ проверка знак равно пак("ЧАС*" $ hash160);
$ проверка знак равно гашиш("Sha256"гашиш("Sha256"$ проверка правда));
$ проверка знак равно зиЬзЬг($ проверка08);
$ hash160 знак равно strtoupper($ hash160.$ проверка);
вернуть encodeBase58($ hash160);
}

функция hash160($ данных)
{
$ данных знак равно пак("ЧАС*" $ данных);
вернуть strtoupper(гашиш("Ripemd160"гашиш("Sha256"$ данных,правда)));
}

функция pubKeyToAddress($ Публичных)
{
вернуть hash160ToAddress(hash160($ Публичных));
}

функция decodeHex($ шестигранной)
{
$ шестигранной знак равно strtoupper($ шестигранной);
$ символов знак равно "0123456789abcdef";
$ возврат знак равно "0";
для($ я знак равно 0$ я StrLen($ шестигранной); $ я++)
{
$ тока = (Строка)StrPos($ символов$ шестигранной[$ я]);
$ возврат = (Строка)bcmul($ возврат"16"0);
$ возврат = (Строка)bcadd($ возврат$ тока0);
}
вернуть $ возврат;
}

функция encodeBase58($ шестигранной)
{
если(StrLen($ шестигранной)%!знак равно)
{
умереть(«EncodeBase58: нечетное число шестнадцатеричных символов»);
}
$ orighex знак равно $ шестигранной;
$ символов знак равно "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
$ шестигранной знак равно decodeHex($ шестигранной);
$ возврат знак равно «»;
в то время как(bccomp($ шестигранной0) == 1)
{
$ DV = (Строка)bcdiv($ шестигранной"58"0);
$ бэр = (Целое число)bcmod($ шестигранной"58");
$ шестигранной знак равно $ DV;
$ возврат знак равно $ возврат.$ символов[$ бэр];
}
$ возврат знак равно strrev($ возврат);
для($ я знак равно 0$ я StrLen($ orighex) && зиЬзЬг($ orighex$ я2) == "00"$ я +знак равно 2)
{
$ возврат знак равно "1".$ возврат;
}
вернуть $ возврат;
}

функция decodescript($ скрипт)
{
$ op_code = Массив (
'00' знак равно> 'OP_FALSE''61' знак равно> 'OP_NOP'«6а» знак равно> 'OP_RETURN',
'76' знак равно> 'OP_DUP''87' знак равно> 'OP_EQUAL''88' знак равно> 'OP_EQUALVERIFY',
'51' знак равно> 'OP_TRUE''A6' знак равно> 'OP_RIPEMD160''A7' знак равно> 'OP_SHA1',
'A8' знак равно> 'OP_SHA256''A9' знак равно> 'OP_HASH160'«Аа» знак равно> 'OP_HASH256',
«Ас» знак равно> 'OP_CHECKSIG'«Ае» знак равно> 'OP_CHECKMULTISIG');
$ данных = Массив ();
в то время как(StrLen($ скрипт) ==! 0)
{
$ байт знак равно return_bytes($ скрипт1);
если (Исеть ($ op_code[$ байт]))
{
$ данныхзнак равно $ op_code[$ байт];
}
иначе если ($ байт >знак равно 0x01 && $ байт <знак равно 0x4b)
{
$ данныхзнак равно return_bytes($ скриптHexDec($ байт));
}
иначе если ($ байт >знак равно 0x52 && $ байт <знак равно 0x60)
{
$ данныхзнак равно 'OP_' . ($ байт 0x52);
}
}
вернуть $ данных;
}

функция return_bytes(&$ строка$ byte_count$ обратный знак равно ложный)
{
$ requested_bytes знак равно зиЬзЬг($ строка0$ byte_count 2);
$ строка знак равно зиЬзЬг($ строка$ byte_count 2);
вернуть ($ обратный == ложный)? $ requested_bytes flip_byte_order($ requested_bytes);
}

функция flip_byte_order($ байтов)
{
вернуть взрываться(«»array_reverse(str_split($ байтов2)));
}

$ сделка знак равно $ this-->listtransactions($ установки['Счет'], 500100);
для каждого($ сделка в виде $ rawtx)
{
если($ rawtx[«Категория»] == "послал")
{
Продолжать;
}
еще
{
$ запрос знак равно mysql_query('SELECT * FROM `received_transactions` WHERE` tx` = «'.$ rawtx['TXID'].'";') или умереть(mysql_error());
если(!mysql_fetch_assoc($ запрос))
{
$ адрес знак равно readTransaction($ rawtx);
$ вход знак равно $ rawtx['количество'];
$ ТХ знак равно $ rawtx['TXID'];
$ получил знак равно Дата('У-м-д Н: I: S'$ rawtx['время']);
$ запрос знак равно «INSERT INTO` received_transactions` ( `id`,` tx`, `address`,` `input`, received`) VALUES (NULL, '$ ТХ''$ адрес''$ вход''$ получил«)»;
}
еще
{
Продолжать;
}
}
}
?>
noize941 сейчас офлайн Пожаловаться на noize941   Ответить с цитированием Мультицитирование сообщения от noize941 Быстрый ответ на сообщение noize941


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


20 марта 2015, 4:04:06 PM   # 2
 
 
Сообщения: 1218
Цитировать по имени
цитировать ответ
по умолчанию Re: [PHP] Получить адрес из необработанного сделки

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





Можете ли вы привести пример, когда это не удалось? Включите ожидаемый результат и фактический выход.
DeathAndTaxes сейчас офлайн Пожаловаться на DeathAndTaxes   Ответить с цитированием Мультицитирование сообщения от DeathAndTaxes Быстрый ответ на сообщение DeathAndTaxes

21 марта 2015, 6:50:28 PM   # 3
 
 
Сообщения: 1148
Цитировать по имени
цитировать ответ
по умолчанию Re: [PHP] Получить адрес из необработанного сделки

У меня были проблемы с получением действительно больших чисел к основанию 58. Я в конечном итоге только с помощью узла Bitcoin, чтобы сделать это.
Taras сейчас офлайн Пожаловаться на Taras   Ответить с цитированием Мультицитирование сообщения от Тарас Быстрый ответ на сообщение Тарас

22 марта 2015, 11:29:59 PM   # 4
 
 
Сообщений: 87
Цитировать по имени
цитировать ответ
по умолчанию Re: [PHP] Получить адрес из необработанного сделки

Пробовали ли вы написать свою собственную библиотеку Base58 или вы используете некоторые уже предварительно построенные из них? Если номера действительно, очень большие, вам нужно что-то вроде BCMath или другой большой библиотеки чисел.
Snagglebone сейчас офлайн Пожаловаться на Snagglebone   Ответить с цитированием Мультицитирование сообщения от Snagglebone Быстрый ответ на сообщение Snagglebone

25 марта 2015, 8:36:45 AM   # 5
 
 
Сообщений: 42
Цитировать по имени
цитировать ответ
по умолчанию Re: [PHP] Получить адрес из необработанного сделки

Я ничего не знаю Gibhub. Я не могу скачать бумажник из него!

Пожалуйста, покажите мне, как его использовать!

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



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW