Ofuscador - norman-ipn/Ofuscador GitHub Wiki

¿Qué es ofuscar ? La ofuscación consiste en alterar el código fuente (el código VBA) para que No pueda ser entendible. El código ofuscado funciona igual que un código normal, pero con la ventaja que es difícil de entender y/o de leer es decir el código VBA esta enrevesado de tal manera, que el código esta confuso siendo casi imposible de interpretar su lectura. Este nuevo código sirve como medida adicional de SEGURIDAD a los ficheros ACCDE.

¿Son los ficheros ACCDE seguros ? La razón principal para la difusión del formato ACCDE es que se supone que No contiene el código fuente. Desafortunadamente esto no es cierto, el código fuente original se puede recuperar. Resulta difícil obtener el código fuente de Access a partir del código compilado (MDE o ACCDE), pero No es imposible, por eso siempre y cuando no se haya utilizado un ofuscador de código, la tarea de poder descifrar el código será mas difícil. En otras palabras, si no se toman las precauciones debidas, cualquier aplicación en Access puede ser víctima de ingeniería inversa y así obtener su código fuente Para poner coto a esta ingeniería inversa y evitar la violación de los derechos de autor, consiste en ofuscar el código VBA de forma tal que resulte prácticamente imposible descompilarlo e incluso interpretarlo correctamente aun si se obtiene el código fuente por el procedimiento que fuera. La idea es No dar pistas a los Hackers.

Ejemplo Código Normal Function funCalculo() Rem Código Normal Dim x As Byte Dim y As Byte Dim z As Byte

x = 3 y = 2 z = 5

Debug.Print "Total= " & x * y - z MsgBox "Total= " & x * y - z

End Function Ejemplo Codigo Ofuscado Function funCalculo2() Rem Codigo Ofuscado Rem No hagas un copiar y pegar desde AQUi (No funcionara) Dim As Byte Dim As Byte Dim As Byte

= 3 = 2 = 5

Debug.Print "Total= " & * -
MsgBox "Total= " & * -

End Function

La ofuscación consiste en la práctica, en la inclusión de bucles irrelevantes o sin sentido, cálculos innecesarios, comprobaciones absurdas, nombres de funciones y de variables que no tienen nada que ver con su cometido, funciones larguísimas que no sirven para nada, interacciones inverosímiles entre variables y funciones, su pueden esconder números pequeños en cadenas de texto, se puede crear métodos grandes en vez de utilizar subrutinas,etc.

No conviene olvidar que los ofuscadores no tienen nada que ver con la seguridad en los programas, simplemente añaden grandes complicaciones al proceso de decompilación y posterior interpretación del código fuente del programa. Por supuesto, no se debe comenzar a escribir el programa de esta manera. Primero, se debe escribir de forma convencional y luego se le irán aplicando las reglas anteriores hasta que haya quedado satisfactoriamente oscurecido. Una desventaja de la ofuscación es que el mantenimiento y la solución de problemas de una aplicación son tareas más difíciles. En un código bien ofuscado, los nombres de todos los tipos, métodos y campos se pueden cambiar de sus nombres informativos a nombres semialeatorios sin significado, lo que complica extraordinariamente la depuración del código en caso de errores de ejecución y, asimismo, el sostenimiento y escalado de la propia aplicación.

http://www.accessdemo.info/idiomas/esp/seguridad/seguridad_access_once.htm

Eazfuscator.NET Es un programa para ofuscar en la plataforma .NET http://www.gapotchenko.com/eazfuscator.net/features/virtualization

En el link que viene en la parte inferior se presentan ejemplos ofuscados en el lenguaje C, también notamos que si nosotros declaramos un valor entero, lo visualizaremos de esta forma: int int_;

Para representar el número 10, se observara de la siguiente manera:

        (((!(int_-int_)<<!(int_-int_))<<(!(int_-int_)<<!(int_-int_)))|(!(int_-int_)<<!(int_-int_)));

Donde el signo de admiración final (!) en C++ es un NOT booleano, y la barra vertical (|) un OR binario. Por su lado, el doble signo de menor que (<<) especifica un AND lógico. Todo esto para generar un 10.

http://www.teknoplof.com/2010/10/19/codigo-ofuscado/#codesyntax1

http://www.genbetadev.com/metodologias-de-programacion/ofuscacion-de-codigo-el-antipatron-por-excelencia

Les dejo otro un link donde se habla sobre la Competición del código de C ofuscada internacional llamada IOCCC, que es un competición para el código de C ofuscado, donde lleva varios años tomando lugar a nivel mundial.
http://www18.knowledgres.com/00020717/CompeticionDelCodigoDeCOfuscadaInternacional