Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
4 октября 2012, 9:01:56 PM   # 1
 
 
Сообщений: 32
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind / Bitcoin-кварта источник находки адрес ввода

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Im пытаясь найти входной адрес транзакции, но я не могу показаться, чтобы выяснить, как .. кто?

Код:
CWalletTx WTX;
pwalletMain->GetTransaction (uint256 (TXID), WTX);
CTxIn Vin = wtx.vin [0];
CScript scriptSig = vin.scriptSig;

как я могу получить исходный адрес этого Львиного .. Я не кажется, чтобы понять, как я могу получить адрес scriptsig ..


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


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


4 октября 2012, 9:48:14 PM   # 2
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind / Bitcoin-кварта источник находки адрес ввода

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





Im пытаясь найти входной адрес транзакции, но я не могу показаться, чтобы выяснить, как .. кто?

Операции не имеют входной адрес.

Они имеют один или несколько входов, которые могут или не могут соответствовать одному или нескольким адресам.

Если у вас есть CScript, то вы можете позвонить:
Код:
BOOL ExtractDestination (Const CScript& scriptPubKey, CTxDestination& addressRet);
BOOL ExtractDestinations (Const CScript& scriptPubKey, txnouttype& typeRet, станд :: вектор& addressRet, внутр& nRequiredRet);

Что ты пытаешься сделать?
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен

4 октября 2012, 10:12:18 PM   # 3
 
 
Сообщений: 32
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind / Bitcoin-кварта источник находки адрес ввода

Im пытаясь найти входной адрес транзакции, но я не могу показаться, чтобы выяснить, как .. кто?

Операции не имеют входной адрес.

Они имеют один или несколько входов, которые могут или не могут соответствовать одному или нескольким адресам.

Если у вас есть CScript, то вы можете позвонить:
Код:
BOOL ExtractDestination (Const CScript& scriptPubKey, CTxDestination& addressRet);
BOOL ExtractDestinations (Const CScript& scriptPubKey, txnouttype& typeRet, станд :: вектор& addressRet, внутр& nRequiredRet);

Что ты пытаешься сделать?


Я просто пытаюсь для вывода дополнительной информации о команде Rpc getrawtransaction для моего личного Bitcoins ...

позволяет сказать, что у меня есть этот выход транзакции (testnet):
Код:
{
    "наговор" : "0100000001241514a48241f8af8abde6e6e3a657a6ff67beb2febdd5c1f4c62a71a1fb81c3000000008b483045022100a84c1b1a89938c4b16ec7749e9afc16f1a5ec26ddbb16e44739818f4bb85b74c02205d5ce610e0b9d80a373f305dbe67d7347d47470e4b3f6bd98e670ae511d98b920141043ac715efdea8815afc64d7441549e9114ba5d2658f0dcc1a75a8420e8af4791ad8ac46b2eec0463bc54946662e860717d92afe137f0a9fb1b7e1eea812487285ffffffff0200a3e111000000001976a9144988abbeb751dcd6e9f4ec40d50b84c99ed1426d88ac00c2eb0b000000001976a914539862a4bc81786df288265752e12bd7c0c0a6c488ac00000000",
    "TXID" : "6aeb3de625830fcc45f675042e1ed98d2c08af72119f81a6e7819d55a6f8ab83",
    "версия" : 1,
    "Locktime" : 0,
    "Vin" : [
        {
            "TXID" : "c381fba1712ac6f4c1d5bdfeb2be67ffa657a6e3e6e6bd8aaff84182a4141524",
            "Vout" : 0,
            "scriptSig" : {
                "как м" : "3045022100a84c1b1a89938c4b16ec7749e9afc16f1a5ec26ddbb16e44739818f4bb85b74c02205d5ce610e0b9d80a373f305dbe67d7347d47470e4b3f6bd98e670ae511d98b9201 043ac715efdea8815afc64d7441549e9114ba5d2658f0dcc1a75a8420e8af4791ad8ac46b2eec0463bc54946662e860717d92afe137f0a9fb1b7e1eea812487285",
                "наговор" : "483045022100a84c1b1a89938c4b16ec7749e9afc16f1a5ec26ddbb16e44739818f4bb85b74c02205d5ce610e0b9d80a373f305dbe67d7347d47470e4b3f6bd98e670ae511d98b920141043ac715efdea8815afc64d7441549e9114ba5d2658f0dcc1a75a8420e8af4791ad8ac46b2eec0463bc54946662e860717d92afe137f0a9fb1b7e1eea812487285"
            },
            "последовательность" : 4294967295
        }
    ],
    "Vout" : [
        {
            "стоимость" : 3.00000000,
            "N" : 0,
            "scriptPubKey" : {
                "как м" : "OP_DUP OP_HASH160 4988abbeb751dcd6e9f4ec40d50b84c99ed1426d OP_EQUALVERIFY OP_CHECKSIG",
                "наговор" : "76a9144988abbeb751dcd6e9f4ec40d50b84c99ed1426d88ac",
                "reqSigs" : 1,
                "тип" : "pubkeyhash",
                "адреса" : [
                    "mnDmM7j73HEqo746F1cLQZXwTXNPzLxc3W"
                ]
            }
        },
        {
            "стоимость" : 2.00000000,
            "N" : 1,
            "scriptPubKey" : {
                "как м" : "OP_DUP OP_HASH160 539862a4bc81786df288265752e12bd7c0c0a6c4 OP_EQUALVERIFY OP_CHECKSIG",
                "наговор" : "76a914539862a4bc81786df288265752e12bd7c0c0a6c488ac",
                "reqSigs" : 1,
                "тип" : "pubkeyhash",
                "адреса" : [
                    "mo8xvtom7uyCwjh3MHzjdc8ZtWqAQp6xW7"
                ]
            }
        }
    ],
    "blockhash" : "00000000235841896dc9856e8a3ef214df8f5e4f2127e534ff18199616f8da00",
    "подтверждения" : 103,
    "время" : 1349331390,
    "blocktime" : 1349331390
}

