
MODEFLATTENER es una herramienta especializada diseñada para revertir la hinchazón de flujo controlado de OLLVM a través de técnicas de análisis estático.
Se desarrolla utilizando la funcionalidad de representación intermedia de Miasm, que reconstruye sistemáticamente la lógica del programa original a partir de archivos binarios ofuscados analizando y parchando componentes estructurales críticos.
Funciones centrales
Controlar el tráfico al abuso
La herramienta identifica dos componentes clave en la función plana:
- Premattar: Posición 1 analizando el predecesor del bloque (bloque con el borde entrante más grande)
- Planificador: Determinado como el primer sucesor 1 de Pregatcher1
Estos forman la «columna vertebral de la ejecución coordinada a través del sistema de variables de estado. MODEFLATTENER rastrea la modificación de esta variable en el bloque base para mapear el flujo de control original.
Proceso técnico
- Análisis de variables de estado
Identifica la ubicación de registro/memoria que almacena el estado programado, que se inicializa antes del planificador y se modifica al final de cada bloque. - Clasificación de bloques relacionados
- Bloque simple: actualización de estado incondicional
- Bloque condicional: ramificación de estado 1 utilizando la descripción de CMOV
- Simplificación basada en SSA
Aplicar miasmado_propagate_expressionsResuelva los nodos Phi en forma de SSA y revele el camino condicional: Pythonssa_simplifier = IRCFGSimplifierSSA(lifter) ssa = ssa_simplifier.ircfg_to_ssa(ircfg, head)Esto revela condiciones de rama0x401a9d: {'cond': 'CMOVB', 'false_next': 0x401bb0, 'true_next': 0x401af5}1. - Patching de instrucciones
- Análisis de operaciones variables de estatus de eliminación a través de la cadena de violación
- Reemplace CMOV con saltos condicionales (p. Ej.
CMOVB→JB) - A toda la columna vertebral del despachador
Flujo de trabajo operativo
textInput Binary → Identify Dispatcher → Analyze State Var →
Classify Blocks → SSA Simplification → Generate Patches →
Rebuild Control Flow → Output Deobfuscated BinaryCaracterísticas mejoradas
- Integración con IDA Pro: Incluya un script nop-hider para limpiar la vista del gráfico
- Detección automática: Incorporando el logotipo de la característica heurística de Tim Blazytko 1
- COMANDO DE CALIR COMANDO: Ajuste la dirección relativa durante el parche para mantener la función
La herramienta reorganiza con éxito el flujo de control plano en un gráfico legible mientras retiene la lógica ejecutable.
Su implementación de código abierto en GitHub proporciona utilidades prácticas para que los ingenieros inversos se ocupen de malware OLLVM Omited o Software protegido1.








