Back to Blog

Phalcon 事務調試:高效分析分步指南

Phalcon SecurityMetaSleuth
March 29, 2023
7 min read

當交易過於複雜,僅從表面觀察難以理解時,Phalcon Debug 能讓交易分析變得更加容易。它不僅止於高層級的交易追蹤,還能讓使用者深入執行流程、檢查已驗證的程式碼,並詳細追蹤內部邏輯。這使得它在漏洞分析、根本原因調查與團隊協作方面特別實用。

在本指南中,我們以 Euler 協議漏洞交易 為例。我們的目標是展示 Phalcon Debug 如何協助使用者從可疑的交易步驟,進展到對事件發生經過及其關鍵原因的清晰解釋。

您可以直接在此開啟該交易:Phalcon 交易頁面

如何進入除錯模式 (Debug Mode)

在 Phalcon 中進入除錯模式主要有兩種方式。

第一種是從「調用流程 (Invocation Flow)」視圖中的特定列進入;第二種是透過交易頁面右上角的 Debug 按鈕。兩者都會進入相同的除錯環境,但如果您在看到可疑步驟時想要直接從該點切入,從調用流程開始通常會更有用。

在 Euler 漏洞攻擊的範例中,該交易包含許多步驟,包括從 Aave 借入閃電貸並將 DAI 存入 Euler。其中一個特別可疑的步驟是呼叫 donateToReserves(),攻擊者在此處向協議捐贈了巨額資金。這類操作通常需要更深入的審查,而 Phalcon Debug 讓使用者可以直接從該點開始分析。

Debug 視圖佈局
Debug 視圖佈局

Debug 視圖佈局

進入除錯模式後,Phalcon 會顯示一個專為逐步交易分析而設計的工作區。該佈局包含五個核心面板。

呼叫追蹤面板 (Call Trace Panel) 顯示外部呼叫與事件的追蹤記錄。原始碼面板 (Source Code Panel) 顯示當前合約的原始碼並突顯相關行數。除錯控制台 (Debug Console) 提供呼叫層級的逐步執行控制。除錯追蹤面板 (Debug Trace Panel) 顯示包含內部與外部呼叫的當前合約呼叫堆疊。參數與回傳值面板 (Parameters & Return Values Panel) 則顯示當前呼叫的輸入與輸出。

此佈局非常實用,因為使用者無需在多個工具間切換即可理解交易的某個部分。他們可以在同一個地方閱讀追蹤記錄、檢查程式碼並跟隨執行邏輯。

有時原始碼面板可能無法顯示程式碼,這通常發生在當前呼叫指向未經驗證的合約時。在這個 Euler 的案例中,攻擊者合約未經過驗證,因此該處無法顯示原始碼。然而 eDai 合約是經過驗證的,這意味著使用者可以 Step In (進入) 並在已驗證的邏輯內繼續分析。

合約經過驗證時的 Debug 模式
合約經過驗證時的 Debug 模式

在進入經過驗證的 eDai 合約後,使用者可以進一步深入 donateToReserves() 的實作,並檢查該可疑交易步驟背後的確切程式碼路徑。

除錯 donateToReserves()
除錯 donateToReserves()

如何使用 Debug 控制台

除錯控制台旨在協助使用者詳細走訪交易執行過程。這一點很重要,因為 呼叫追蹤面板 僅顯示外部呼叫與事件,並不會顯示內部函式呼叫,而除錯控制台正好補足了這一點。

Phalcon 在此面板中提供了多種導覽控制項。Next (下一步) 與 Previous (上一步) 各有兩個版本:紅色按鈕用於遍歷完整的呼叫追蹤,藍色按鈕則用於在當前函式內移動。Step In (進入) 會深入被呼叫的函式,Step Out (跳出) 則返回當前函式的呼叫點。

透過這些控制項,使用者可以逐行遍歷合約邏輯,並理解狀態變更是如何發生的。以 Euler 為例,這有助於揭示 donateToReserves() 背後更深層的問題。分析顯示,攻擊者捐贈了 1 億個 eDAI,這改變了 eDAI 與 dDAI 之間的關係,使得該部位符合清算條件。根本原因在於 donateToReserves() 缺乏針對符合清算條件的流動性檢查,從而導致攻擊者得以進行清算並提取價值。

這正是 Phalcon Debug 超越單純檢視器的時刻。它成為了一款實用的交易分析工具,能找出合約執行過程中的根本原因。

Debug 視圖佈局
Debug 視圖佈局
Euler 漏洞攻擊的根本原因
Euler 漏洞攻擊的根本原因

開始使用 Phalcon Security

偵測所有威脅、針對關鍵事項發出警報,並阻絕攻擊。

立即免費試用

Debug 視圖分享

另一項實用的功能是,除錯視圖可以直接透過 URL 分享。分享的連結包含了選定的追蹤行,因此當其他使用者開啟時,他們會立即看到相同的除錯視圖。

這對安全團隊特別有用。分析師不需要撰寫長篇大論的說明,也不必要求隊友手動重現相同的視圖,只需分享確切的上下文內容。這能大幅提升事件分析或內部審查時的協作效率。

典型的工作流程如下:首先,在「調用流程」中找到可疑步驟;接著,使用除錯模式檢查程式碼、內部呼叫與參數;最後,與隊友分享確切的除錯視圖,以便他們查看相同的上下文並繼續討論。

其他實用功能

Phalcon Debug 還包含一些能提升分析效率的額外功能。

當開啟參數開關時,呼叫追蹤視圖 可以顯示完整參數。這有助於使用者在無需逐一打開每一步驟的情況下,檢視更豐富的上下文。

對於外部呼叫,使用者也可以點擊 Rawdata 來檢查原始呼叫參數。當解碼後的數據不足,或是使用者想要驗證 calldata 實際結構時,這相當實用。

這些細節看似微小,但在實際分析過程中卻能節省大量時間。對於漏洞調查、審計工作或是合約審查而言,小規模的工作流程改進往往會帶來巨大的差異。

參數開關
參數開關

對於希望超越單筆交易,並追蹤資產如何在更廣泛的攻擊路徑中流動的團隊來說,MetaSleuth 是理想的下一步。在釐清交易層級的根本原因後,它可以協助調查人員追蹤跨地址與實體的資金流向。

探索 MetaSleuth 調查

追蹤資金流向並為調查建立證據

立即免費試用

Phalcon Debug 在交易過於複雜而無法透過表面解讀,但仍需要明確解釋時最為有效。它能協助使用者從可疑的追蹤入口推進到實際的程式碼路徑、內部邏輯與根本原因。這不僅在安全研究方面具有價值,對於事件回顧、漏洞分析與智慧合約評估也同樣重要。對於希望在部署前加強程式碼的團隊而言,這種思維方式也能自然地延展至 智慧合約審計基礎設施審計,在複雜行為成為實際風險前便先進行審查。

相關資源

Get Real-Time Protection with Phalcon Security

Audits alone are not enough. Phalcon Security detects attacks in real time and blocks threats mid-flight.

phalcon security

Go Deeper with MetaSleuth Investigation

Extend your crypto compliance capabilities with Blocksec's MetaSleuth Investigation, the first platform for tracing funds, mapping transaction networks and revealing hidden on-chain relationships.

Move from detection to resolution faster with clear visual insights and evidence-ready workflows across the digital assets ecosystem.

MetaSleuth Investigation