а я хотел бы, чтобы отобразить адрес Vin в ... немного похоже на то, что blockchain.info дисплеи!
xblitz сейчас офлайн Пожаловаться на xblitz   Ответить с цитированием Мультицитирование сообщения от xblitz Быстрый ответ на сообщение xblitz

4 октября 2012, 11:40:00 PM   # 4
 
 
Сообщений: 32
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind / Bitcoin-кварта источник находки адрес ввода

Хорошо с помощью людей на / Bitcoin-сайте-разработчика Я был в состоянии разрешить адреса из входов транзакции с использованием vin.prevout

так что просто для других людей, чтобы знать ... exmaple, чтобы узнать адрес первого входного в

Код:
CWalletTx WTX;
pwalletMain->GetTransaction (uint256 (TXID), WTX); // получить текущую транзакцию
CTxIn Vin = wtx.vin [0]; // получить первый вход
CWalletTx wtxPrev;                                     
pwalletMain->GetTransaction (vin.prevout.hash, wtxPrev); // получить предыдущую транзакцию Вина
источник CTxDestination;
ExtractDestination (wtxPrev.vout [vin.prevout.n] .scriptPubKey, источник); // извлечь назначения Vout предыдущей транзакции [п]
CBitcoinAddress addressSource (источник); // преобразовать это адрес

печать addressSource.ToString () // может и распечатать его!

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

5 октября 2012, 12:28:58 AM   # 5
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind / Bitcoin-кварта источник находки адрес ввода

Так же, как напоминание, в то время как это, как это должно работать, понятие отправки почты не существует в Bitcoin. То, что это делает, находя последний адрес, получили эти средства. Это время от времени, что вы ожидаете, но не всегда. Если вы думаете, что этот адрес принадлежит или контролируется лицом, который послал вам сделку, вы будете неправильно довольно часто.
kjj сейчас офлайн Пожаловаться на kjj   Ответить с цитированием Мультицитирование сообщения от kjj Быстрый ответ на сообщение kjj

5 октября 2012, 12:36:24 AM   # 6
 
 
Сообщений: 32
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind / Bitcoin-кварта источник находки адрес ввода

Так же, как напоминание, в то время как это, как это должно работать, понятие отправки почты не существует в Bitcoin. То, что это делает, находя последний адрес, получили эти средства. Это время от времени, что вы ожидаете, но не всегда. Если вы думаете, что этот адрес принадлежит или контролируется лицом, который послал вам сделку, вы будете неправильно довольно часто.

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

