ton-vulnerability-scanner
作者 trailofbitston-vulnerability-scanner 是一個專為以 FunC 撰寫的 TON 智慧合約設計的聚焦式稽核技能。它可協助找出把整數誤當布林值使用、偽造 Jetton 合約處理,以及在轉送 TON 時缺少 gas 檢查等問題。適合在更深入人工審查之前,先做一次快速的 Security Audit 初篩。
這個技能獲得 78/100,代表它很適合放進目錄,提供給正在稽核 TON/FunC 合約的使用者:它的安全範圍明確、使用情境清楚,且有足夠的模式指引,能比通用提示少一些猜測。 不過,目錄使用者仍應預期一定的導入阻力,因為這個 repo 沒有提供安裝指令或可執行腳本;整體更像是一本詳盡的稽核作業手冊,而不是一個完整自動化工具。
- 針對 TON/FunC 稽核、Jetton 檢視與 gas 轉送檢查有清楚的適用時機,並明確說明何時使用。
- 工作流程內容扎實:主體長度超過 11k 字元、多個標題,並針對三個 TON 特定問題提供專門的漏洞檢查清單。
- resources/VULNERABILITY_PATTERNS.md 內有以證據為基礎的模式庫,可協助代理辨識具體失敗模式,並更系統地檢視合約。
- 沒有安裝指令,也沒有腳本,表示它比較像手動使用或搭配提示引導的工具,而不是已封裝、可直接執行的工作流程。
- 範圍只涵蓋以 FunC 撰寫的 TON 智慧合約,因此對更廣泛的區塊鏈或多語言安全稽核幫助較有限。
ton-vulnerability-scanner 技能概覽
ton-vulnerability-scanner 是一個專注於 TON 智能合約的稽核技能,適用於以 FunC 撰寫的合約。它特別擅長找出一般智能合約提示詞常會漏掉的 TON 平台特有漏洞,尤其是布林值處理、Jetton 邏輯與 gas 轉發相關問題。當你需要在更深入的人工分析或外部審計之前,先做一次快速的安全初篩時,這個 ton-vulnerability-scanner 技能很合適。
這個 ton-vulnerability-scanner 技能最適合什麼情境
這個 ton-vulnerability-scanner 技能最適合稽核人員、協議工程師,以及正在審查上線前 TON 程式碼的開發者。當你需要確認合約的控制流程、代幣檢查或訊息處理是否符合 TON 慣例時,它特別有用。它不是通用的程式碼審查技能;它是圍繞少數高影響力的 TON 失效模式設計的。
核心漏洞重點
這個儲存庫聚焦三種關鍵模式:把整數誤當布林值使用、處理假冒 Jetton 合約,以及在沒有正確 gas 檢查的情況下轉發 TON。這個範圍很重要,因為它讓這個技能比起寬泛的「找 bug」提示詞更有辨識度。若你的目標是對 FunC 合約做 Security Audit,這類窄而精的工具才是對的方向。
什麼情況下不適合使用
不要期待它在非 FunC 技術棧、一般 EVM 合約,或不是 TON 特定的架構審查上有強勁表現。如果你要找的是樣式問題、測試生成,或完整的形式化審計,ton-vulnerability-scanner 本身太過狹窄。它最適合當作更大規模審查流程中的一個定向掃描器。
如何使用 ton-vulnerability-scanner 技能
安裝並找到技能檔案
在執行 ton-vulnerability-scanner install 步驟時,請使用這個目錄一貫的 skills 流程,例如:npx skills add trailofbits/skills --skill ton-vulnerability-scanner。安裝完成後,先閱讀技能的入口檔,再沿著儲存庫中連結的上下文往下看。最值得先開啟的檔案是 SKILL.md 和 resources/VULNERABILITY_PATTERNS.md。
提供正確的輸入
ton-vulnerability-scanner usage 這種用法在你提供具體合約、審查目標與範圍邊界時效果最好。好的輸入會明確指出檔案類型與安全問題,例如:「Review contracts/wallet.fc for Jetton transfer validation, boolean flags, and gas forwarding risks.」像「scan this code」這種太籠統的說法,容易讓輸出流於表面。
把粗略任務轉成更強的提示詞
可以把 ton-vulnerability-scanner guide 的思路當成提示詞模板:先指出合約、再註明它是 Jetton、wallet 或 transfer handler,並告訴技能要優先檢查什麼。例子:Audit this FunC contract for the three TON patterns in resources/VULNERABILITY_PATTERNS.md, and show any exact lines or conditions that would mis-handle booleans, spoof Jetton contracts, or forward value without checking gas. 這類提示詞能提升精準度,因為它要求的是以模式為基礎的推理,而不是泛泛評論。
實務工作流程與優先檢查項目
先從合約入口點開始,例如 recv_internal、recv_external、訊息解析,以及任何 transfer-notification 邏輯。接著檢查布林旗標、發送者驗證,以及與 send_raw_message()、load_msg_addr() 或 coin 讀寫輔助函式相關的呼叫。如果你想快速理解這個技能,應優先看 resources/VULNERABILITY_PATTERNS.md,而不是先瀏覽整個儲存庫樹狀結構,因為它直接列出了掃描器要找的具體失效模式。
ton-vulnerability-scanner 技能 FAQ
這個 ton-vulnerability-scanner 只適用於 FunC 合約嗎?
是,ton-vulnerability-scanner 技能是針對以 FunC 撰寫的 TON 合約設計的,特別是 .fc 與 .func 檔案。如果你的專案使用 wrapper、測試或 TypeScript 工具鏈,這些可以提供上下文,但漏洞判斷本身仍然是合約層級。對 Security Audit 而言,合約原始碼才是關鍵輸入。
這跟一般提示詞有什麼不同?
一般提示詞可能只會注意到「可疑程式碼」,但 ton-vulnerability-scanner 是針對 TON 特定假設調校的,例如布林真值與 Jetton 訊息模式。這讓它更擅長找出那些如果不熟悉平台就很容易漏掉的錯誤。它比通用 AI 程式碼審查器更窄,但這種窄正是它的價值所在。
初學者也能使用嗎?
可以,只要他們能把它指向一個具體的 FunC 合約,並說清楚審查目標。初學者最容易拿到好結果的方式,是一次只要求一輪安全檢查,而不是對整個 repo 做完整審計。主要限制不在於技能本身難不難,而在於合約是否使用這個技能能理解的 TON 模式。
這個技能的主要邊界是什麼?
這個技能最強的是布林邏輯、Jetton 真偽驗證,以及 gas 轉發風險。它在商業邏輯審查、跨合約系統設計,以及與 TON 訊息語意無關的問題上較弱。如果你的審查需要那些更廣的面向,最好把它和更通用的稽核流程一起使用。
如何強化 ton-vulnerability-scanner 技能
給它明確的稽核目標
要讓 ton-vulnerability-scanner 得到更好的結果,請明確告訴它你正在看的檔案最重要的是哪一種模式。例如,「focus on transfer notifications and fake Jetton detection」會比「check everything」更有幫助。這樣可以把注意力縮小到最可能出問題的程式路徑上。
提供合約背景,而不只是原始碼
當你告訴它這個合約是 wallet、Jetton minter、transfer handler 還是 receiver 時,它的表現會更好。這些背景會改變布林值、訊息地址,以及轉發價值應該如何解讀。如果你已經知道預期的不變條件,也請一併先說明,讓掃描結果能直接對照程式行為。
留意常見失敗模式
最常見的錯誤包括:把正整數當成布林值、未經驗證就信任看起來像代幣的訊息,以及轉發 TON 時 gas 控管不足。檢視輸出時,請確認每一項發現是否都對應到具體行、明確條件,以及可成立的攻擊路徑。如果沒有,就要求它依照 resources/VULNERABILITY_PATTERNS.md 的模式清單再做更嚴格的重查。
用程式碼片段與預期行為反覆修正
如果第一次回覆太模糊,就把可疑函式再貼一次,並用一句話說明預期行為。例如:「This handler should only accept genuine Jetton transfer notifications from the expected master contract.」這種追問能幫助 ton-vulnerability-scanner 技能區分真陽性與 TON 常見模式,也能讓你拿到更可操作的 Security Audit 結果。
