Pregunta

estoy codificación de un software en java y casi terminado, me gustaría saber cómo podemos crear una versión de prueba que el trabajo, por ejemplo, durante 30 días, porque voy a enviarlo a algunas empresas

Entonces, ¿cómo lo hacen como shareware o software de prueba, también podemos bloquear el acceso a la .class en el archivo jar?

Gracias

¿Fue útil?

Solución

Hay un producto llamado Rampart que le permite hacer una versión de prueba para su aplicación Java. Sólo se tarda un par de minutos y funciona bastante bien.

Se puede encontrar en http://Rampartlicensing.com

Otros consejos

He aquí una idea:

  1. Crear una base de datos (como una base de datos de SQL Server) que está disponible públicamente en la web. Asimismo, mantendrá una lista de claves de licencia "prueba". Se puede utilizar el mismo sistema de claves de licencia de la versión completa cuando su producto es comprado.

  2. Cuando el software de Java es la primera carrera, que va a causar una licencia de prueba que se cree que será almacenada en la base de datos

  3. Los controles de software de Java para una licencia válida cada vez que se ejecute. La fecha en que se creó la licencia se almacena en la base de datos de modo que no importa lo que los relojes de los clientes se fijan en.

  4. El software deja de funcionar cuando ha caducado la licencia

ventanas de software estándar puede buscar el ID de la CPU y el uso que, como parte de la licencia, por lo que cada equipo sólo puede ejecutar el software de prueba una vez. ¿Alguien sabe si hay una "JVM ID" de algún tipo que puede ser utilizado para este propósito?

Tal vez hay licencia relacionada con el código libre o de código abierto por ahí ya?

¿Por qué no codificar una fecha de caducidad en el programa de prueba por lo que no tiene que seguir apoyando a él? Se puede poner esto en main ().

// Die after October 1, 2010
Calendar expireDate = Calendar.getInstance();
// January is 0 (y, m, d)
expireDate.set(2010, 9, 1);
// Get current date and compare
if (Calendar.getInstance().after(expireDate)) {
  // Die
  System.exit(0);
}

Esta es la forma en que Microsoft distribuye su software beta gran escala. Ellos sólo dan una fecha de caducidad.

Si estamos hablando acerca de la prevención de ingeniería inversa o modificar el código, no se puede. Se podría ocultar el programa compilado, pero esto no va a detener a las personas que serían ingeniería inversa sobre su código de todos modos.

Yo sólo haría algo realmente sencillo y lo suficientemente fuerte como tal que no programadores no serían capaces de averiguarlo.

lo haría algo así como escribir en un archivo el número de milisegundos cuando el programa se instala por primera vez en un largo de 64 bits en binario en un archivo. Y tienen su cheque de la clase principal y hacer cumplir el límite de tiempo. Si la gente puede cambiar sus relojes para solucionar este problema, pero en realidad no quieren vender a las personas de todos modos. Asegúrese también de la hora actual es estrictamente dentro de los 30 días de la instalación. La mayoría de los usuarios se acaba de establecer sus relojes una año y funciona con la mayoría de los programas, ya que acaban de hacer un simple menos que el cheque diferencia. También debe comprobar que la diferencia en el número de días a partir de la corriente para instalar también es mayor que 0.

Si usted siente que necesita más protección que eso, entonces usted tiene un problema de modelo de negocio más que un solo software. Es básicamente imposible hacerlo unhackable, especialmente ya que sólo se puede extraer y desmontar los archivos de clase.

El problema con tratar de limitar las fechas es que la solución ingenua de sólo la comprobación de la fecha se deja engañar fácilmente si los conjuntos persona de nuevo su reloj del sistema. Trabajé con un chico que tenía una caja virtual VMWare sólo para la ejecución de software de tiempo limitado. Un mejor enfoque sería para registrar el tiempo de la última vez que se ejecutó, y si el tiempo va nunca antes de ese tiempo, usted sabe que el reloj se retrasó y se puede abortar. El problema es encontrar la manera de esconder que en algún lugar de archivos donde el usuario no puede encontrar una sobrescritura ella. Una vez más, en el entorno de VMWare o VirtualBox, el usuario podría simplemente volver a una instantánea anterior.

