Existen varias herramientas populares para la ofuscación, incluida Dotfuscation, que tiene una versión "ligera" que se incluye con Visual Studio 2005 y 2008. Tienen una versión Pro que hace más que simplemente cambiar el nombre y el nombre de la función. Sin embargo, el código aún se puede ver, simplemente se complicó un poco para que sea más difícil de leer y asimilar el flujo lógico del software.
Otra técnica es utilizar otros programas que encriptarán el programa y lo desencriptarán en tiempo de ejecución. Sin embargo, esta tampoco es una solución perfecta. De hecho, no existe una solución perfecta de la que tenga conocimiento que impida que un ingeniero determinado realice ingeniería inversa del software, si se le aplica el tiempo y el esfuerzo suficientes.
Lo que realmente se reduce a determinar el nivel de protección que hará que sea lo suficientemente difícil disuadir al pirata informático ocasional y hacer que la ingeniería inversa sea tan costosa como sea posible, por lo que la ingeniería inversa tiene un costo en tiempo o dinero, o idealmente, ambos. Cuanto más costosos sean los costos de ingeniería inversa, menos personas estarán dispuestas a esforzarse. Y ese es el gran punto de ofuscación.
Algunos piensan que el uso de un compilador como el compilador de C++ que se compila en código nativo evitará este tipo de ingeniería inversa, pero no es así. Un buen desensamblador permitirá que incluso los ejecutables binarios puros sean de ingeniería inversa, por lo tanto, no existe una solución perfecta. Si la computadora puede leerlo y ejecutarlo, entonces se puede escanear y rastrear la memoria que está usando la computadora, eludiendo todos los intentos de encriptar, ofuscar o cualquier otro medio para mantener su código fuera de las manos de un ingeniero determinado.
¿Y cuando exporta su software a un país que no cumple las mismas reglas que su propio país? (china f.ex). Por favor, no mencione perogrulladas que obviamente no son ciertas. –
Casper, el punto es que ninguna de estas herramientas protegerá su software del folk determinado para realizar ingeniería inversa/crackearlas. Estoy de acuerdo en que hay muchos países que no hacen cumplir/respetar ninguna ley de PI, pero como señalé, estas herramientas tampoco te protegerán mejor.En el mejor de los casos, impiden la inspección casual. – stephbu
Una vez más con los perogrullos: un conjunto ofuscado correctamente será de orden de magnitud más difícil de aplicar ingeniería inversa que los conjuntos no ofuscados. Ese es un hecho que puedes examinar tú mismo. Si cree que tiene alguna idea de por qué este no es el caso, proporcione argumentación, en lugar de expresar perogrulladas. Sin embargo, comparto tu opinión de que no deberíamos desperdiciar nuestro tiempo y dinero con la ofuscación, pero eso no cambia el hecho de que hacerlo dificultará la ingeniería inversa. –