破解以太坊 EVM 谜题3

破解以太坊 EVM 谜题3

articles-2022-10-neKkkmze6341450631c18.jpg

EVM 谜题3

00      36      CALLDATASIZE
01      56      JUMP
02      FD      REVERT
03      FD      REVERT
04      5B      JUMPDEST
05      00      STOP

以上是 EVM 谜题 3 的操作码,它和谜题 1谜题 2类似, 我们要设法直接跳转(JUMP)到JUMPDEST操作码, 如果你完成了前面的 谜题, 你会知道我们需要把栈里值设置为4,这样就可以跳转到有效的JUMPDEST操作码。

在这个谜题里,在JUMP 之前只有一个操作码CALLDATASIZE

  • CALLDATASIZE 将CALLDATA 的大小推入栈,单位为字节。

要解决这个难题,必须要了解什么是 "calldata":

摘自第13章-以太坊虚拟机

calldata是随交易一起发送的数据区域。在创建合约的情况下,它将是构造器代码。这个区域是不可改变的,可以用指令CALLDATALOADCALLDATASIZE和[CA...

剩余50%的内容订阅专栏后可查看

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Ethernaut CTF
Ethernaut CTF
信奉 CODE IS LAW.