Декомпилятор биткойнов

Есть ли инструмент для декомпиляции блокчейна Биткойн?

Я вижу новости о декомпиляторе Ethereum , но что-то похожее на биткойн?

Если вы, как и я, попали сюда в поисках чего-то, чтобы перевести скрипт обратно в удобочитаемые токены (скорее «дизассемблер» для педантичной толпы), загляните на bitcoin.stackexchange.com/questions/42576/… , особенно на github.com/ каллевуф/btcdeb .

Ответы (1)

Существует большая разница между языком, используемым в биткойн-блокчейне, и языком, используемым в эфириуме.

Программисты смарт-контрактов Ethereum обычно пишут свой код на языке высокого уровня (например, Solidity), а затем компилируют его в трудный для чтения байт-код.

Программисты биткойн-скриптов пишут код на языке, который не компилируется, как если бы они писали сам байт-код (хотя на самом деле это не байт-код).

Поэтому логично, что вы не можете декомпилировать язык, который никогда не компилировался.

Что вы можете сделать, так это посмотреть на шестнадцатеричные представления байтов в биткойн-скрипте и проверить, какую операцию они представляют.

На этой странице есть список всех команд и их шестнадцатеричное значение.

Редактировать

Когда вы пишете скрипт в биткойнах, он уже полностью прозрачен. Он никогда не компилируется, НИКОГДА . Он уже полностью прозрачен, потому что вы никогда его не компилируете. Вам не нужно его декомпилировать, потому что он никогда не компилировался, точно так же, как вы не можете разрушить дом, который никогда не был построен.

Я уже упоминал, что вам не нужно декомпилировать, потому что код никогда не компилируется ?

Потому что очень важно понимать, что он никогда не компилируется . Можно просто прочитать как есть.

Если вы видите 0x6aв коде, это выглядит как OP_RETURNссылка, которую я дал вам выше. Вы можете прочитать весь список шестнадцатеричных символов в скрипте и расшифровать его таким образом. Вы больше ничего не можете сделать

Надеюсь теперь будет понятно.

So it is logical that you can't decompile a language that was never compiled in the first place.Почему вы так думаете? Это невозможно или нецелесообразно?
@Denis, компиляция означает преобразование исходного кода в другой, более простой (но менее удобочитаемый) код. Например, преобразование C++ в инструкции x86. Ethereum имеет собственный набор инструкций, но большинство людей используют язык более высокого уровня и компилятор для преобразования его в инструкции Ethereum. Биткойн-скрипт настолько прост и ограничен, что никто не использует язык более высокого уровня. Таким образом, не существует ни компилятора для преобразования этого несуществующего языка в биткойн-скрипт, ни декомпилятора для обратного преобразования.
@Денис, как можно отменить то, что никогда не делалось?? Это не невозможно и непрактично, этого просто никогда не было.
@IvanoDonadi Мне нужна полная прозрачность для моих задач
@ Денис, ты просто не понимаешь. Прочтите мое редактирование, пожалуйста, и попытайтесь понять
Я имею в виду не только скрипт, но и структуру полной базы данных, все зависимости структуры и деревья потока значений и так далее. Сценарий здесь — небольшая часть вопроса.
Ссылка, которую вы разместили о декомпиляторе ethereum, касается исключительно скрипта. Пожалуйста, прочтите базовую документацию о биткойнах и блокчейне.
@IvanoDonadi большое спасибо! •сарказм•
Я предлагаю, прежде чем использовать ваш замечательный сарказм, прочитать определение декомпилятора в Википедии: декомпилятор — это компьютерная программа, которая принимает исполняемый файл в качестве входных данных и пытается создать исходный файл высокого уровня, который может быть успешно перекомпилирован. Следовательно, это противоположность компилятору, который берет исходный файл и создает исполняемый файл. а затем прочитайте статью, которую вы разместили в качестве ссылки. В коде используется декомпилятор
@IvanoDonadi Я думаю, что есть языковой барьер. Я имею в виду не совсем то, что вы мне отвечаете. Но я принимаю ваш ответ, спасибо за помощь!