Захотелось мне сделать хитрый код, который бы не давал отладчику remix себя отлаживать.
Идея проста.
Отладчик загружает код, парсит его, получает последовательность команд.
А что если в аргумент команды PUSHnn запихнуть тоже код и на него потом прыгнуть?
Код такой:
0x600556735b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b
00 PUSH1 05
01 JUMP
02 PUSH20 5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b
«5b» разворачивается в JUMPDEST
Запустил я транзакцию на создание контракта и получил «Bad jump destination».
Получается, что не только отладчик, но и все клиенты сети парсят код только один единственный раз при загрузке.
Идея проста.
Отладчик загружает код, парсит его, получает последовательность команд.
А что если в аргумент команды PUSHnn запихнуть тоже код и на него потом прыгнуть?
Код такой:
0x600556735b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b
00 PUSH1 05
01 JUMP
02 PUSH20 5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b
«5b» разворачивается в JUMPDEST
Запустил я транзакцию на создание контракта и получил «Bad jump destination».
Получается, что не только отладчик, но и все клиенты сети парсят код только один единственный раз при загрузке.
alhimik45
Отличный твит. Держите нас в курсе!