2009-02-02 13 views

Respuesta

17

Los modificadores de acceso como internal y sealed no tienen nada que ver con la ofuscación o la seguridad del código, simplemente le dicen a otras clases cómo interactuar (o no) con ellos.

Al final del día, no hay nada que pueda hacer para prevenir la piratería. Cualquier cosa creada por un ser humano puede ser rota por otro. Hay un montón de preguntas sobre SO que tratan con claves de productos, mantenimiento de software seguro, etc. que puede encontrar si usa el mecanismo de búsqueda en la esquina superior derecha. Todas las respuestas cubren algunas ideas básicas que cualquier persona con un poco de sentido le dirá:

  1. Sólo poner suficiente esfuerzo en sus medidas contra la piratería para hacer cracking del software un poco menos conveniente que romper la tarjeta de crédito. Si eso es realmente difícil de hacer, está cobrando demasiado por su base de clientes.
  2. Si te enfocas en construir relaciones positivas con tus clientes en lugar de asumir que son criminales, estarán más dispuestos a darte dinero.
  3. La mayoría de los clientes, personas y especialmente empresas, no tienen ningún interés en abrir sus ensamblajes y tratar de descubrir cómo salirse con la suya sin pagarle. Para las personas, no pagarían de todos modos por lo que no estás perdiendo una venta; y las empresas no arriesgarían montañas de efectivo en problemas legales por el costo de algunas licencias de software.

Investigación la criptografía de clave pública/privada y elíptica y encontrará maneras de asegurar que su algoritmo de clave, pero sólo va a evitar que se agriete la clave , no sin pasar por ella.

+0

Lo que Rex M dice es verdad. Use un esquema de cifrado de clave pública/privada para generar sus claves. Ofusca tu código con algo como Dotfuscator. Pero, en última instancia, las personas aún pueden descifrarlo si lo desean modificando algunos saltos condicionales en el ejecutable. – mmcdole

+1

Estoy de acuerdo con su 3er punto, pero ¿qué ocurre con un individuo/compañía que solo compra una licencia y la usa en múltiples máquinas, para esto es necesaria cierta protección, ¿verdad? –

0

Rex es correcto, internal sealed class no ocultará nada. Use un hash de encriptación unidireccional (por ejemplo, MD5CryptoServiceProvider) para proteger contraseñas y claves.

2

Estoy de acuerdo con Rex M, debe considerar el uso de un algoritmo de encriptación asimétrica, como la criptografía de curvas elípticas para evitar los keygens. Y si está interesado en una solución comercial, intente con Ellipter; utiliza curvas elípticas y tiene algunas funciones útiles, como información del producto y datos de caducidad que se integran en las claves de serie generadas.

+0

O cualquier sistema PGP, realmente. Coloque la clave pública en la aplicación y permita que el desarrollador de la aplicación (o la compañía) mantenga la clave privada. – Arafangion

Cuestiones relacionadas