
sudo rm -rf --no-preserve-root /|2025年07月10日 14:14
更有趣的是:Etherscan被欺骗显示错误的实现合同的方式是基于在同一个前端运行的tx中设置2个不同的代理插槽。因此Etherscan使用某种启发式方法,结合不同的存储插槽来检索实现合同。
OpenZeppelin有一个旧代理,它使用了以下插槽:`keccak256(“org.zeppelinos.proxy.emplement”)`=`0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3`
我们现在还有标准的EIP-1967插槽“bytes32(uint256(keccak256('ip1967.proxy.emplement')-1)”=“0x360894a13ba1a3210667c828492db98dca32076cc3735a920a3ca505d382bbc”`
因此,旧的OpenZeppelin代理插槽被写入良性实现地址_,标准EIP-1967插槽也被写入恶意实现地址。由于Etherscan首先查询旧的代理插槽,它首先检索到了看起来很好的one,并因此显示了它。
分享至:
脉络
热门快讯
APP下载
X
Telegram
复制链接