En este post se trata del explicar el funcionamiento básico del ofuscador que incorpora Visual Studio.

 

dotofus

 

La ingeniería inversa y los mecanismos de reflexión permiten la exploración de los objetos y datos que pueda contener un determinado ensamblado. Cuando se diseña software en el que no se desea que accedan al código se puede utilizar la ofuscación como técnica de protección. La ofuscación no evita el acceso a los ensamblados pero si dificulta enormemente su compresión.

Las herramientas de ofuscación usan una técnica de cambio de nombre que aplica identificadores triviales. Renombran métodos y variables tal como se ilustra en el siguiente ejemplo:

Código Normal

private void CalcPayroll(SpecialList employeeGroup) {

  while (employeeGroup.HasMore()) {

    employee = employeeGroup.GetNext(true);

    employee.UpdateSalary();

    DistributeCheck(employee);

  }

}

Código ofuscado


private void a(a b) {

 while (b.a()) {

   a = b.a(true);

   a.a();

   a(a);

 }

}

 

En el ejemplo se muestra que el código ofuscado es más compacto. Un efecto secundario positivo del cambio de nombre es la reducción del tamaño. Por ejemplo, si nombre tiene 20 caracteres de longitud, al cambiarlo a a(), se ahorra mucho espacio (en concreto, 19 caracteres). También se ahorra espacio al conservar las entradas del montón de cadena. Al cambiar todos los nombres a “a”, “a” se almacena sólo una vez y cada método o campo cuyo nombre ha cambiado a “a” puede señalar a él.

Es importante comprender que la ofuscación es un proceso que se aplica a código MSIL compilado, no a código fuente. El entorno de desarrollo y las herramientas no se modifican para ajustarse al cambio de nombre. El código fuente nunca se modifica de ninguna manera, ni siquiera se lee. El código MSIL ofuscado es funcionalmente equivalente al código MSIL tradicional y se ejecutará en Common Language Runtime (CLR) con idéntico resultado.

processOfus

Para el entorno .NET se incluye Dotfuscator que es una herramienta que ayuda proteger los programas contra la ingeniería reversa, además de hacerlos más pequeño y eficiente.

En la siguiente entrada se detalla cómo realizar la ofuscación de un programa a través del Dotofuscator que incorpora el Visual Stuido.

http://jorgepedraza.wordpress.com/tag/dotfuscator/

Para ampliar la información se puede acceder a:

http://msdn.microsoft.com/es-es/library/ms227255(v=vs.90).aspx

http://msdn.microsoft.com/en-US/library/ms227295(v=vs.80).aspx

Anuncios