如何使用 Phalcon 调试深入事务

如何使用 Phalcon 调试深入事务

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 | Feb 9 – Feb 15, 2026

Weekly Web3 Security Incident Roundup | Feb 9 – Feb 15, 2026

During the week of February 9 to February 15, 2026, three blockchain security incidents were reported with total losses of ~$657K. All incidents occurred on the BNB Smart Chain and involved flawed business logic in DeFi token contracts. The primary causes included an unchecked balance withdrawal from an intermediary contract that allowed donation-based inflation of a liquidity addition targeted by a sandwich attack, a post-swap deflationary clawback that returned sold tokens to the caller while draining pool reserves to create a repeatable price-manipulation primitive, and a token transfer override that burned tokens directly from a Uniswap V2 pair's balance and force-synced reserves within the same transaction to artificially inflate the token price.

Top 10 "Awesome" Security Incidents in 2025

Top 10 "Awesome" Security Incidents in 2025

To help the community learn from what happened, BlockSec selected ten incidents that stood out most this year. These cases were chosen not only for the scale of loss, but also for the distinct techniques involved, the unexpected twists in execution, and the new or underexplored attack surfaces they revealed.

#10 Panoptic Incident: XOR Linearity Breaks the Position Fingerprint Scheme

#10 Panoptic Incident: XOR Linearity Breaks the Position Fingerprint Scheme

On August 29, 2025, Panoptic disclosed a Cantina bounty finding and confirmed that, with support from Cantina and Seal911, it executed a rescue operation on August 25 to secure roughly $400K in funds. The issue stemmed from a flaw in Panoptic’s position fingerprint calculation algorithm, which could have enabled incorrect position identification and downstream fund risk.