審計工具沒有報錯,合約就安全了嗎?本系列以 DeFiHackLabs 公開的真實案例為題材,依序使用 Slither 靜態分析、Foundry 動態測試與 Certora Rule 形式化驗證,比較不同方法能發現什麼、需要哪些前提,以及為何可能誤報或漏報。最後討論 LLM 在審計流程中的角色,整理出一套從 Detect 到 Prove 的實作方法。
Day 7 講 Level Finance 的時候,只說了 DeFiHackLabs 把根因記成「陣列沒有檢查重複元素」,還有 PoC 會用一個長度 2000...
Day 7 看過,被攻擊版本的 claimMultiple 跟修補版只差 claimed = reward 和 claimed += reward 這一行。Da...
昨天我們把 [13, 13] 寫死在測試裡,確實看到多領。但「要重複放 13」是我先告訴 Foundry 的。這次不寫死第二個 epoch,讓它自己選。 還有一...
Day 13 的 fuzz 已經找到 [13, 13] 多付的反例。這個結果用到一個先寫好的判斷:同一個 epoch 出現兩次,可領獎勵仍只能算一次。今天把這句...