Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
obfuscation_analysis — Plugin de Binary Ninja para analizar y simplificar código ofuscado | Kitploit
Herramientas/GitHubGitHub/mrphrazer/obfuscation_analysis
Análisis EstáticoAnálisis de CódigoIngeniería InversaAnálisis de MalwareUtilidades y FrameworksAnálisis de Binarios
GitHubmrphrazer/obfuscation_analysis

obfuscation_analysis

Plugin de Binary Ninja para analizar y simplificar código ofuscado

Ver Repositorio
25624126hace 5 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Análisis de Ofuscación (v1.3)

Autores: Tim Blazytko & Nicolò Altamura

Analiza y simplifica código ofuscado

Descripción:

Obfuscation Analysis es un plugin de Binary Ninja que elimina la dificultad de trabajar con binarios fuertemente protegidos. Incluye un puñado de asistentes enfocados que te permiten

  • simplificar expresiones de Aritmética Mixta Booleana (MBA) con un solo clic (basado en msynth)
  • localizar y limpiar funciones con desensamblado roto

Algunos casos de uso de ejemplo se pueden encontrar en examples. Además, la charla de REcon "Breaking Mixed Boolean-Arithmetic Obfuscation in Real-World Applications" demuestra algunos casos de uso. Las diapositivas se pueden encontrar aquí. El plugin complementa a Obfuscation Detection: una vez que se marcan funciones sospechosas, Obfuscation Analysis te ayuda a limpiarlas y entenderlas. Se añadirán más asistentes con el tiempo.

Características principales

  • simplifica la ofuscación de Aritmética Mixta Booleana en la vista del descompilador de Binary Ninja
  • identifica y elimina funciones con desensamblado roto
  • aplica inlining a funciones en la vista del descompilador
  • implementación eficiente y agnóstica de la arquitectura
  • se ejecuta como tarea en segundo plano
  • manejo cuidadoso de errores: mensajes concisos para el usuario, traza completa en el registro de Debug

Instalación

La herramienta se puede instalar usando el gestor de plugins de Binary Ninja.

Para una instalación manual, sigue estos pasos en la carpeta de plugins de Binary Ninja:

git clone https://github.com/mrphrazer/obfuscation_analysis.git
cd obfuscation_analysis

# optionally: use a virtual environment
python -m venv obfana-env
source obfana-env/bin/activate

# install requirements
pip install -r requirements.txt

Si usas un entorno virtual, deberás establecer manualmente la ruta de site-packages en la configuración de Binary Ninja.

Uso

El plugin está disponible desde el menú de la barra superior de Binary Ninja en Plugins -> Obfuscation Analysis.

Plugin Menu

Simplificación de MBA

Para simplificar la ofuscación aritmética, primero resalta la expresión HLIL que deseas simplificar en la vista del descompilador. A continuación, elige Plugins -> Obfuscation Analysis -> MBA Simplification -> Slice & Simplify. El plugin resuelve el cálculo completo, lo ejecuta a través de msynth e inserta el resultado simplificado como un comentario en la misma línea. La breve animación a continuación muestra el flujo de trabajo completo:

MBA Simplification Workflow

La simplificación de MBA se basa en msynth. Por defecto, el plugin usa el oráculo de simplificación predeterminado de msynth, que se incluye con el plugin y está preconfigurado. Si deseas usar un oráculo más grande o personalizado, establece obfuscation_analysis.mba_oracle_path manualmente o navega hasta el archivo en la ventana de Configuración de Binary Ninja.

Plugin Settings

Si algo sale mal, el plugin escribe un mensaje conciso a nivel de usuario en el panel de Log; cambia la vista del registro a Debug para ver la traza completa.

Log Output

Características

El plugin incluye asistentes enfocados que abordan obstáculos comunes que encuentras al revertir binarios protegidos, cada uno ejecutable como una tarea en segundo plano desde la interfaz de usuario o desde scripts sin interfaz. A continuación se presentan las características disponibles actualmente.

Funciones corruptas

Las Funciones corruptas son funciones cuyo desensamblado muestra artefactos indefinidos—bloques básicos vacíos, instrucciones inválidas o superpuestas, y similares. Este asistente recorre todo el BinaryView, marca funciones con esos síntomas y las lista de manera que el analista pueda inspeccionar rápidamente código que fue mal analizado o deliberadamente ofuscado. Una acción opcional de eliminación borra cada función marcada y fuerza un nuevo análisis, limpiando la lista de funciones. Es particularmente útil para localizar

  • blobs de datos que el desensamblador promovió erróneamente a código
  • stubs de ofuscación que rompen el desensamblado lineal
  • funciones que usan instrucciones superpuestas o saltos desalineados
  • problemas con arquitecturas más nuevas donde se encuentran instrucciones poco comunes

Simplificación de MBA

La Aritmética Mixta Booleana (MBA) es una técnica de ofuscación que entierra cálculos simples en largas cadenas de operaciones aritméticas y booleanas. Esta característica simplifica tales expresiones en el descompilador. Cuando eliges una instrucción HLIL, el plugin recopila su cadena de cálculo completa con un backward slice SSA restringido al bloque básico actual, traduce ese slice a Miasm IR, lo introduce en msynth y finalmente añade el resultado simplificado como un comentario en la vista del descompilador. Esta característica te permite

  • colapsar enredos de MBA de múltiples líneas en una única ecuación legible
  • resolver predicados opacos que dependen de MBAs
  • reducir codificaciones de constantes convolutas hasta su valor literal

Inlining de funciones

Para la función actualmente seleccionada, este asistente aplica inlining recursivamente a cada función llamada dentro de la vista del descompilador, dando a Binary Ninja un IL único y autocontenido. Con todos los límites eliminados, el descompilador puede propagar datos entre funciones, permitiendo un plegado de constantes más profundo, eliminación de código muerto y, en general, una lógica más clara. Úsalo para

  • colapsar cadenas de pequeños wrappers, thunks o asistentes de acceso
  • mejorar representaciones de algoritmos que han sido divididas entre múltiples funciones
  • analizar esquemas de ofuscación donde la lógica está deliberadamente dispersa entre funciones

Ten en cuenta que HLIL puede volverse muy grande y lento de renderizar en funciones muy grandes o árboles de llamadas profundos. Además, algunas optimizaciones del descompilador pueden ser menos efectivas una vez que todo se fusiona en una sola unidad. Para controlar esto, puedes limitar la profundidad de inlining: establece Settings -> Obfuscation Analysis -> Max Function Inlining Depth a un límite superior N (por defecto establecido en 1). Con un límite de profundidad, solo se aplica inlining a los primeros N niveles de llamadas; las llamadas más profundas no se inlinean.

Limitaciones

El plugin tiene algunas advertencias que debes conocer, la mayoría relacionadas con el pipeline de simplificación de MBA:

Descargar herramienta