跳到主要内容
SaferICO SaferICO智能合约安全
开放使用——无需订阅,无需付费

签名之前, 先读懂这笔交易。

钱包给你看「0xa9059cbb…」然后等你点确认。实验室把它还原成一句人话:调用的是哪个函数、参数是什么。旁边还有六个工具,回答那些靠手工很难回答的问题。

无需订阅代码不离开你的浏览器公开 API不指控任何人
//七个工具

靠手工很难 回答的问题

这里每个工具只回答一个具体问题——并且也会告诉你它回答不了什么。

解码交易数据

粘贴 calldata、四字节选择器或函数名。四个字节可能对应多个签名——有时是故意制造的——所以我们把所有可能都列出来,而不是只给一个。

读懂失败原因

现在的交易回滚时返回的是四字节自定义错误,没人读得懂。我们把它还原成真正的报错信息,并把 panic 代码写成名称,而不是留一串十六进制。

这份合约里哪部分是原创的?

大多数 ERC-20 就是 OpenZeppelin 加上几十行。我们先减去库的指纹,剩下的才是项目方真正写的部分——改动就藏在那里。

对比两份合约

改掉所有变量名、重新排版,什么都藏不住——比较基于 token 结构而不是文本。它报告重合的规模;它从不说谁抄了谁。

这笔钱从哪来?

向上回溯最多三跳,直到第一个给该地址打款的人,每一跳都附上作为证据的交易。距离不等于罪证,页面上会直说这一点。

两个地址之间的最短路径

两个地址都由你提供,不涉及任何名单,也不构成任何指控。限制在三跳以内——「在这些限制内没找到路径」是一句真话;「不存在路径」则不是这个工具能下的结论。

扫描公开仓库

我们只解析出文件清单,由你的浏览器从 GitHub 取回并在本地分析——代码不经过我们的服务器。仅限公开仓库:任何授权凭据都不会被发送。

工具本身(扫描器、控制台、SAFI 工作区)目前仍是英文界面。这些页面用中文把一切讲清楚,方便你进去之前先看明白。

让它与众不同的 那份克制

追踪类工具很容易变成一台指控机器。这个工具建立在拒绝这么做之上。

⚖️ 距离不等于罪证

两个地址之间的一跳描述的是网络,不是人。任何从大型交易所提过币的钱包,都与几万个地址只隔一跳,其中必然包括坏的那些。

所以工具会展示证明每一跳的那笔交易,把判断留给你。它不会把某个地址称作「骗子」,因为那是关于意图的推论,而链不记录意图。

01它说它测到的,不说它猜的

四字节的函数选择器可能对应多个签名,而这种碰撞有时是为了误导快速阅读的人而刻意制造的。所以我们把所有匹配都列出来;只自信地给出一个,恰恰是攻击者利用的那个错误。

02「没找到」不等于「不存在」

路径搜索限制在三跳和固定次数的查询之内。当我们什么都没找到时,诚实的说法是:在那些限制内没有找到。

这两句话之间的差别,就是一个你可以信任的工具,和一个只说你爱听的话的工具之间的差别。

03相似不等于抄袭

两份 ERC-20 之间的原始相似度,主要衡量的是 OpenZeppelin 有多流行。我们先减去库的指纹,好让结果真正关于为这个项目写的代码。

即便如此,工具也只报告重合的规模。谁抄了谁,不是代码能回答的问题——那要靠时间线来回答,而读它的人是你。

//常见问题

关于 实验室

需要订阅吗?
不需要。分析实验室无需账户、无需付费即可使用,而且全部工具都同时以公开 API 端点提供,方便你在自己的代码里调用。
我仓库的代码会上传给你们吗?
不会。我们只解析文件清单,由你的浏览器从 GitHub 取回每个文件并在本地分析。代码在任何一步都不经过我们的服务器;私有仓库本身就不支持,因为我们不会发送任何授权凭据。
为什么解码会给出不止一个结果?
因为函数选择器只有四个字节,多个签名可能产生同一个选择器——有时是巧合,有时是刻意设计。把其他可能藏起来、只自信地给出一个,正是攻击者所利用的。
一个地址出现在追踪结果里,就说明它有牵连吗?
不说明,工具也不会这么讲。它展示的是把这些地址连起来的交易,以及标注它的来源(如果有)。结论由你来下,光是距离并不构成证据。

转账之前,先扫一遍合约

粘贴合约地址,在冒险之前先看清所有者权限、流动性和卖出模拟结果。每次扫描收取一笔小额费用,签名前会先显示金额——订阅任意套餐后则无限次包含。