Phalcon Debug facilita enormemente el análisis de transacciones cuando una transacción es demasiado compleja para comprenderla solo desde una vista superficial. En lugar de detenerse en un rastro de transacción de alto nivel, permite a los usuarios adentrarse en el flujo de ejecución, inspeccionar código verificado y seguir la lógica interna en detalle. Esto lo hace especialmente útil para el análisis de exploits, la investigación de causas raíz y la colaboración en equipo.
En esta guía, utilizamos la transacción del exploit del protocolo Euler como ejemplo. El objetivo es mostrar cómo Phalcon Debug ayuda a los usuarios a pasar de un paso sospechoso en una transacción a una explicación clara de lo que ocurrió y por qué fue importante.
Puedes abrir la transacción directamente aquí: Página de transacción de Phalcon
Cómo Entrar al Modo de Depuración
Hay dos formas principales de entrar al modo de depuración en Phalcon.
La primera es desde una fila específica en la vista de Flujo de Invocación. La segunda es a través del botón Debug en la esquina superior derecha de la página de transacción. Ambas conducen al mismo entorno de depuración, pero comenzar desde el Flujo de Invocación suele ser más útil cuando ya se identifica un paso sospechoso y se quiere saltar exactamente a ese punto.
En el ejemplo del exploit de Euler, la transacción contiene muchos pasos, incluidos la obtención de un préstamo flash de Aave y el depósito de DAI en Euler. Un paso especialmente sospechoso es la llamada a donateToReserves(), donde el atacante dona una cantidad muy grande al protocolo. Ese es el tipo de acción que a menudo merece una revisión más profunda, y Phalcon Debug permite a los usuarios iniciar el análisis justo en ese punto.

Diseño de la Vista de Depuración
Tras entrar al modo de depuración, Phalcon muestra un espacio de trabajo diseñado para el análisis paso a paso de transacciones. El diseño incluye cinco paneles principales.
El Panel de Rastreo de Llamadas muestra el rastro de llamadas externas y eventos. El Panel de Código Fuente muestra el código fuente del contrato actual y resalta la línea relevante. La Consola de Depuración proporciona controles de avance a nivel de llamada. El Panel de Rastreo de Depuración muestra la pila de llamadas del contrato actual, tanto internas como externas. El Panel de Parámetros y Valores de Retorno muestra las entradas y salidas de la llamada actual.
Este diseño es útil porque los usuarios no necesitan saltar entre varias herramientas para entender una parte de la transacción. Pueden leer el rastro, inspeccionar el código y seguir la lógica de ejecución en un solo lugar.
En ocasiones, el panel de código fuente puede no mostrar código. Esto suele ocurrir cuando la llamada actual apunta a un contrato no verificado. En este caso de Euler, el contrato del atacante no está verificado, por lo que el código fuente no está disponible allí. Sin embargo, el contrato eDai sí está verificado, lo que significa que los usuarios pueden usar Step In y continuar el análisis dentro de la lógica verificada.

Tras adentrarse en el contrato eDai verificado, los usuarios pueden profundizar en la implementación de donateToReserves() e inspeccionar la ruta de código exacta detrás del paso sospechoso de la transacción.

Cómo Usar la Consola de Depuración
La consola de depuración está diseñada para ayudar a los usuarios a moverse a través de la ejecución de la transacción en detalle. Esto es importante porque el Panel de Rastreo de Llamadas solo muestra llamadas externas y eventos. No muestra llamadas a funciones internas. La consola de depuración cubre esa brecha.
Phalcon proporciona varios controles de navegación en este panel. Next y Previous tienen dos versiones cada uno. Los botones rojos se mueven a través del rastro de llamadas completo, mientras que los botones azules se mueven dentro de la función actual. Step In avanza hacia la función destinataria. Step Out regresa al sitio de llamada de la función actual.
Con estos controles, los usuarios pueden recorrer la lógica del contrato línea por línea y comprender cómo ocurrieron los cambios de estado. En el caso de Euler, esto ayuda a revelar el problema más profundo detrás de donateToReserves(). El análisis muestra que el atacante donó 100 millones de eDAI, lo que cambió la relación entre eDAI y dDAI y dejó la posición elegible para la liquidación. La causa raíz fue que donateToReserves() carecía de una verificación de liquidez para la liquidación elegible, lo que permitió al atacante liquidar y extraer valor.
Ahí es donde Phalcon Debug se convierte en algo más que un visor. Se convierte en una herramienta práctica de análisis de transacciones para encontrar causas raíz dentro de la ejecución de contratos.


Compartir la Vista de Depuración
Otra función útil es que una vista de depuración puede compartirse directamente mediante una URL. El enlace compartido incluye la fila de rastreo seleccionada, de modo que cuando otro usuario la abre, ve inmediatamente la misma vista de depuración.
Esto es especialmente útil para los equipos de seguridad. En lugar de escribir una explicación extensa o pedir a un compañero que reproduzca manualmente la misma vista, un analista puede compartir el contexto exacto. Eso hace que la colaboración sea mucho más rápida durante el análisis de incidentes o las revisiones internas.
Un flujo de trabajo típico es el siguiente. Primero, identificar un paso sospechoso en el Flujo de Invocación. Segundo, usar el modo de depuración para inspeccionar el código, las llamadas internas y los parámetros. Tercero, compartir la vista de depuración exacta con los compañeros de equipo para que puedan revisar el mismo contexto y continuar la discusión.
Otras Funciones Útiles
Phalcon Debug incluye algunas funciones adicionales que mejoran la eficiencia del análisis.
La Vista de Rastreo de Llamadas puede mostrar los parámetros completos cuando se activa el interruptor de parámetros. Eso ayuda a los usuarios a inspeccionar un contexto más rico sin tener que abrir cada paso uno por uno.
Para las llamadas externas, los usuarios también pueden hacer clic en Rawdata para inspeccionar los parámetros de llamada sin procesar. Esto es útil cuando los datos decodificados no son suficientes o cuando los usuarios quieren verificar cómo se estructuró realmente el calldata.
Estos detalles pueden parecer menores, pero ahorran mucho tiempo durante el análisis real. Para la investigación de exploits, el trabajo de auditoría o la revisión de contratos, las pequeñas mejoras en el flujo de trabajo suelen marcar una gran diferencia.


Para los equipos que quieren ir más allá de una sola transacción y rastrear cómo se movieron los activos a lo largo de una ruta de ataque más amplia, MetaSleuth es el siguiente paso natural. Ayuda a los investigadores a seguir los fondos a través de direcciones y entidades una vez que la causa raíz a nivel de transacción queda clara.
Phalcon Debug es más útil cuando una transacción es demasiado compleja para una lectura superficial pero aún requiere una explicación clara. Ayuda a los usuarios a pasar de una entrada sospechosa en el rastreo a la ruta de código real, la lógica interna y la causa raíz. Eso lo hace valioso no solo para la investigación de seguridad, sino también para la revisión de incidentes, el análisis de exploits y la evaluación de contratos inteligentes. Para los equipos que desean fortalecer el código antes del despliegue, esta misma mentalidad conecta naturalmente con la Auditoría de Contratos Inteligentes y las Auditorías de Infraestructura, donde el comportamiento complejo se revisa antes de convertirse en un riesgo en producción.



