破解以太坊 EVM 谜题10
通过以太坊 EVM 谜题深入学习 EVM,了解 EVM 可以帮助我们写出更高效的代码。
学习Solidity 的同学,欢迎订阅我的另一个专栏Ethernaut 题库闯关, 了解常用的 Hacker 方法,可以帮助我们写出更安全的代码。
00 38 CODESIZE
01 34 CALLVALUE
02 90 SWAP1
03 11 GT
04 6008 PUSH1 08
06 57 JUMPI
07 FD REVERT
08 5B JUMPDEST
09 36 CALLDATASIZE
0A 610003 PUSH2 0003
0D 90 SWAP1
0E 06 MOD
0F 15 ISZERO
10 34 CALLVALUE
11 600A PUSH1 0A
13 01 ADD
14 57 JUMPI
15 FD REVERT
16 FD REVERT
17 FD REVERT
18 FD REVERT
19 5B JUMPDEST
1A 00 STOP
? Enter the value to send: (0)
? Enter the calldata:
以上是 EVM 谜题 10 的操作码,这个谜题很类似上一个谜题, 要求我们输入正确的发送 ETH 数量及calldata 数据。
我们了解大部分操作码的作用,及如何解决谜题。
让我们看看有哪些新的操作码被引入:
value0 > value1
的结果推到堆栈中。如果结果是true
,则推送1
,否则推送0
。value0 % value1
的结果推回堆栈。注意,分母(value1
)是0
,结果将是0
。value0 ===0
的结果推到堆栈中。
00 38 CODESIZE
01 34 CALLVALUE
02 90 SWAP1
03 11 GT
04...
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!