# OpenZeppelin Ethernaut 通关纪录

Original: <https://lifelonglearn.ing/openzeppelin-ethernaut>

Author: [奶爸](https://lifelonglearn.ing/users/3b04650c-8231-499b-8ef0-381fc4d7efb0)

Published: 2023-01-14T15:26:25Z

Updated: 2026-09-27T06:57:43Z

Version: 1

题目更新 RSS 订阅：[https://rsshub-lite.naibahq.com/feed/ethernaut](https://lifelonglearn.ing/r/go?url=aHR0cHM6Ly9yc3NodWItbGl0ZS5uYWliYWhxLmNvbS9mZWVkL2V0aGVybmF1dA==)

通关链上纪录：[https://sepolia.etherscan.io/address/0xdadada681e6270e1d0181442220a2e5608b11d21](https://lifelonglearn.ing/r/go?url=aHR0cHM6Ly9zZXBvbGlhLmV0aGVyc2Nhbi5pby9hZGRyZXNzLzB4ZGFkYWRhNjgxZTYyNzBlMWQwMTgxNDQyMjIwYTJlNTYwOGIxMWQyMQ==)

部分题目代码：[https://github.com/naiba-archived/ethernaut](https://lifelonglearn.ing/r/go?url=aHR0cHM6Ly9naXRodWIuY29tL25haWJhLWFyY2hpdmVkL2V0aGVybmF1dA==)

![](https://lifelonglearn.ing/upload/65b52b87-1829-4189-a291-9d380ff93afb.jpg)

## 部分题目解析

* `AlienCodex`：Solidity storage slot 相关问题，数组/map 使用不当会导致变量覆盖。
* `GatekeeperOne`：位运算与，将 uint16 - uint32 之间的比特位置 0 可以实现 `uint16(x) == uint32(x) && uint64(x) != uint64(x)`
* `MagicNumber`：使用 opcodes 写出最小合约
* `PuzzleWallet`：delegatedCall 相关，只是逻辑比较复杂，原理简单
