Back to Blog

Phalconデバッグによるトランザクションの調査方法

March 29, 2023

Phalconは、複雑なトランザクションの分析効率を大幅に向上させることができる強力な機能であるトランザクションのデバッグをサポートしています。以下では、この機能を紹介するために、Eulerプロトコルの悪用のトランザクションを使用します。

このトランザクションへのリンクはこちらです: https://phalcon.blocksec.com/explorer/tx/eth/0xc310a0affe2169d1f6feec1c63dbc7f7c62a887fa48795d327d4d2da2d6b111d

デバッグモードへの入り方

デバッグモードに入るには2つの方法があります。1つ目は、呼び出しフロービューの特定の行からデバッグモードに入ること、2つ目は、デバッグボタンをクリックすることです。

方法I:実行トレース経由

PhalconのInvocation Flowは、ユーザーが悪用されたトランザクション全体像を把握し、潜在的な悪用箇所を特定できるビューを提供します。これは、トランザクションに多数の外部呼び出しやイベントが含まれている場合に役立ちます。 トランザクション

呼び出しフローで行を選択してデバッグモードを開く
呼び出しフローで行を選択してデバッグモードを開く

Eulerプロトコルの悪用の場合、ハックトランザクションは、Aaveからのフラッシュローン借り入れEulerプロトコルへのDaiの預け入れなど、多くのステップで構成されています。しかし、ステップの1つで、悪用者はdonateToReserves()を呼び出してEulerプロトコルに巨額の資金を「寄付」しましたが、これは注意が必要です。この場合、デバッグアイコンをクリックすることで、このステップから直接トランザクションをデバッグできます。

方法II:デバッグボタン経由

デバッグモードに入るもう1つの方法は、右上隅にあるデバッグボタンをクリックすることです。

デバッグビューのレイアウト

デバッグモードに入ると、以下の画面が表示されます。

デバッグビューのレイアウト
デバッグビューのレイアウト

この画面には5つのパネルがあり、それぞれ以下の通りです。

  • 呼び出しトレースパネル: 外部呼び出しとイベントのトレースを表示します。
  • ソースコードパネル: コントラクトのソースコードと、関数の呼び出しサイトを参照している現在の行(ハイライト表示)を提供します。
  • デバッグコンソール: 呼び出しレベルのシングルステップデバッグコンソールです。
  • デバッグトレースパネル: 内部呼び出しと外部呼び出しの組み合わせによる、現在のコントラクトのコールスタックを表示します。
  • パラメータと戻り値パネル: 呼び出しパラメータと戻り値を表示します。

ソースコードパネルにコードが表示されない場合があります。これは、パネルがデフォルトで関数の呼び出しサイトを表示するためです。ハッキングコントラクトが検証されていない(ソースコードが公開されていない)ため、ソースコードを表示できません。

eDaiコントラクトは検証されているため、ステップインしてdonateToReserves()の具体的な実装を確認できます。ステップインをクリックすると、現在の行はeDaiコントラクト内の呼び出しサイトになります。これはプロキシコントラクトであり、コードは以下の通りです。

コントラクトが検証されている場合のデバッグモード
コントラクトが検証されている場合のデバッグモード

再度ステップインすると、donateToReserves()の具体的な実装を確認できます。

donateToReserves()のデバッグ
donateToReserves()のデバッグ

デバッグコンソールの使い方

デバッグコンソールは、内部関数呼び出しを含む詳細な呼び出しトレースを理解するのに役立ちます(行の先頭にあるJumpは、それが内部呼び出しであることを示します)。呼び出しトレースパネルには内部呼び出しトレースがないことに注意してください。

デバッグビューのレイアウト
デバッグビューのレイアウト

詳細な実行を移動するために、Phalconはデバッグコンソールに4つのボタンを提供しており、次へ前へは2つの色でわずかに異なるロジックを持っています。

  • 次へ(赤ボタン):コールトレース全体で次の呼び出しサイトに移動します。
  • 次へ(青ボタン):現在の関数の次の呼び出しサイトに移動します。
  • 前へ(赤ボタン):コールトレース全体で前の呼び出しサイトに移動します。
  • 前へ(青ボタン):現在の関数の前の呼び出しサイトに移動します。
  • ステップイン:呼び出し先関数に移動します。
  • ステップアウト:現在の関数の呼び出しサイトに戻ります。

例えば、次へボタンをクリックしてdonateToReserves()の実装を分析できます。ハッカーが1億eDAIを寄付したことがわかり、eDAIがdDAIより少なくなり、清算対象となったことがわかります。したがって、根本原因はdonateToReserves()に清算対象となるための流動性チェックが欠けていたことであり、悪用者は自身を清算して3800万eDAIを引き出しました。

Euler悪用の根本原因
Euler悪用の根本原因

デバッグビューの共有

トランザクションのデバッグは、URLを介して直接共有できます。このURLにはトレースの行番号が含まれています。他の人がリンクを開くと、同じデバッグビューが表示されます。これは、分析結果を他の人と共有したい場合に役立ちます。チームメンバーはこれを使用して共同で分析し、議論することができます!

要約すると、Phalcon Debugeを使用してハックトランザクションを分析する典型的なワークフローは次のとおりです。

  • Invocation Flowで潜在的な問題を特定し、そこからデバッグを開始します。
  • ソースコードをデバッグし、内部呼び出しのパラメータと戻り値を確認します。
  • 分析ビューをチームメンバー(または公開読者)と共有して共同作業を行います。

その他の機能

Phalcon Debugには、効率を向上させるための多くの機能があります。

  • 以下のスイッチをオンにすると、呼び出しトレースビューで完全なパラメータを表示できます。
パラメータスイッチ
パラメータスイッチ
  • 外部呼び出しの場合、「Rawdata」をクリックすると、生の呼び出しパラメータを確認できます。

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.