diff --git a/client/src/gamedata/zh_cn/descriptions/levels/magicnum.md b/client/src/gamedata/zh_cn/descriptions/levels/magicnum.md new file mode 100644 index 000000000..ac0719cd6 --- /dev/null +++ b/client/src/gamedata/zh_cn/descriptions/levels/magicnum.md @@ -0,0 +1,12 @@ + +要通过这个关卡,你只需要向 Ethernaut 提供一个`Solver`合约,其对`whatIsTheMeaningOfLife()`能够返回正确的 32 字节的响应。 + +容易吧? +嗯。。。有一个问题。 + +`Solver`的代码必须非常小,小到最多只能 10 bytes。 + +提示:是时候离开 solidity 的舒适区了,应该自己手动构建一个编译器了 O_o。 +没错,就是原始的 EVM 字节码。 + +祝你好运! \ No newline at end of file diff --git a/client/src/gamedata/zh_cn/descriptions/levels/magicnum_complete.md b/client/src/gamedata/zh_cn/descriptions/levels/magicnum_complete.md new file mode 100644 index 000000000..b20bf461d --- /dev/null +++ b/client/src/gamedata/zh_cn/descriptions/levels/magicnum_complete.md @@ -0,0 +1,4 @@ + +恭喜!如果您通过了本关,您就可以自称宇宙大师了。 + +继续用 Magnum 的视角观察任何一个物体。现在,尝试将其从远处移动;你的心灵遥感能力可能刚刚开始发挥作用。 \ No newline at end of file diff --git a/client/src/gamedata/zh_cn/descriptions/levels/preservation_complete.md b/client/src/gamedata/zh_cn/descriptions/levels/preservation_complete.md new file mode 100644 index 000000000..4dfe898bf --- /dev/null +++ b/client/src/gamedata/zh_cn/descriptions/levels/preservation_complete.md @@ -0,0 +1,2 @@ +正如上一关`delegate`提到的,使用`delegatecall`来调用库函数可能存在风险。对于有自己状态合约库 +来说尤其如此。这个例子演示了为什么使用`library`关键字构建库,因为它可以防止库存储和访问状态变量。 \ No newline at end of file diff --git a/client/src/gamedata/zh_cn/descriptions/levels/recovery.md b/client/src/gamedata/zh_cn/descriptions/levels/recovery.md index 630c9ad1e..9bee25375 100644 --- a/client/src/gamedata/zh_cn/descriptions/levels/recovery.md +++ b/client/src/gamedata/zh_cn/descriptions/levels/recovery.md @@ -1,3 +1,3 @@ 合约创建者构建了一个非常简单的代币工厂合约。 任何人都可以轻松创建新代币。 在部署了一个代币合约后,创建者发送了 `0.001` 以太币以获得更多代币。 后边他们丢失了合约地址。 -如果您能从丢失的的合约地址中找回(或移除),则顺利通过此关。 +如果您能从丢失的的合约地址中找回(或移除)`0.001`以太币,则顺利通过此关。