您好,欢迎您来到国盈网!
官网首页 小额贷款 购房贷款 抵押贷款 银行贷款 贷款平台 贷款知识 区块链

国盈网 > 区块链 > 半开源代码,长推:半开源合约的 Web3 调用

半开源代码,长推:半开源合约的 Web3 调用

区块链 岑岑 本站原创

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

半开源契约的Web3调用

如果不在etherscan中验证源代码,一些智能合约无法轻松获得它们的ABI。

但是“奇怪”的是,调用一些契约函数,完全可以在网页上显示被调用的函数名、参数名以及具体的参数值。

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

前言之前写了一本书,关于“开源智能合约的调用”。主要方法是在网站前端拉代码,定位ABI码,然后实现调用。

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

当然这种方法可以用来实现“半开源”的契约调用,但是这种方法真的很反人类,疯狂拉代码也很惹眼。暂时跳过吧。

以太扫描显示机制没有开源合约。为什么详细的通话参数信息可以在etherscan显示(连Fox钱包都可以显示)?

事实上,秘密都在这个4字节的签名上。

如果其他开源合同有相同的“签名”,etherscan和Fox会直接确定相同的函数,并尝试在一个开源合同面前分析一个具有相同签名的函数。

解决办法

对于这种可以正常显示的功能,其实有一个比较简单的方法:

通过函数信息逆向生成ABI码

15行代码,代码来自人类的好帮手:chatGPT 4。

经过测试对比,和原来的ABI一模一样(当然输出可能会有差异,但不影响使用)

签名库

如果没有出现在etherscan上,可以先在这个签名库中碰碰运气。

https://4byte.directory/signatures/

注意:这个四段签名可能会改名!一些狐狸钓鱼合同就是利用了这个“漏洞”。

同一个签名可能对应多个功能,你得判断是否正常使用。

本网站声明:网站内容来源于网络。如有侵权,请联系我们,我们会及时处理。

温馨提示:注:内容来源均采集于互联网,不要轻信任何,后果自负,本站不承担任何责任。若本站收录的信息无意侵犯了贵司版权,请给我们来信(j7hr0a@163.com),我们会及时处理和回复。

原文地址"半开源代码,长推:半开源合约的 Web3 调用":http://www.guoyinggangguan.com/qkl/160270.html

微信扫描二维码关注官方微信
▲长按图片识别二维码