usar create codigo java licensing reverse-engineering copy-protection cracking

create - ¿Cómo protejo contra copia mi aplicación Java?



textarea java netbeans (6)

Cada uno tiene su propia opinión sobre este tema, así que espere muchos consejos diferentes. Aquí está mi opinión sobre esto:

  • 1. Ofuscar su código (se recomienda proguard)
  • 2. Ofrezca una versión GRATUITA con todas las capacidades para un período de prueba
  • 3. Use una rutina de número de serie basada en el correo electrónico de los usuarios registrados u otra información única

En general, tendrá que aceptar una cierta cantidad de piratería, pero si su solicitud es válida, la gente la pagará. Las personas honestas serán honestas y la protección contra copia no hará que las personas deshonestas sean honestas.

Quiero vender mi aplicación Java a través de PayPal. Cuando se recibe un pago, el cliente recibe por correo un enlace de descarga único a mi solicitud.

Mi pregunta es, ¿cómo evito que las personas envíen el archivo .jar a sus amigos / lo carguen en Internet?

Obviamente necesito algún tipo de verificación en la aplicación que solo permita que se ejecute en una computadora. Y ese es otro problema, no quiero que un cliente tenga limitaciones en una computadora, deberían poder ejecutarlo en casa y trabajar, etc.

Tal vez algún tipo de cd-key haría el truco? ¿Hay algún recurso de cd-key para Java? ¿O debería construir mi propio algoritmo? Aquí viene otro problema, la ingeniería inversa ...

Por favor, ayúdame a resolver esto :)



En mi opinión, si no sabe exactamente cómo protegerá su código fuente de manera eficiente, entonces no intente juntar algo basado en hardware. Será demasiado fácil de romper, y lo más probable es que simplemente moleste a sus clientes.

Le sugiero que eche un vistazo a cómo Atlassian hace esto. Sucede que venden software de Java, y aparentemente lo hacen bastante bien. http://www.atlassian.com/ Intente descargar, por ejemplo, JIRA y jugar con una instalación. Esto le dará una buena idea de cómo funciona su esquema de licencias y lo que los usuarios pueden esperar razonablemente del software profesional.


En mis viejos días de c ++, me armé de armas para enfrentar la piratería usando la protección del código de la dirección MAC, muy bien y realmente nadie robó mi software para mejorar la protección de la dirección mac porque siempre forzo al sistema operativo a volver a leer la mac real evitando las anulaciones de mac. Eso fue en la codificación C ++ con acceso directo a los recursos locales.

ese no es el caso hoy en día, ni en las aplicaciones java en las que el código está ubicado en archivos .class que siempre pueden descodificarse al código fuente original (sí, es posible y es muy fácil encontrar herramientas para hacerlo).

Creo que, como resumen, es imposible proteger los programas de Java contra la piratería. No encuentro manera como los viejos días dorados de C ++ :)


En realidad, hay una serie de soluciones de administración de licencias que pueden ayudar, pero el problema REAL es que todas pueden ser resquebrajadas. He probado personalmente lo más caro a lo más barato. Finalmente, hice rodar la mía y verifico los detalles de la PC del software (identificación del mac, etc.) con los detalles registrados en mi servidor cada vez que se ejecuta el software. Debido a que mi software está estrechamente vinculado a Internet, está bien, pero estoy seguro de que se romperá uno de estos días.

Lo que probablemente necesite es vigilar Internet regularmente y encontrar dónde se piratea su software, en contra de la creencia popular de que en realidad puede detenerlos en la mayoría de los casos. Simplemente envíe un DMCA al sitio web de descarga (la mayoría de ellos cumplirá), y podrá eliminar su software en aproximadamente el 80% de los casos. Lo he hecho y lo he experimentado en mi software. Algunas personas no eliminan, pero he encontrado que en los 1.5 años que he estado haciendo esto, mis ventas han mejorado.

También utilizo un servicio, http://spotpiracy.com, que me ayuda a encontrar estos enlaces aparte de mi propia investigación manual (tengo un tipo dedicado a esto). :)


La forma más común de manejar esto es: el cliente le da dinero, usted genera una clave de desbloqueo única y se la proporciona al cliente. La clave debe ser una clave de desbloqueo válida y debe codificar la información de identificación del usuario. El cliente utiliza esa clave para instalarla en la cantidad de computadoras que desee o la licencia lo permite.

No te preocupes por la ingeniería inversa. Su producto, si es popular, será pirateado. Encontrará claves de desbloqueo en línea si se ve lo suficientemente duro. Si lo desea, puede tomarlo como un cumplido: a alguien le gustó su software lo suficiente como para robarlo. Confort frío, lo sé, pero la alternativa es meterse en una carrera de armamentos con los piratas, y no ganarás eso. Al final, un pequeño porcentaje de la población robará software y no se puede hacer mucho al respecto. Puede utilizar la información de identificación de la clave, si su esquema es lo suficientemente fuerte, para rastrear quién lanzó la clave en primer lugar.