Bitcoin Forum

Local => Кодеры => Topic started by: Rubg on September 30, 2017, 09:40:53 PM



Title: извлечение смарт контрактов из блокчейна
Post by: Rubg on September 30, 2017, 09:40:53 PM
Здравствуйте

Интересует такой момент, можно ли извлечь все смарт контракты из блокчейна эфира  и декомпилировать их ?

поясните подробно этот момент. Необходимы консультации, можно и платно.


Title: Re: извлечение смарт контрактов из блокчейн&#
Post by: aleks_raiden on October 01, 2017, 08:33:19 AM
Не так все просто, но есть возможности - вот на Реддите целый топик, может что-то подскажет вам - https://www.reddit.com/r/ethereum/comments/3gpefj/decompiler/ (https://www.reddit.com/r/ethereum/comments/3gpefj/decompiler/)


Title: Re: извлечение смарт контрактов из блокчейн&#
Post by: KostiaSA on October 02, 2017, 10:59:16 AM
https://github.com/comaeio/porosity


Title: Re: извлечение смарт контрактов из блокчейн&#
Post by: Rubg on December 06, 2017, 09:30:26 PM
Так есть у кого готовое решение ? Если есть пишите в пм.
договоримся


Title: Re: извлечение смарт контрактов из блокчейн&#
Post by: yokotoka on December 11, 2017, 12:12:03 PM
Если только из etherscan.io вытащить все заверифицированные контракты.
Декомпиляция в solidity из лапши опкодов - вряд ли на этом этапе возможна на практике.


Title: Re: извлечение смарт контрактов из блокчейн&#
Post by: Jaga-Jaga on December 11, 2017, 09:58:17 PM
Если только из etherscan.io вытащить все заверифицированные контракты.
Декомпиляция в solidity из лапши опкодов - вряд ли на этом этапе возможна на практике.
Скорее всего это возможно, только код будет не очень читабельный. По аналогии с Java могу сказать что байткод декомпилируется и с ним вобщем можно работать.
А зачем декомпилировать смарт контракты если в большинстве ICO смарт контракты можно итак прочитать?


Title: Re: извлечение смарт контрактов из блокчейн&#
Post by: amaclin1 on December 12, 2017, 03:46:19 AM
Если только из etherscan.io вытащить все заверифицированные контракты.
Декомпиляция в solidity из лапши опкодов - вряд ли на этом этапе возможна на практике.

В целом, вариант по-моему только один - брать верифицированные контракты
кстати, я бы не стал доверять эзерскану на 100%, может быть стоит самостоятельно
перекомпилировать и перепроверять. Были вроде еще пара-тройка мест, где
можно встретить код в исходном виде. Декомпилировать во что-то читаемое
у меня лично не вышло, да в целом я и не особо старался, когда осознал масштаб
задачи.


Title: Re: извлечение смарт контрактов из блокчейн&#
Post by: ShDenis on December 12, 2017, 07:39:20 AM
Если только из etherscan.io вытащить все заверифицированные контракты.
Декомпиляция в solidity из лапши опкодов - вряд ли на этом этапе возможна на практике.
Скорее всего это возможно, только код будет не очень читабельный. По аналогии с Java могу сказать что байткод декомпилируется и с ним вобщем можно работать.
А зачем декомпилировать смарт контракты если в большинстве ICO смарт контракты можно итак прочитать?

Встречный вопрос - а как убедиться, что в блокчейн был залит именно заявленный смарт контракт без изменений? Или можно скомпилировать и сравнить коды?


Title: Re: извлечение смарт контрактов из блокчейн&#
Post by: amaclin1 on December 12, 2017, 07:59:14 AM
Встречный вопрос - а как убедиться, что в блокчейн был залит именно заявленный
смарт контракт без изменений? Или можно скомпилировать и сравнить коды?
В блокчейн заливается в виде байткода.
То есть проверка контракта сводится к тому, что надо с помощью компилятора
определенной версии получить байткод и он должен полностью совпадать.
Поэтому в текстах контрактов и указывают всегда - каким компилятором это
собиралось для создания контракта.


Title: Re: извлечение смарт контрактов из блокчейн&#
Post by: Robhayes on December 12, 2017, 09:43:32 AM
Один вопрос, компиляторы имеют открытый код? И кто их пишет?


Title: Re: извлечение смарт контрактов из блокчейн&#
Post by: amaclin1 on December 12, 2017, 09:47:25 AM
Один вопрос, компиляторы имеют открытый код? И кто их пишет?
Это два вопроса.
Думаю, что на оба из них вы сможете ответить самостоятельно, проявив немного
усердия и сообразительности. (ответов я сам не знаю, но уверен что найти их несложно)


Title: Re: извлечение смарт контрактов из блокчейн&#
Post by: yokotoka on December 12, 2017, 01:02:12 PM
Один вопрос, компиляторы имеют открытый код? И кто их пишет?

Да, открытый. Пишет команда ethereum и сообщество.
Вот здесь исходники: https://github.com/ethereum/solidity
См. solc и его импорты.


Title: Re: извлечение смарт контрактов из блокчейн&#
Post by: Xtc on December 13, 2017, 10:05:19 PM
Интересует такой момент, можно ли извлечь все смарт контракты из блокчейна эфира  и декомпилировать их ?
Они и так лежат у тебя на диске, вместе с блокчейном. Получить читаемый код из байт-кода невозможно, имена переменных и так далее пропадают после компиляции.
Более-менее читаемый можно, уверен что в привате есть. У меня нету, так как не надо.

Quote
Декомпилировать во что-то читаемое у меня лично не вышло, да в целом я и не особо старался, когда осознал масштаб задачи.
Для байткода питоновских .pyc файлов есть ведь платные сервисы, здесь проблемы и решения точно такие же.


Title: Re: извлечение смарт контрактов из блокчейн&#
Post by: amaclin1 on December 14, 2017, 03:55:59 AM
Для байткода питоновских .pyc файлов есть ведь платные сервисы, здесь проблемы и решения точно такие же.
Я в целом понимаю. В конце концов не первый год замужем.
У меня курсовая работа на 4-ом курсе была
"Эмулятор команд контроллера массовой памяти Электроники СС-БИС"
вы думаете с тех пор я не научился байткоды разные парсить?
Эх, молодежь. Да что вы вообще знаете о том, как делать реверс-инжиниринг
байткода с помощью sourcer?
Ну ладно. Контрольный вопрос. На что надо поменять E6 61 и зачем?