智能合约逆向工程与其他合约编程语言介绍
手动恢复合约ABI
与智能合约进行交互时,有两种方式可供选择:使用合约ABI或发送带有编码输入数据的低级交易。使用ABI进行交互简单直接,但ABI并不存储在链上,对于未发布和未验证的合约,我们只能获取其字节码。若要通过低级交易与合约交互,需要函数选择器、函数参数的数量和类型,同时还需了解返回参数的数量和类型,以便正确使用返回值。
-
获取ABI的途径 :
- 对于已发布并验证的合约,可以在Etherscan上找到ABI,还能轻松使用它与合约进行交互。
- 若能访问合约的源代码,可使用solc Solidity编译器,通过命令
solc --abi <PATH_TO_CONTRACT>来获取ABI。具体可查看文档:https://docs.soliditylang.org/en/latest/installing-solidity.html 。 - 访问https://etherscan.io ,打开任何已验证的合约,切换到“Contract”选项卡,向下滚动即可看到“Contract ABI”部分。Etherscan支持导出ABI或直接复制粘贴,但对于未在Etherscan上发布和验证的合约,则无法导出其ABI。
-
ABI规范 :ABI规定了函数的类型(函数、构造函数、接收函数和回退函数)、函数名称、输入参数(以对象数组表示,每个对象包含参数名称、规范类型和元组组件)、返回参数(同样
超级会员免费看
订阅专栏 解锁全文
988

被折叠的 条评论
为什么被折叠?