5 октября 2012, 12:50:19 AM   # 7
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind / Bitcoin-кварта источник находки адрес ввода

Я заинтересован только в адрес .. не владелец .. 
Я знаю, что это не всегда будет разрешаться в адрес .. но в большинстве случаев это будет .. я просто поймать ошибки, когда это не так, и справиться с этим изящно

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

5 октября 2012, 12:56:41 AM   # 8
 
 
Сообщений: 32
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoind / Bitcoin-кварта источник находки адрес ввода

ИТАК мой предыдущий пример был хорош для Транзакции .. так что вместо этого я сделал еще "Генеральная" реализация для него, чтобы быть в getrawtransaction от Bitcoin клиента

здесь патч-мод, как из кода TxToJSON в rpcrawtransaction.cpp, который используется для вывода verbosed версии getrawtransaction или decoderawtransaction:
(Добавлен код имеет + спереди)

Код:
недействительный TxToJSON (Const CTransaction& TX, Const uint256 hashBlock, объект& запись)
{
    entry.push_back (пара ("TXID", Tx.GetHash () GetHex ())).
    entry.push_back (пара ("версия", Tx.nVersion));
    entry.push_back (пара ("Locktime"(Повышение :: int64_t) tx.nLockTime));
    Массив вины;
    BOOST_FOREACH (Const CTxIn& txin, tx.vin)
    {
        Объект в;
        если (tx.IsCoinBase ())
            in.push_back (пара ("coinbase", HexStr (txin.scriptSig.begin (), txin.scriptSig.end ())));
        еще
        {
            in.push_back (пара ("TXID", Txin.prevout.hash.GetHex ()));
            in.push_back (пара ("Vout"(Повышение :: int64_t) txin.prevout.n));
+           CTransaction txPrev;
+           uint256 hashBlock;
+           GetTransaction (txin.prevout.hash, txPrev, hashBlock); // получить предыдущую транзакцию Вина
+           источник CTxDestination;
+           если (ExtractDestination (txPrev.vout [txin.prevout.n] .scriptPubKey, источник)) // извлечь назначения Vout предыдущей транзакции [п]
+           {
+               CBitcoinAddress addressSource (источник); // преобразовать это адрес
+               in.push_back (пара ("адрес", AddressSource.ToString ())); // добавить адрес возвращенного объекта
+           }
            Объект О;
            o.push_back (пара ("как м", Txin.scriptSig.ToString ()));
            o.push_back (пара ("наговор", HexStr (txin.scriptSig.begin (), txin.scriptSig.end ())));
            in.push_back (пара ("scriptSig", О));
        }
        in.push_back (пара ("последовательность"(Повышение :: int64_t) txin.nSequence));
        vin.push_back (в);
    }
    entry.push_back (пара ("Vin", Vin));
    Массив Vout;
    для (беззнаковое INT I = 0; я < tx.vout.size (); я ++)
    {
        Const CTxOut& txout = tx.vout [I];
        Объект вне;
        out.push_back (пара ("стоимость", ValueFromAmount (txout.nValue)));
        out.push_back (пара ("N"(Повышение :: int64_t) Я));
        Объект О;
        ScriptPubKeyToJSON (txout.scriptPubKey, о);
        out.push_back (пара ("scriptPubKey", О));
        vout.push_back (уходит);
    }
    entry.push_back (пара ("Vout", Vout));

    если (hashBlock! = 0)
    {
        entry.push_back (пара ("blockhash", HashBlock.GetHex ()));
        карта:: итератора миль = mapBlockIndex.find (hashBlock);
        если (мили! = mapBlockIndex.end () && (* Мили) .second)
        {
            CBlockIndex * pindex = (* мили) .second;
            если (pindex->IsInMainChain ())
            {
                entry.push_back (пара ("подтверждения"1 + nBestHeight - pindex->nHeight));
                entry.push_back (пара ("время"(Повышение :: int64_t) pindex->Ntime));
                entry.push_back (пара ("blocktime"(Повышение :: int64_t) pindex->Ntime));
            }
            еще
                entry.push_back (пара ("подтверждения", 0));
        }
    }
}
xblitz сейчас офлайн Пожаловаться на xblitz   Ответить с цитированием Мультицитирование сообщения от xblitz Быстрый ответ на сообщение xblitz



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW