破解以太坊 EVM 谜题3

破解以太坊 EVM 谜题3

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是随交易一起发送的数据区域。在创建合约的情况下,它将是构造器代码。这个区域是不可改变的,可以用指令CALLDATALOAD、[CALLDATASIZE](http://localho...

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

  • 发表于 2022-10-09 17:33
  • 阅读 ( 223 )
  • 学分 ( 0 )
  • 分类:以太坊
  • 专栏:以太坊 EVM 谜题破解

评论