Skip to Content
Nueva versión 12 disponible 🎉
ObfuscatorEjemplos generalesDetección de la ofuscación de Babel

Detección de la ofuscación de Babel

Babel Obfuscator es una herramienta que ha ganado relevancia en el ámbito de los ensamblados .NET, sobre todo por su capacidad para hacerlos más resistentes a la ingeniería inversa. En esencia, Babel no se limita a ofuscar los nombres de los símbolos; va más allá y altera el código del ensamblado.

Esta transformación es un punto clave de análisis para quien intenta averiguar si un ensamblado ha sido ofuscado por Babel. En este proceso de análisis, la biblioteca Mono.Cecil  resulta de gran ayuda. Esta biblioteca facilita la inspección y el análisis de ensamblados .NET, y permite examinar los metadatos del ensamblado y buscar las modificaciones características de Babel.

Babel Obfuscator emplea un esquema de renombrado propio, que a menudo usa caracteres Unicode ilegibles o cadenas ASCII para crear los nombres ofuscados. Al examinar estos nombres de símbolos e identificar los patrones característicos de la estrategia de renombrado de Babel, se puede determinar si el ensamblado ha sido ofuscado.

Además, cuando están activadas las funciones de protección por cifrado de Babel, se añade al ensamblado un inicializador de módulo. Este inicializador se encarga de preparar el código y de descifrar los datos que Babel Obfuscator ha ocultado. Su presencia suele ser una señal clara de la intervención de Babel.

Pero quizá el indicio más directo de la intervención de Babel sea el atributo BabelObfuscationAttribute. Cuando Babel está configurado para incluir este atributo en un ensamblado ofuscado, detectarlo confirma de forma casi concluyente el papel de Babel en el proceso de ofuscación.

Para quienes prefieran un enfoque más práctico, un proyecto de ejemplo en GitHub ilustra este proceso de detección.

git clone https://github.com/babelfornet/check-obfuscation-example.git

Una vez en el repositorio, abra el archivo .sln en Visual Studio. Con todo preparado, puede compilar y ejecutar el proyecto.

Este proyecto de ejemplo compila una aplicación CLI diseñada para comprobar si los ensamblados están ofuscados. Su uso es sencillo:

Usage: CheckObfuscation.exe <file|directory>

Aquí, file es el archivo de ensamblado que quiere comprobar y directory es el directorio en el que quiere buscar ensamblados.

Con estas herramientas y estos conocimientos a su disposición, podrá reconocer los signos reveladores de la ofuscación de Babel en cualquier ensamblado .NET.

Last updated on