Back to Blog

如何使用 Phalcon 调试深入事务

March 29, 2023

Phalcon 支持交易的调试,这是一项强大的功能,可以显著提高复杂交易的分析效率。在接下来的内容中,我们将使用 Euler 协议的利用交易 来演示此功能。

点击此交易的链接: https://phalcon.blocksec.com/explorer/tx/eth/0xc310a0affe2169d1f6feec1c63dbc7f7c62a887fa48795d327d4d2da2d6b111d

如何进入调试模式

有两种不同的方式可以进入调试模式。第一种方式是从调用流程视图中的特定行进入调试模式,第二种方式是点击“调试”按钮。

方法一:通过执行跟踪

Phalcon 中的调用流程提供了一个视图,让用户能够全面了解攻击交易并识别可能的利用点。当交易中包含数百个外部调用和事件时,此功能非常有用 在此交易中

在调用流程中选择行以打开调试模式
在调用流程中选择行以打开调试模式

在 Euler 协议利用的情况下,攻击交易包含许多步骤,包括“从 Aave 借用 Flashloan”、“将 Dai 存入 Euler 协议”等。但在其中一个步骤中,攻击者调用了 donateToReserves() 函数,向 Euler 协议“捐赠”了巨额资金,这引起了我们的警惕。在这种情况下,我们可以直接从该步骤通过点击调试图标来调试交易。

方法二:通过“调试”按钮

进入调试模式的另一种方法是单击右上角的“调试”按钮。

调试视图布局

进入调试模式后,我们可以看到以下屏幕。

调试视图布局
调试视图布局

此屏幕包含五个面板,如下所示。

  • 调用跟踪面板: 显示外部调用和事件的跟踪。
  • 源代码面板: 提供合约的源代码和当前行(高亮显示),该行引用了函数的调用位置。
  • 调试控制台: 一个调用级别的单步调试控制台。
  • 调试跟踪面板: 显示当前合约的调用堆栈,包含内部调用和外部调用。
  • 参数和返回值面板: 显示调用参数和返回值。

有时,源代码面板不会显示代码。这是因为该面板默认显示函数的调用位置。由于该攻击合约未经验证(未开源),因此无法显示源代码。

eDai 合约已经验证,因此我们可以 步入 查看 donateToReserves() 的具体实现。单击 步入 后,当前行将变为 eDai 合约内部的调用位置。这是一个代理合约,代码如下所示。

合约已验证时的调试模式
合约已验证时的调试模式

再次 步入 后,我们终于可以看到 donateToReserves() 的具体实现。

调试 donateToReserves()
调试 donateToReserves()

如何使用调试控制台

调试控制台用于帮助理解详细的调用跟踪,包括内部函数调用(行开头的 Jump 表示这是一个内部调用)。请注意,调用跟踪面板没有内部调用跟踪。

调试视图布局
调试视图布局

为了遍历详细的执行过程,Phalcon 在 调试控制台 上提供了四个按钮,下一步上一步 在两种颜色下具有略微不同的逻辑。

  • 下一步(红色按钮):转到整个调用跟踪中的下一个调用位置。
  • 下一步(蓝色按钮):转到当前函数的下一个调用位置。
  • 上一步(红色按钮):转到整个调用跟踪中的上一个调用位置。
  • 上一步(蓝色按钮):转到当前函数的上一个调用位置。
  • 步入:进入被调用的函数。
  • 步出:返回到当前函数的调用位置。

例如,我们可以单击 下一步 按钮来分析 donateToReserves() 的实现。我们可以发现攻击者捐赠了 1 亿 eDAI,使得 eDAI 少于 dDAI,从而符合清算条件。因此,根本原因是 donateToReserves() 缺少对符合清算条件的流动性检查,攻击者因此清算了自己并提取了 3800 万 eDAI

Euler 利用的根本原因
Euler 利用的根本原因

调试视图共享

交易的调试可以直接通过 URL 进行共享,该 URL 包含跟踪的行号。当其他人打开链接时,将显示相同的调试视图。这对于您想与他人分享分析结果时非常有用。团队成员可以使用此功能进行协作、分析和共同讨论!

总之,使用 Phalcon Debug 分析攻击交易的典型工作流程如下。

  • 在调用流程中找到潜在问题,并从那里开始调试。
  • 调试源代码并检查内部调用的参数和返回值。
  • 与团队成员(或公开读者)共享您的分析视图以进行协作。

其他功能

Phalcon Debug 具有许多可以帮助您提高效率的功能。

  • 通过打开以下开关,调用跟踪视图可以显示完整的参数。
参数开关
参数开关
  • 对于外部调用,单击“原始数据”可以看到原始调用参数。

了解更多关于 BlockSec 的信息:网站 | 文档 | Twitter | Medium | TG 群组

Sign up for the latest updates
Weekly Web3 Security Incident Roundup | Apr 6 – Apr 12, 2026
Security Insights

Weekly Web3 Security Incident Roundup | Apr 6 – Apr 12, 2026

This BlockSec weekly security report covers four DeFi attack incidents detected between April 6 and April 12, 2026, across Linea, BNB Chain, Arbitrum, Optimism, Avalanche, and Base, with total estimated losses of approximately $928.6K. Notable incidents include a $517K approval-related exploit where a user mistakenly approved a permissionless SquidMulticall contract enabling arbitrary external calls, a $193K business logic flaw in the HB token's reward-settlement logic that allowed direct AMM reserve manipulation, a $165.6K exploit in Denaria's perpetual DEX caused by a rounding asymmetry compounded with an unsafe cast, and a $53K access control issue in XBITVault caused by an initialization-dependent check that failed open. The report provides detailed vulnerability analysis and attack transaction breakdowns for each incident.

Weekly Web3 Security Incident Roundup | Mar 30 – Apr 5, 2026
Security Insights

Weekly Web3 Security Incident Roundup | Mar 30 – Apr 5, 2026

This BlockSec weekly security report covers nine DeFi attack incidents detected between March 30 and April 5, 2026, across Solana, BNB Chain, Arbitrum, and Polygon, with total estimated losses of approximately $287M. The week was dominated by the $285.3M Drift Protocol exploit on Solana, where attackers combined multisig signer social engineering with Solana's durable nonce mechanism to bypass a zero-timelock 2-of-5 Security Council, alongside notable incidents including a $950K flash loan TWAP manipulation against the LML staking protocol, a $359K Silo Finance vault inflation via an external `wstUSR` market donation exploiting a depegged-asset oracle and `totalAssets()` accounting flaw, and an EIP-7702 delegated-code access control failure. The report provides detailed vulnerability analysis and attack transaction breakdowns for each incident, covering flawed business logic, access control, price manipulation, phishing, and misconfiguration attack types.

Tracing $1.6B in TRON USDT: Inside the VerilyHK Ponzi Infrastructure
Case Studies

Tracing $1.6B in TRON USDT: Inside the VerilyHK Ponzi Infrastructure

An on-chain investigation into VerilyHK, a fraudulent platform that moved $1.6B in TRON USDT through a multi-layered fund-routing infrastructure of rotating wallets, paired payout channels, and exchange exit funnels, with traced connections to the FinCEN-sanctioned Huione Group.