.net - online - net reflector 9 full
¿Hay alguna manera de evitar que Reflector sea capaz de reflejar mi código fuente? (9)
¿Hay alguna manera (confiable y preferiblemente no comercial) de evitar que Reflector refleje mi código fuente?
Gracias, Adi
prueba dotfuscator. 2005/2008 viene con una edición de comunidad. En su defecto, la arquitectura de su código (doloroso) es decir, los objetos ATL / COM (privados) llamados por los componentes .NET (público).
La elección es tuya.
No hay forma de evitar la descompilación del código .net, con eso dicho, un buen ofuscador hará que el código reflejado sea más difícil de leer, algunos de ellos como dotfuscator evitarán que el reflector muestre el código C #; Sin embargo, siempre podrás ver el IL.
Una de las opciones en Dotfuscator es usar nombres no imprimibles (Reflect on reflector) Esto hace que decompiling sea extremadamente difícil en mi humilde opinión.
Microsoft solía vender un Servicio de Procuración y Licencia de Software que encriptaba el IL y utilizaba una máquina virtual personalizada que estaba vinculada a una clave de cifrado que evitaba que se reflejara utilizando las herramientas convencionales. Esto tuvo un gran costo de rendimiento, sin embargo, fue bueno si quería proteger algoritmos críticos o, por ejemplo, su código de licencia.
Si está buscando un buen Ofuscador, pruebe RemoteSoft .
No hace mucho tiempo había un truco antirreflectante que era efectivo porque el reflector .NET no podía traducir una instrucción particular de IL en el código c #, pero han liberado el parche y la diversión ha terminado.
Xheo Codeveil es un gran producto también. También tienen una solución de Licencias (para crear números de serie, etc. y luego los han activado a través de su propio servidor de activación0
DESCARGO DE RESPONSABILIDAD: No trabajo para RedGate los fabricantes de SmartAssembly. Solo soy un cliente muy feliz que encontró una buena solución asequible.
La elección es muy simple, elija SmartAssembly! No pierda su tiempo o dinero con los otros ofuscadores en el mercado. Gasté más dinero en términos de horas no facturables evaluando productos de la competencia. Todos tenían defectos fatales y eran casi imposibles de depurar. SmartAssembly es una aplicación pulida, fácil de usar, bien documentada y con excelente soporte. Publique una pregunta en su foro y espere una respuesta razonablemente rápida por parte de los desarrolladores reales.
SmartAssembly es más que un obsfuscator. Tiene una serie de características, incluido un generador de informes de fallas altamente personalizable e incorporado que sus clientes pueden enviarle automáticamente por correo electrónico. Puede ver estos informes en su propio servidor o en servidores de puertas rojas. No puedo decirte lo útil que es esto cuando pruebas beta o lanzas el producto a los clientes. También genera archivos de depuración para que pueda depurar cualquier problema posterior a la publicación que pueda encontrar con su producto obstruido.
Si está entregando una aplicación comercial, tiene sentido gastar el dinero en un obsfuscator decente. Una mala elección aquí puede comprometer su propiedad intelectual o peor llevarlo a días de depuración horrible. ¿Cuánto costaría esto en comparación con lo que cuesta SmartAssembly?
Reflector no usa Reflection para mostrar su código fuente. Utiliza los metadatos .Net (que está en formato publicado conocido) para hacer eso.
No hay forma de evitar esto, pero lo vuelves inútil al ofuscar tus asambleas. Después de ofuscar, class / method / fields se renombran, las cadenas en línea en los métodos se cifran, las llamadas al método están ocultas, el flujo de control del método está codificado, etc. Entonces, cualquiera que use Reflector verá mucha basura y no podrá encontrarle sentido a la mayor parte.
DESCARGO DE RESPONSABILIDAD: trabajo para LogicNP Software, los desarrolladores de Crypto Obfuscator
Opcionalmente, puede iniciar su aplicación .Net con una aplicación C ++ nativa. Luego puede ofuscar y encriptar todos sus archivos .net dll.
Utilice la aplicación bootstrap c ++ para descifrar todos sus archivos en matrices de bytes basadas en la memoria (copias exactas de su identidad física).
La forma en que lo hice fue mantener todos mis archivos .net en un archivo cifrado con extensión .DAT. El código C ++ toma los archivos en archivos mapeados en memoria y luego utiliza la API de alojamiento CLR para convertir mi aplicación Native C ++ en una aplicación .NET, que luego uso carga usando
Assembly.Load (byte [] ...)
Por lo tanto, en mi aplicación, evité crear un .NET EXE y convertí mi aplicación C ++ en EXE, así que todos mis formularios, controles, etc. viven en .Net Dll.
No. Reflector mira a su ensamblado como lo haría el tiempo de ejecución de .NET para generar código nativo para ejecutar. Lo mejor que podría esperar sería ofuscar su código y hacerlo (algo) más difícil de entender para el lector.
Algunos pros y contras de realizar la ofuscación se pueden encontrar en ¿Debería ofuscar una aplicación comercial de .Net?