半开源合约的 Web3 调用_ESS:sardinechain

注:本文来自@gm365推特,MarsBit整理如下:

半开源合约的Web3调用

某些智能合约没有在etherscan验证源代码,也就无法轻易获取其ABI

但“诡异”的是,调用某些合约函数,却可以在网页上完整显示调用的函数名、参数名、具体参数值

针对这样的“半开源”合约,可以有一些简单的方法,实现Web3调用

前言

之前写过一个,关于《未开源智能合约的调用》,方法主要是在网站前端扒拉JS代码,定位到ABI代码,然后实现调用

https://twitter.com/gm365/status/1521058983838380032

Yuga Labs:已发送全部TwelveFold铭文:3月21日消息,Yuga Labs 在推特上表示,此前由于接收地址未清空而未发送的铭文现已发送。完整的 TwelveFold 画廊可以在 https://twelvefold.io/gallery 看到。[2023/3/21 13:16:26]

这个方法当然可以用来实现“半开源”合约调用,但这个方法实在有些反人类,疯狂扒拉JS代码也很费眼神,我们暂时先跳过

Messari收购加密融资数据库Dove Metrics:8月2日消息,加密数据分析和研究机构Messari宣布收购Blackrose Capital旗下加密融资数据库Dove Metrics,Messari暂未披露交易细节。目前Messari已将Dove Metrics仪表板集成至Messari平台中,并将在未来继续开发具有附加功能的仪表板。(CoinDesk)[2022/8/3 2:54:45]

etherscan显示机制

没有开源的合约,为何可以在etherscan显示详细的调用参数信息?

其实秘密都在这个4bytessignature上

津巴布韦启动区块链和数字资产经济特区:8月1日消息,津巴布韦总统 Emmerson Mnangagwa 启动高科技园区 zimm Cyber City,由阿联酋投资者穆尔克国际公司(Mulk international’l)出资 5 亿美元建立,Emmerson Mnangagwa 已授予其建立区块链和数字资产经济特区的独家许可。Mulk International 副主席Adnan Ul Mulk 表示:“Mulk International 一直在努力了解市场,深入了解津巴布韦的文化及其丰富的机会。跨行业的资源深度和先进的数字能力为 Zim Cyber?? City 提供了具体的长期增长前景。[2022/8/1 2:51:20]

如果其他已开源合约有相同的“签名”,那么面对一个未开源合约,但签名相同的函数,etherscan和小狐狸会直接判定为同一函数并尝试解析

解决方案

针对这类能被正常显示的函数,其实有一个相对简单的方法:

通过函数信息反向生成ABI代码

15行代码,代码出自人类好帮手:chatGPT4

经过测试与对照,和原始ABI一字不差

签名库

如果etherscan上未显示,还可以先去这个签名库碰碰运气

https://4byte.directory/signatures/

注意:这个4四节签名是有可能重名的!某些小狐狸钓鱼合约,使用的就是这个“漏洞”。

同一个签名,可能对应多个函数,正常使用还得自行判断

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:15ms0-1:44ms