Desofuscador de flujo de control de JavaScript
Aplanamiento inverso del flujo de control en código JavaScript en línea de forma gratuita. Nuestro desofuscador de flujo de control detecta patrones de despachador while (verdaderos), mapea transiciones de estado, identifica variables de estado y genera mapeos de estado a bloque para ayudar a reconstruir la lógica de bifurcación original. Incluye diagrama de transición de estado automático, análisis de casos y estadísticas detalladas. Procesamiento gratuito y privado basado en navegador, no es necesario registrarse.
Detect and reverse control-flow flattening in JavaScript code. Identifies while(true) dispatcher patterns, traces state assignments, maps state transitions, and reconstructs the original branching logic. Includes state-to-block mapping and transition diagram.
Paste JavaScript code with control-flow flattening above and click Analyze Control Flow to detect state transitions and reconstruct branching logic. Click Load example flattened code to try it with a sample.
¿Por qué utilizar nuestro desofuscador de flujo de control de JavaScript?
- Detección y análisis instantáneos del flujo de control: analice el código JavaScript para aplanar el flujo de control al instante con nuestro desofuscador. La herramienta detecta automáticamente patrones de despachador while (verdaderos), despachadores de bucle for y otras técnicas de aplanamiento del flujo de control. Identifica la variable de estado, los bloques de casos y las transiciones de estado en tiempo real, sin esperas ni llamadas al servidor.
- Procesamiento de código seguro y privado: toda la desofuscación del flujo de control ocurre completamente en su navegador. Su código ofuscado, resultados de análisis y datos de mapeo de estado nunca salen de su dispositivo. No se cargan datos, no se realiza seguimiento ni se requiere registro: privacidad total para todo su trabajo de análisis de código.
- Desofuscador de flujo de control en línea: sin instalación: utilice el desofuscador de flujo de control de JavaScript directamente en cualquier navegador moderno sin necesidad de descargas, aplicaciones ni complementos. Cuenta con un editor de dos paneles, detección automática de transición de estado, tabla de mapeo de estado a bloque y generación de diagrama de transición.
- Mapeo de estado y análisis de transición: nuestro desofuscador de flujo de control proporciona un mapeo completo de estado a bloque que muestra cada valor de estado, su resumen de bloque de código asociado y todas las transiciones a otros estados. Vea el diagrama de transición de estado completo y comprenda cómo se bifurcó originalmente el flujo de control aplanado.
Casos de uso comunes para el desofuscador de flujo de control
- Bibliotecas de JavaScript ofuscadas de ingeniería inversa: los analistas y desarrolladores de seguridad utilizan el desofuscador de flujo de control para realizar ingeniería inversa en bibliotecas de JavaScript protegidas con aplanamiento de flujo de control. Al identificar el patrón del despachador y mapear las transiciones de estado, pueden reconstruir la lógica de ramificación original oculta detrás de la estructura de conmutación mientras (verdadera) aplanada.
- Análisis de scripts de malware y phishing: los profesionales de la ciberseguridad analizan muestras de JavaScript maliciosas que utilizan el aplanamiento del flujo de control para evadir la detección. El desofuscador revela la lógica de ramificación oculta, lo que permite identificar rutas de entrega de carga útil maliciosas, cadenas de redireccionamiento y códigos de filtración de datos enterrados bajo múltiples transiciones de estado.
- Comprender el comportamiento de los scripts de terceros: los desarrolladores utilizan el desofuscador de flujo de control para comprender qué hacen realmente los scripts de terceros ofuscados antes de integrarlos. El mapeo de estado revela puntos de decisión, ramas de llamadas API y lógica de recopilación de datos que de otro modo estarían ocultos bajo un flujo de control aplanado.
- Depuración de código de producción ofuscado: los desarrolladores frontend que depuran JavaScript de producción ofuscado y minimizado utilizan el desofuscador de flujo de control para rastrear las rutas de ejecución. El diagrama de transición de estado les ayuda a comprender el flujo del programa cuando las herramientas de depuración fallan en estructuras de flujo de control aplanadas.
- Auditoría de código e investigación de vulnerabilidades: los auditores de seguridad utilizan el desofuscador de flujo de control durante las auditorías de código para analizar dependencias de terceros que utilizan el aplanamiento del flujo de control. El mapeo de estado a bloque ayuda a identificar qué rutas de ejecución conducen a operaciones confidenciales o puntos de acceso a datos.
- Aprendizaje de técnicas de ofuscación del flujo de control: los estudiantes y desarrolladores que aprenden sobre la ofuscación avanzada de JavaScript utilizan el desofuscador del flujo de control para comprender cómo el aplanamiento del flujo de control transforma el código de ramificación regular en patrones basados en el despachador. El análisis en paralelo muestra la entrada ofuscada junto con el mapeo de estado.
¿Qué es la desofuscación del flujo de control?
La desofuscación del flujo de control es el proceso de revertir el aplanamiento del flujo de control, una técnica de ofuscación avanzada que transforma la estructura de ramificación natural de un programa (declaraciones if/else, bucles, retornos condicionales) en un despachador de máquina de estados. En lugar de una lógica condicional legible, el código utiliza una variable de estado y un bucle de despachador (normalmente while(true) que envuelve una declaración de cambio) para controlar el flujo de ejecución. Cada bloque de código se convierte en un caso en el conmutador y las transiciones entre bloques se controlan cambiando la variable de estado. Nuestro desofuscador de flujo de control detecta estos patrones, mapea las transiciones de estado y ayuda a reconstruir la lógica de bifurcación original, lo que hace que el código sea mucho más fácil de entender y analizar.
Cómo funciona nuestro desofuscador de flujo de control
- 1. Pegue el código JavaScript aplanado: pegue el código JavaScript ofuscado que utiliza el aplanamiento del flujo de control en el panel de entrada. La herramienta busca patrones de despachador, incluidos while (verdadero) y bucles for que contienen declaraciones de cambio con una variable de estado. Haga clic en "Cargar código aplanado de ejemplo" para probarlo con una muestra realista que demuestra todos los patrones de aplanamiento comunes.
- 2. Haga clic en Analizar flujo de control: el desofuscador identifica el patrón del despachador, extrae el nombre de la variable de estado, busca todas las etiquetas de casos y asigna asignaciones de estado. Genera un mapeo completo de estado a bloque que muestra cada valor de estado, el bloque de código que controla y todas las transiciones a otros estados. Se genera automáticamente un diagrama de transición que muestra el flujo entre estados.
- 3. Revisar el análisis de transición de estado: el panel de análisis muestra el diagrama de transición y las estadísticas, incluido el tipo de despachador, el recuento de estados y la cantidad de asignaciones de estado. La tabla de mapeo de estados interactiva proporciona información detallada sobre cada estado: su valor, el resumen del bloque de código y todos los estados de destino, lo que le ayuda a comprender la lógica de bifurcación reconstruida.
¿Qué patrones de flujo de control se detectan?
- While-True Dispatcher: el patrón más común usa {' while(true) { switch(state) }'} . El bucle nunca termina de forma natural; en cambio, las transiciones de estado controlan qué caso se ejecuta a continuación. Este es el patrón utilizado por ofuscadores populares como JavaScript Obfuscator y Jscrambler.
- Distribuidor de bucle For: algunos ofuscadores utilizan un bucle for como despachador en lugar de while(true) , a veces con un contador de bucle que también funciona como variable de estado. El desofuscador también detecta estos patrones de despachador alternativos.
- Variaciones de envoltura de bucles: también se detectan otros tipos de bucles como do... while y estructuras de bucles anidados que envuelven declaraciones de cambio. La herramienta identifica la variable de estado y asigna todos los bloques de casos independientemente de la estructura del bucle externo.
- Asignaciones de estado y transiciones: las transiciones de cada bloque de estado se rastrean encontrando todas las asignaciones a la variable de estado dentro de cada bloque de caso. El diagrama de transición muestra el diagrama de flujo completo desde los estados de entrada hasta los terminales.
Privacidad, seguridad y limitaciones
El desofuscador de flujo de control es 100% gratuito y no es necesario registrarse. Todo el análisis de código se realiza localmente en su navegador mediante coincidencia de patrones: su código ofuscado y los resultados del análisis nunca salen de su dispositivo. No hay límites de tamaño de archivo ni de uso. Tenga en cuenta que esta herramienta realiza una detección basada en patrones, no una reconstrucción semántica completa. La ofuscación compleja con múltiples capas o valores de estado generados en tiempo de ejecución puede requerir pases de análisis adicionales. Para una desofuscación completa, combínelo con otras herramientas como JavaScript Deobfuscator/Unpacker para decodificar cadenas hexadecimales y Variable Name Deobfuscator para restaurar identificadores. Mantenga siempre una copia de seguridad de su código fuente original y legible en el control de versiones.
Preguntas frecuentes
Un desofuscador de flujo de control de JavaScript invierte el aplanamiento del flujo de control, una técnica de ofuscación avanzada que transforma la lógica de ramificación normal en una máquina de estados con un despachador de interruptor while (verdadero). Detecta el patrón del despachador, mapea las transiciones de estado y reconstruye la lógica de bifurcación original.
El aplanamiento del flujo de control reestructura el código en una máquina de estados planos. En lugar de condiciones legibles if/else, el código utiliza una variable de estado y un despachador de interruptor while(true) donde cada bloque de código original se convierte en un caso, y la ejecución fluye entre bloques cambiando la variable de estado.
La herramienta detecta despachadores de conmutación while (verdaderos), despachadores de bucle for y otras variaciones de bucle. Identifica la variable de estado, extrae etiquetas de casos, asigna asignaciones de estado y genera un diagrama de transición de estado completo.
Proporciona detección basada en patrones y mapeo de estado para ayudar a reconstruir la lógica de ramificación. La reconstrucción semántica completa requiere comprender la semántica del código más allá de la coincidencia de patrones. Úselo junto con otras herramientas de desofuscación para obtener resultados completos.
Absolutamente. Todo el procesamiento ocurre localmente en su navegador: su código nunca sale de su dispositivo. Sin cargas, sin seguimiento, no es necesario registrarse.
Los ofuscadores populares, incluidos JavaScript Obfuscator, Jscrambler y marcos personalizados, utilizan el aplanamiento del flujo de control, a menudo combinado con codificación de cadenas, cambio de nombre de variables e inyección de código muerto.
Sí, 100% gratis, sin registro, sin cuenta, sin límites de uso. Analiza cualquier código JavaScript tantas veces como necesites, para siempre.