2009-09-28 32 views
8

Existen algunos programas en el mercado que puede usar para ofuscar su código .net, mi pregunta es, ¿qué tan fácil es para alguien obtener su IP si su código es "así llamado" ofuscado?¿Qué tan fácil es aplicar ingeniería inversa al código ofuscado de .net?

Está ofuscando el código .net meramente de goma de pollo de seguridad? ¿O es lo suficientemente bueno para proteger realmente sus derechos de propiedad intelectual?

+0

¿Está preguntando sobre protección tecnológica o legal? Porque si es de código cerrado, no creo que deba ofuscarse para obtener protección legal, aunque debería consultar a un abogado al respecto. –

+0

No es específico de .NET, por cierto. –

Respuesta

8

Esto depende completamente del Ofuscador.

La ofuscación, en general, hace un muy buen trabajo al hacer que sea mucho más difícil realizar ingeniería inversa, pero no lo impide de ninguna manera. El CLR siempre tendrá que descifrar el IL ofuscado, por lo que una persona dedicada siempre puede hacer lo mismo.

Sin embargo, la mayoría de licencias y protección de software realmente hace dos cosas:

  • previene sobreuso accidental
  • evita los intentos ocasionales de burlar la concesión de licencias

ofuscación (combinado con un sistema de licencias adecuado) previene ambos de los anteriores de manera muy efectiva. Cambia un procedimiento simple a una tarea mucho más complicada.

+0

Pensé que probaría EazFuscator.net, parece funcionar bien, pero no estoy seguro si es fácil de descifrar o no. –

+1

Cubre lo básico, pero la ofuscación a nivel empresarial probablemente hará un mejor trabajo. Sin embargo, todo se trata de tus objetivos: a veces, con cosas como esta, obtienes lo que pagas, pero a menudo, lo que pagas no es algo que necesites. ;) –

6

Los diferentes ofuscadores ofrecen diferentes niveles de protección.

Un poco de ofuscación de código es bastante fácil de descifrar si alguien realmente ha decidido averiguar qué está haciendo su código.

Ofuscación a nivel empresarial, por otro lado, puede ser casi imposible de descifrar con todos los diferentes métodos de ofuscación que utilizan.

... al final, sin embargo, alguien que realmente quiere tu código va a poder resolverlo dado el tiempo y la determinación.

+3

ofuscación no se trata de que sea imposible descifrar el código de otra persona, sino de hacer que ese desciframiento sea lo suficientemente difícil como para que las personas se den por vencidas. –

+2

Si los hackers adolescentes pueden romper los esquemas de protección contra copia de código no administrado como Photoshop y Office, puede estar bastante seguro de que alguien dedicado a robar su IP podrá hacerlo en un lenguaje administrado como .NET, independientemente de la cantidad de ofuscación que lanzas. – LBushkin

+0

@DDavies & @LBushkin - Ese es mi punto. La ofuscación de ninguna manera es la manera perfecta de proteger su código. Si alguien lo quiere, lo obtendrá. –

1

Nada es lo suficientemente bueno como para proteger los derechos intelectuales .. Si alguien realmente quiere aplicar ingeniería inversa a su aplicación, que puede hacerlo.

Su mejor opción es incluir algunas declaraciones de derechos de autor en su código. Ofuscación ayudará un poco, ya que tendrá que esforzarse un poco en ingeniería inversa, lo que significa que la mayoría de la gente no se tomará el tiempo para hacerlo.

Otro paso podría ser compilar JIT.

Si va a crear una API pública, asegúrese de que tiene algunos grandes xml-comentarios sobre los métodos públicos, o incluso mejor, no ofuscar los parámetros allí :)

11

ofuscación es como una cerradura de la puerta ... mantiene honestas a las personas honestas.

+0

Corto e informativo :) – Bijan

1

Es bastante fácil para cualquiera que esté decidido a obtener su ip.

En lo que respecta a la "seguridad", la seguridad a través de la oscuridad es solo un poco más segura que ninguna seguridad (que en realidad es más segura que la mala seguridad).

Mi regla siempre ha sido: Mantener a la gente honesta honesta. Asegúrese de que su IP esté legalmente protegida con las solicitudes de patentes, y haga que un abogado redacte los Términos de uso/EULA competentes. Use un ofuscador decente para evitar el movimiento ocasional, pero tenga en cuenta que no es una solución única.

Desafortunadamente, si alguien está decidido a aplicar ingeniería inversa a su código, puede hacerlo, y lo hará.

4

La confusión nunca se debe confundir por seguridad.

.NET Reflector hace que sea bastante sencillo aplicar ingeniería inversa al código .NET. Es posible que no obtenga nombres bastante variables y de parámetros de método/método, pero cualquier persona interesada en la ingeniería inversa de su propiedad intelectual tendrá suficiente información para hacerlo.

Si necesita una protección rigurosa de su propiedad intelectual, considere tomar partes críticas de su código y solo exponerlas como servicios web. Alternativamente, considere herramientas como HASP que agregan un nivel de encriptación y protección anti-depuración/ingeniería inversa a su producto.

Si ninguno de estos es posible ... considere contratar algunos buenos abogados.

Cuestiones relacionadas