O Phalcon Debug torna a análise de transações muito mais fácil quando uma transação é complexa demais para ser compreendida apenas pela visão superficial. Em vez de parar em um rastreamento de transação de alto nível, ele permite que os usuários acessem o fluxo de execução, inspecionem código verificado e acompanhem a lógica interna em detalhes. Isso o torna especialmente útil para análise de exploits, investigação de causa raiz e colaboração em equipe.
Neste guia, usamos a transação de exploit do protocolo Euler como exemplo. O objetivo é mostrar como o Phalcon Debug ajuda os usuários a passar de uma etapa de transação suspeita para uma explicação clara do que aconteceu e por que isso foi relevante.
Você pode abrir a transação diretamente aqui: Página da transação no Phalcon
Como Entrar no Modo de Depuração
Existem duas formas principais de entrar no modo de depuração no Phalcon.
A primeira é a partir de uma linha específica na visualização do Fluxo de Invocação. A segunda é pelo botão Debug no canto superior direito da página da transação. Ambas levam ao mesmo ambiente de depuração, mas começar pelo Fluxo de Invocação costuma ser mais útil quando você já identifica uma etapa suspeita e deseja acessar exatamente aquele ponto.
No exemplo do exploit do Euler, a transação contém muitas etapas, incluindo o empréstimo de um flash loan do Aave e o depósito de DAI no Euler. Uma etapa especialmente suspeita é a chamada a donateToReserves(), onde o atacante doa uma quantia muito grande ao protocolo. Esse é o tipo de ação que frequentemente merece uma análise mais aprofundada, e o Phalcon Debug permite que os usuários iniciem a análise exatamente ali.

Layout da Visão de Depuração
Após entrar no modo de depuração, o Phalcon exibe um espaço de trabalho criado para análise de transações passo a passo. O layout inclui cinco painéis principais.
O Painel de Rastreamento de Chamadas exibe o rastreamento de chamadas externas e eventos. O Painel de Código-Fonte mostra o código-fonte do contrato atual e destaca a linha relevante. O Console de Depuração fornece controles de navegação no nível de chamada. O Painel de Rastreamento de Depuração exibe a pilha de chamadas do contrato atual, incluindo chamadas internas e externas. O Painel de Parâmetros e Valores de Retorno mostra entradas e saídas da chamada atual.
Esse layout é útil porque os usuários não precisam alternar entre várias ferramentas apenas para entender uma parte da transação. Eles podem ler o rastreamento, inspecionar o código e acompanhar a lógica de execução em um único lugar.
Às vezes, o painel de código-fonte pode não exibir código. Isso geralmente acontece quando a chamada atual aponta para um contrato não verificado. Neste caso do Euler, o contrato do atacante não está verificado, portanto o código-fonte não está disponível ali. Mas o contrato eDai está verificado, o que significa que os usuários podem usar Step In e continuar a análise dentro da lógica verificada.

Após acessar o contrato eDai verificado, os usuários podem avançar mais na implementação de donateToReserves() e inspecionar o caminho exato do código por trás da etapa suspeita da transação.

Como Usar o Console de Depuração
O console de depuração foi projetado para ajudar os usuários a percorrer a execução da transação em detalhes. Isso é importante porque o Painel de Rastreamento de Chamadas exibe apenas chamadas externas e eventos. Ele não exibe chamadas de funções internas. O console de depuração preenche essa lacuna.
O Phalcon fornece vários controles de navegação neste painel. Next e Previous têm duas versões cada. Os botões vermelhos percorrem o rastreamento completo de chamadas, enquanto os botões azuis navegam dentro da função atual. Step In acessa a função chamada. Step Out retorna ao ponto de chamada da função atual.
Com esses controles, os usuários podem percorrer a lógica do contrato linha por linha e entender como as mudanças de estado ocorreram. No caso do Euler, isso ajuda a revelar o problema mais profundo por trás de donateToReserves(). A análise mostra que o atacante doou 100 milhões de eDAI, o que alterou a relação entre eDAI e dDAI e tornou a posição elegível para liquidação. A causa raiz foi que donateToReserves() não possuía uma verificação de liquidez para elegibilidade de liquidação, permitindo que o atacante liquidasse e extraísse valor.
É aí que o Phalcon Debug se torna mais do que um visualizador. Ele se torna uma ferramenta prática de análise de transações para encontrar causas raiz dentro da execução de contratos.


Compartilhamento da Visão de Depuração
Outro recurso útil é que uma visão de depuração pode ser compartilhada diretamente por URL. O link compartilhado inclui a linha do rastreamento selecionada, portanto, quando outro usuário o abre, ele vê imediatamente a mesma visão de depuração.
Isso é especialmente útil para equipes de segurança. Em vez de escrever uma longa explicação ou pedir a um colega que reproduza manualmente a mesma visão, um analista pode compartilhar o contexto exato. Isso torna a colaboração muito mais rápida durante a análise de incidentes ou revisões internas.
Um fluxo de trabalho típico é o seguinte. Primeiro, identifique uma etapa suspeita no Fluxo de Invocação. Segundo, use o modo de depuração para inspecionar código, chamadas internas e parâmetros. Terceiro, compartilhe a visão de depuração exata com os colegas de equipe para que eles possam revisar o mesmo contexto e continuar a discussão.
Outros Recursos Úteis
O Phalcon Debug inclui alguns recursos adicionais que melhoram a eficiência da análise.
A Visualização de Rastreamento de Chamadas pode exibir parâmetros completos quando o interruptor de parâmetros estiver ativado. Isso ajuda os usuários a inspecionar um contexto mais rico sem precisar abrir cada etapa individualmente.
Para chamadas externas, os usuários também podem clicar em Rawdata para inspecionar os parâmetros brutos da chamada. Isso é útil quando os dados decodificados não são suficientes ou quando os usuários desejam verificar como o calldata foi realmente estruturado.
Esses detalhes podem parecer pequenos, mas economizam muito tempo durante análises reais. Para investigação de exploits, trabalho de auditoria ou revisão de contratos, pequenas melhorias no fluxo de trabalho frequentemente fazem uma grande diferença.


Para equipes que desejam ir além de uma única transação e rastrear como os ativos se moveram ao longo de um caminho de ataque mais amplo, o MetaSleuth é um próximo passo natural. Ele ajuda investigadores a acompanhar fundos entre endereços e entidades após a causa raiz no nível da transação se tornar clara.
O Phalcon Debug é mais útil quando uma transação é complexa demais para uma leitura superficial, mas ainda precisa de uma explicação clara. Ele ajuda os usuários a passar de uma entrada suspeita no rastreamento para o caminho real do código, a lógica interna e a causa raiz. Isso o torna valioso não apenas para pesquisa de segurança, mas também para revisão de incidentes, análise de exploits e avaliação de contratos inteligentes. Para equipes que desejam fortalecer o código antes da implantação, essa mesma mentalidade se conecta naturalmente à Auditoria de Contratos Inteligentes e às Auditorias de Infraestrutura, onde comportamentos complexos são revisados antes de se tornarem um risco em produção.



