Compartir a través de


Objetivo de la ofuscación

El objetivo de la ofuscación es crear confusión. A medida que crece la confusión, disminuye la capacidad de la mente para comprender conceptos intelectuales de varias facetas. Observe que no se dice nada acerca de modificar la lógica final (ejecutable), sólo de representarla de manera incomprensible. Cuando una herramienta de ofuscación bien escrita trabaja en instrucciones de programa legibles, un efecto secundario probable es que el resultado no sólo confundirá al intérprete humano sino también al descompilador. Aunque la lógica final (ejecutable) se mantiene, la semántica invertida se ha generado de forma no determinista. Como resultado, fracasará cualquier intento de aplicar ingeniería inversa en las instrucciones para obtener un "dialecto de programación" como C# o VB, porque la traducción es ambigua. Una ofuscación profunda crea miles de posibilidades de descompilación, algunas de las cuales podrían producir una lógica incorrecta al volverse a compilar. El descompilador, como máquina que es, no tiene ningún medio de saber cuál de las posibilidades se podría volver a compilar con una semántica válida. Las personas escriben y usan descompiladores para automatizar los algoritmos de descompilación que a la mente le resulta muy difícil seguir. Se puede afirmar con seguridad que cualquier ofuscador que confunda a un descompilador hará desistir a una persona que intente la misma tarea.

Básicamente, los ofuscadores primitivos cambian el nombre de los identificadores que se encuentran en el código por algo ilegible. Pueden usar técnicas de hash o desplazamiento aritmético del juego de caracteres para obtener caracteres no legibles o no imprimibles. Aunque es efectivo, es obvio que son técnicas reversibles y, por lo tanto, poco protectoras. Las herramientas de ofuscación de PreEmptive hacen algo más que cambiar los nombres e incorporan nuevas maneras de crear confusión que hacen casi imposible y, al menos, extremadamente laborioso, aplicar ingeniería inversa en la propiedad intelectual de una persona.

© 2002-2007 PreEmptive Solutions. Reservados todos los derechos.