T

ton-vulnerability-scanner

作者 trailofbits

ton-vulnerability-scanner 是一个面向 TON、专注于 FunC 编写的智能合约审计技能。它可帮助识别把整数当布尔值使用、伪造 Jetton 合约处理,以及在转发 TON 时遗漏 gas 检查等问题。适合在深入人工复核前,先做一轮快速的安全初筛。

Stars5k
收藏0
评论0
收录时间2026年5月4日
分类安全审计
安装命令
npx skills add trailofbits/skills --skill ton-vulnerability-scanner
编辑评分

该技能得分 78/100,说明它很适合作为审计 TON/FunC 合约用户的目录候选:安全范围明确、使用场景清晰,而且提供了足够的模式指引,相比通用提示更能减少猜测。不过,目录用户仍需预期一定的上手摩擦,因为仓库没有提供安装命令或可执行脚本,因此它更像一份详细的审计作业手册,而不是一个完整自动化工具。

78/100
亮点
  • TON/FunC 审计、Jetton 复核和 gas 转发检查的触发场景都很明确,并给出了清晰的“何时使用”指引。
  • 工作流内容扎实:正文超过 11k,包含多个标题,并为 3 类 TON 特有问题提供了专门的漏洞清单。
  • resources/VULNERABILITY_PATTERNS.md 中有基于证据的模式库,能帮助 agent 识别具体失效模式,并更系统地检查合约。
注意点
  • 没有安装命令,也没有脚本,说明它更偏向手动使用或仅用于提示引导,而不是一个可直接运行的打包工作流。
  • 作用范围只覆盖用 FunC 编写的 TON 智能合约,因此对更广泛的区块链或多语言安全审计帮助有限。
概览

ton-vulnerability-scanner skill 概览

ton-vulnerability-scanner 是一个专注于 TON 智能合约安全审计的 skill,面向用 FunC 编写的合约。它主要帮助你发现普通智能合约提示词常常漏掉的平台特有问题,尤其是布尔值处理、Jetton 逻辑和 gas 转发相关风险。适合在更深入的人工分析或外部审计之前,先做一轮快速的安全初筛。

ton-vulnerability-scanner skill 最适合什么场景

这个 ton-vulnerability-scanner skill 最适合审计人员、协议工程师,以及在上线前检查 TON 代码的开发者。它适合用来确认合约的控制流、token 校验或消息处理是否符合 TON 约定。它不是通用代码审查 skill;它围绕的是一小组高影响的 TON 失败模式来设计的。

核心漏洞关注点

这个仓库聚焦三类关键模式:把整数当布尔值使用、伪造 Jetton 合约处理,以及在没有正确 gas 检查的情况下转发 TON。这个范围很重要,因为它让 skill 的信号比泛化的“找 bug”提示更精准。如果你的目标是对 FunC 合约做 Security Audit,这正是这种足够聚焦的工具。

什么时候不该用它

不要指望它在非 FunC 技术栈、通用 EVM 合约,或不是 TON 特有的架构评审中表现出色。如果你要找的是风格问题、测试生成,或者完整的形式化审计,ton-vulnerability-scanner 单独使用就太窄了。它最适合嵌入更大的审查工作流,作为一个定向扫描器来用。

如何使用 ton-vulnerability-scanner skill

安装并找到 skill 文件

在执行 ton-vulnerability-scanner install 这一步时,按该目录常规的 skills 流程来做,例如:npx skills add trailofbits/skills --skill ton-vulnerability-scanner。安装完成后,先阅读 skill 的入口文件,再顺着仓库里链接的上下文继续看。最值得先读的文件是 SKILL.mdresources/VULNERABILITY_PATTERNS.md

输入要给对

ton-vulnerability-scanner usage 这类用法在你提供具体合约、审查目标和范围边界时效果最好。好的输入会明确文件类型和安全问题,比如:“检查 contracts/wallet.fc 中 Jetton 转账验证、布尔标志和 gas 转发风险。”像“扫描这段代码”这种泛化输入,太容易让输出流于表面。

把粗任务改成强提示词

