2008-09-12 63 views
18

Estoy buscando una técnica o herramienta que podamos utilizar para ocultar o de alguna manera asegurar nuestro código C# compilado. El objetivo no es la seguridad del usuario/datos, sino dificultar la ingeniería inversa de parte de la tecnología de nuestro software.El mejor método para ofuscar o asegurar conjuntos .Net

Esto no es para usar en la web, sino para una aplicación de escritorio.

Entonces, ¿conoce alguna herramienta disponible para hacer este tipo de cosas? (No necesitan estar libres)

¿Qué tipo de implicaciones de rendimiento tienen si las hay?

¿Esto tiene algún efecto secundario negativo cuando se utiliza un depurador durante el desarrollo?

Registramos la pila de rastros de problemas en el campo. ¿Cómo afectaría esto la ofuscación?

+0

duplicado: http://stackoverflow.com/questions/2525/best-net-obfuscation-tools-strategy –

Respuesta

0

Hay herramientas que también 'deobfuscan' archivos DLL ofuscados: sugiero convertir la pieza que necesita ser protegida en un componente no administrado.

+4

En ese punto, simplemente recurriremos a los desarmadores como lo hacen para descifrar la protección contra copia en la computadora juegos. –

+0

@Jonathan Allen: Se llama desensamblador, no desmontador. Por cierto, no es necesario desmontarlo.HexRays tiene un buen DESCOMPILER C/C++ (Ver IDA Pro Advanced). –

16

Ésta es una lista bastante buena de ofuscadores de msdn Obfuscators

no he observado ningún problema de rendimiento cuando ofuscar mi código. Si el texto que acaba de enviar está enraizado en la pila, es posible que tenga problemas para traducir los nombres de los métodos.

+0

Sería bueno tener enlaces. Si tienes la oportunidad, ¿podrías agregarlos? – spoulson

+4

Lo siento pero [de4dot] (http://de4dot.com/) puede desofuscar esos, recomendaría usar [ConfuserEx] (https://yck1509.github.io/ConfuserEx/) – newbieguy

+0

@newbieguy He intentado usar ConfuserEx porque es libre y de código abierto, pero después de ofuscar mi archivo exe, virustotal lo detectó como un virus (cuando escaneo mi archivo ejecutable sin ofuscarlo queda claro). Inaceptable. – vinsa

0

Pierdes el tiempo yendo por ese camino. Si tiene un código que no quiere que nadie vea, debe mantenerlo a puerta cerrada. Por ejemplo, solo ejecuta ese código en tu propio servidor usando una interfaz de servicio web.

Ofuscar su código solo disuade a la gente más informal. Como la industria de los videojuegos se apoyó hace mucho tiempo, ningún código está a salvo de las grietas.

+44

Es absolutamente cierto que ninguna de las opciones de protección detendrá los ataques más decididos. Eso no se traduce en "perder el tiempo". Eso es comparable a sugerir que no bloquee su automóvil cuando lo deje porque puede entrar un ladrón calificado. Todavía es un activo que vale la pena proteger y es negligente no tratar de protegerlo. Existe un equilibrio entre la protección y la agravación de los clientes y la realización de una pequeña inversión en la protección contra el 99% de los delincuentes y los atacantes que hay por ahí. –

+2

La seguridad contra el uso no autorizado de una copia "agrietada" no es lo mismo que la seguridad de la ingeniería inversa para extraer el código de un producto competitivo. Si la competencia requiere mejoras y evolución, tal vez la ofuscación sea suficiente para los programas que ya son complicados antes de la ofuscación. – H2ONaCl

Cuestiones relacionadas