En otras palabras, se puede limitar algunas de las personas algunas de las veces, pero no todas las personas todo el tiempo.

Yo trabajo en un software comercial de Java y se encuentra protegido.

Se ordena una conexión a Internet aceptable en su caso? En nuestro caso, nuestro software sólo tiene sentido si hay una conexión a Internet y por lo tanto podemos hacer ingeniería inversa imposible, simplemente siguiendo este mantra:

hacen parte suficiente de la computación sucede en el lado del servidor

Hay no en contra de este un atacante puede hacer además:

  • reescribir la parte del software que está sucediendo en el lado del servidor

  • piratear el servidor

Si los usuarios potenciales no están contentos con el hecho de que nuestros mandatos de software de una conexión permanente a Internet que pueden comprar ya sea uno o pirata del producto inferior de nuestro competidor.

Piénsalo de esta manera:. Nunca nadie logró jugar en battle.net de Blizzard utilizando las teclas de falso / licencia generada

Por supuesto, un pirata podría tratar de falsificar todo el battle.net, pero entonces la versión pirata no permitiría que la gente a jugar en, por ejemplo, la economía real WoW ni para competir en la escalera real de Starcraft, etc.

¿Por qué no hizo-uno logró hacer eso:. debido a la ventisca hizo parte suficiente de la computación sucede en el lado del servidor

parte suficiente de la computación sucediendo en el lado del servidor de medios con eficacia:. "buenos juegos piratas"

Cuanto más nos acercamos a un mundo siempre-conectado, más fácil es para proteger aplicaciones contra la piratería. Lo mismo para el contenido (DRM), para mejor o peor.

puedo comprobar la fecha de lo que un servidor de tiempo atómico me enviará al principio en el código. A continuación, voy a comparar esa fecha con una fecha específica. Si el tiempo atómico es menor, entonces System.exit (0).

public static GregorianCalendar getAtomicTime() throws IOException {
    BufferedReader in = null;

    try {
        URLConnection conn = new URL("http://64.90.182.55:13").openConnection();
        GregorianCalendar calendar = new GregorianCalendar();
        conn.setConnectTimeout(1000);
        in = new BufferedReader(new InputStreamReader(conn.getInputStream()));

        String atomicTime;
        while (true) {
            if ((atomicTime = in.readLine()).indexOf("*") > -1) {
                break;
            }
        }
        //System.out.println("DEBUG : " + atomicTime);
        String[] fields = atomicTime.split(" ");

        String[] date = fields[1].split("-");
        calendar.set(Calendar.YEAR, 2000 + Integer.parseInt(date[0]));
        calendar.set(Calendar.MONTH, Integer.parseInt(date[1]) - 1);
        calendar.set(Calendar.DATE, Integer.parseInt(date[2]));

        // deals with the timezone and the daylight-saving-time
        TimeZone tz = TimeZone.getDefault();
        int gmt = (tz.getRawOffset() + tz.getDSTSavings()) / 3600000;
        //System.out.println("DEBUG : " + gmt);

        String[] time = fields[2].split(":");
        calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(time[0]) + gmt);
        calendar.set(Calendar.MINUTE, Integer.parseInt(time[1]));
        calendar.set(Calendar.SECOND, Integer.parseInt(time[2]));
        return calendar;
    } catch (IOException e) {
        throw e;
    } finally {
        if (in != null) {
            in.close();
        }
    }
}

En cuanto a los archivos de clase, no se puede bloquear el acceso a ellos, pero se puede hacer su versión de compilado totalmente ilegible ofuscación .

He tenido éxito en el uso verdadera licencia en el pasado. Tiene un soporte para un período de prueba. Usarlo en combinación con una herramienta de ofuscación como ProGuard y que sin duda hace que sea no trivial de roer.

recomiendo limitions funcionales. Tengo poco puesto que la nota del programa. El programa funciona plenamente, pero se pueden crear sólo 10 notas en el modo no registrado. Así que trato de ser amable con el usuario. No hay limitions fecha, pantallas de la queja o calle detrás del mal otra cosa. Sólo pequeña línea de estado que tiene texto de limitación y y el botón de registro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top