智能合约的升级
exchen 2年前 (2022-07-22) 2890浏览 0评论
智能合约的升级 智能合约的特点是布署完成后不可修改,但是可以通过升级的方法修改业务逻辑。在做合约审计时经常会遇到合约有升级的功能,OpenZeppelin 里提供 ERC1967 代理升级合约,其原理是使用 delegatecall 委托调用。 de...
exchen 2年前 (2022-07-22) 2890浏览 0评论
智能合约的升级 智能合约的特点是布署完成后不可修改,但是可以通过升级的方法修改业务逻辑。在做合约审计时经常会遇到合约有升级的功能,OpenZeppelin 里提供 ERC1967 代理升级合约,其原理是使用 delegatecall 委托调用。 de...
exchen 2年前 (2022-07-22) 2625浏览 0评论
自毁合约漏洞利用与防范 selfdestruct 可以自毁合约,这个函数有两个功能,一个是自毁合约,还有一个是强制发送主币ETH到任一地址。如果向一个合约发送主币ETH,这个合约没有接受主币ETH的回退函数,是不能发送成功的,而使用 selfdest...
exchen 2年前 (2022-07-14) 1779浏览 0评论
回退函数与三种方法发送ETH 之前测试过重入漏洞,了解到发送主币 ETH 给一个合约,这个合约需要有一个回退函数,如果发送币使用 call 容易造成重入的问题,这次我们来详细了解回退函数,还有三种方法发送 ETH,分别看它们之间有什么不同点。 回退函...
exchen 2年前 (2022-07-07) 2617浏览 0评论
USDT 多签钱包合约分析 之前看过 USDT 的合约,了解到它有一个 issue 函数用于增发,只有 owner 调用 issue 才可以增发,但仔细分析并没有那么简单,它的 owner 不是普通地址,是一个合约地址 ,这个合约是一个多签钱包。多签...
exchen 2年前 (2022-07-05) 1950浏览 0评论
Uniswap 工厂合约创建配对合约 uniswap 里有一个工厂合约,作用是创建交易对合约,每添加一个交易对都会创建一个配对合约。uniswapv2 里使用的是内联汇编创建合约,这种方式比较复杂,先获取配对合约的字节码,再获取 token0 和 t...
exchen 2年前 (2022-07-01) 1475浏览 0评论
数学溢出攻击演练与防范 一个数字在内存中是有范围的,如果超出这个范围就会溢出,比如 uint256 是无符号的整数,范围是256位,最大的数字范围是 2的256次方减1,最小的范围是 0,如果超过范围是上溢,低于范围是下溢。 (1) 已知 uint2...
exchen 2年前 (2022-07-01) 1788浏览 0评论
重入攻击演练与防范 重入是在合约 A 调用合约 B 时执行某个操作时,合约 B 会调用合约 A 的回退函数 fallback,然后合约 A 的回退函数 fallback 里又调用了合约 B 的某个操作,形成了一个循环。 重入会造成攻击形象,比如合约 ...