可以把 ton-vulnerability-scanner guide 的思路当作提示词模板:先标明合约,说明它是 Jetton、wallet 还是 transfer handler,再告诉 skill 重点检查什么。比如:“按 resources/VULNERABILITY_PATTERNS.md 里的三类 TON 模式审计这份 FunC 合约,并指出任何会错误处理布尔值、伪装 Jetton 合约,或在未检查 gas 的情况下转移 value 的精确行或条件。”这种提示更精准,因为它要求的是基于模式的推理,而不是泛泛评论。

实用工作流:先看什么

先从合约入口点看起,比如 recv_internalrecv_external、消息解析,以及任何转账通知逻辑。然后检查布尔标志、发送方校验,以及涉及 send_raw_message()load_msg_addr(),或 coin 读取和 coin 存储辅助函数的调用。如果你想快速理解这个 skill,优先看 resources/VULNERABILITY_PATTERNS.md,而不是先扫整个仓库树,因为那里直接列出了这个 scanner 要抓的具体失败模式。

ton-vulnerability-scanner skill 常见问题

这个 skill 只适用于 FunC 合约吗?

是的,ton-vulnerability-scanner skill 面向用 FunC 编写的 TON 合约,尤其是 .fc.func 文件。如果项目里还有 wrapper、测试或 TypeScript 工具链,它们可以提供上下文,但漏洞判断本身是在合约层面完成的。做 Security Audit 时,合约源代码才是关键输入。

它和普通提示词有什么区别?

普通提示词可能只会注意到“可疑代码”,但 ton-vulnerability-scanner 是按 TON 的特定假设来调优的,比如布尔真值规则和 Jetton 消息模式。这让它更擅长发现那些如果你不熟悉平台就很容易漏掉的 bug。它比通用 AI 代码审查器更窄,但这种聚焦正是它的价值所在。

初学者能用吗?

可以,只要他们能把它指向一个具体的 FunC 合约,并说明审查目标。初学者在一次只做一轮安全检查时,效果最好,而不是让它对整个仓库做完整审计。主要限制不在于 skill 有多复杂,而在于合约是否使用了这个 skill 能理解的 TON 模式。

这个 skill 的主要边界是什么?

这个 skill 最擅长的是布尔逻辑、Jetton 真实性校验,以及 gas 转发风险。它在业务逻辑审查、跨合约系统设计,以及与 TON 消息语义无关的问题上会弱一些。如果你的审查需要这些更宽的维度,最好把它和更通用的审计工作流结合起来用。

如何改进 ton-vulnerability-scanner skill

明确告诉它要审什么

想让 ton-vulnerability-scanner 的结果更好,就要明确告诉它在你正在看的文件里,三类模式中哪几类最重要。比如“重点看转账通知和伪造 Jetton 检测”,比“检查所有内容”更有用。这样可以把注意力收窄到最可能出问题的代码路径上。

提供合约上下文,而不只是源码

如果你告诉它合约是 wallet、Jetton minter、transfer handler 还是 receiver,效果会更好。因为这些上下文会改变布尔值、消息地址和转发 value 应该如何解读。如果你已经知道预期的不变量,也一并提前说明,这样扫描结果就能拿代码行为去对照这些预期。

留意常见失败模式

最常见的错误,是把正整数当布尔值、未经验证就信任看起来像 token 的消息,以及在转发 TON 时 gas 纪律不够。看输出时,要检查每个发现是否都指向了具体行、具体条件,以及现实可行的利用路径。如果没有,就要求它按照 resources/VULNERABILITY_PATTERNS.md 里的模式清单重新收紧检查。

结合代码片段和预期行为反复迭代

如果第一轮结果太笼统,就把可疑函数再发一遍,并用一句话说明预期行为。比如:“这个 handler 只能接受来自预期 master contract 的真实 Jetton transfer notification。”这样的补充能帮助 ton-vulnerability-scanner skill 区分真正的问题和 TON 常见模式,也能给你更可执行的 Security Audit 结果。

评分与评论

暂无评分
分享你的评价
登录后即可为这个技能评分并发表评论。
G
0/10000
最新评论
保存中...