Неудачная попытка скрыть код от отладчика в сети ethereum

Захотелось мне сделать хитрый код, который бы не давал отладчику remix себя отлаживать.
Идея проста.
Отладчик загружает код, парсит его, получает последовательность команд.
А что если в аргумент команды PUSHnn запихнуть тоже код и на него потом прыгнуть?

Код такой:

00 PUSH4 5b600856
05 PUSH1 01
07 JUMP
08 JUMPDEST

Если его развернуть, то будет:
00 63 PUSH4
01 5b JUMPDEST
02 60 PUSH1
03 08
04 56 JUMP
05 60 PUSH1
06 01
07 56 JUMP
08 5b JUMPDEST

Запустил я транзакцию на создание контракта и получил «Bad jump destination».

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


ссылка на оригинал статьи https://habr.com/post/424883/

Добавить комментарий

Ваш адрес email не будет опубликован.