Frage

Ich bin Codierung eine Software auf Java und ich fast fertig, ich würde gerne wissen, wie können wir eine Testversion, die Arbeit zum Beispiel für 30 Tage erstellen, weil ich es für einige Unternehmen senden

so wie es wie Shareware oder Demo-Produkte zu machen, können wir auch den Zugang zum .class- in der JAR-Datei blockieren?

Danke

War es hilfreich?

Lösung

Es gibt ein Produkt namens Rampart, die Sie für Ihre Java-Anwendung machen eine Testversion lässt. Es dauert nur ein paar Minuten, und es funktioniert ziemlich gut.

Sie können ihn unter http://Rampartlicensing.com

Andere Tipps

Hier ist eine Idee:

  1. Erstellen Sie eine Datenbank (wie eine SQL Server-Datenbank), die auf dem Web öffentlich zugänglich ist. Es wird eine Liste von „Testversion“ Lizenzschlüssel halten. Sie können das gleiche System für die Vollversion Lizenzschlüssel verwenden, wenn das Produkt gekauft wird.

  2. Wenn Sie Ihre Java-Software zum ersten Mal ausgeführt wird, wird es eine Testlizenz verursacht erstellt werden, die in der Datenbank gespeichert werden

  3. Die Java-Software prüft, ob eine gültige Lizenz jedes Mal ausgeführt wird. Das Datum, die Lizenz wird in der Datenbank gespeichert erstellt, so spielt es keine Rolle, was die Client-Uhren sind so eingestellt bei.

  4. Die Software nicht mehr funktioniert, wenn die Lizenz abgelaufen ist

Standard-Windows-Software kann die CPU-ID und die Verwendung nachschauen, dass im Rahmen der Lizenz, so dass jeder Computer nur die Testsoftware einmal laufen kann. Wer weiß, wenn es eine "JVM-ID" von einer Art ist, die für diesen Zweck verwendet werden kann?

Vielleicht gibt es freie oder Open-Source-Lizenz-zugehörige Code da draußen schon?

Warum nicht nur schwer Code ein Ablaufdatum in das Studienprogramm, so dass Sie müssen nicht weiter unterstützen? Sie könnten in Haupt setzen diese ().

// 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);
}

Dies ist, wie Microsoft ihre groß angelegte Beta-Software verteilt. Sie haben es nur geben, ein Ablaufdatum.

Wenn Sie sprechen über Reverse Engineering zu verhindern oder den Code ändern, können Sie nicht. Sie könnten das kompilierte Programm verschleiern, aber das wird die Menschen nicht aufhören, die Ihren Code Reverse Engineering ohnehin wäre.

Ich mag nur etwas wirklich einfach tun und nur hart genug, so dass Nicht-Programmierer nicht in der Lage sein würde, um es herauszufinden.

Ich würde so etwas wie Schreiben auf eine die Anzahl der Millisekunden-Datei, wenn das Programm zum ersten Mal in einem 64-Bit lang in binär in einer Datei installiert wurde. Und haben Sie Ihre Hauptklasse Kontrolle und Durchsetzung der Frist. Ja Leute können ihre Uhren zu arbeiten um dies zu ändern, aber wirklich wollen Sie nicht sowieso zu den Menschen, verkaufen. Auch sicherstellen, dass die aktuelle Zeit streng innerhalb von 30 Tagen nach der Installation ist. Die meisten Benutzer werden ihre Uhren zurück Bereits ein Jahr festgelegt und es funktioniert mit den meisten Programmen, weil sie nur eine einfache kleiner als die Differenz Prüfung tat. Sie sollten auch prüfen, ob der Unterschied in der Anzahl der Tage von dem Strom als 0 auch größer zu installieren ist.

Wenn Sie das Gefühl haben mehr Schutz als das brauchen, dann haben Sie ein Geschäftsmodell Problem mehr als eine Software ein. Sein im Grunde unmöglich, es unhackable zu machen, vor allem, da Sie nur die Klassendateien extrahieren und zu demontieren.

Das Problem mit dem Versuch, die Daten zu beschränken, ist, dass die naive Lösung nur das Datum überprüft leicht, wenn die Person setzt ihre Systemuhr täuschen zurück. Ich arbeitete mit einem Mann, der gerade eine virtuelle VMware-Box gehalten zeitlich begrenzte Software für den Betrieb. Ein besserer Ansatz wäre es, die Zeit der letzten Zeit aufzuzeichnen, wurde ausgeführt, und wenn die Zeit vor dieser Zeit geht immer, wissen Sie, die Uhr war Satz zurück und Sie können den Vorgang abzubrechen. Das Problem besteht darin, herauszufinden, wie diese Datei irgendwo beiseite zu schaffen, wo der Benutzer nicht ein Überschreiben es finden kann. Auch hier könnte der Benutzer in der VMWare oder VirtualBox-Umgebung, nur zu einem früheren Snapshot-Rollback.

Mit anderen Worten, können Sie einige der Menschen, einen Teil der Zeit begrenzen, aber nicht alle Menschen die ganze Zeit.

Ich arbeite auf einer kommerziellen Java-Software und ist geschützt.

Ist Mandatierung eine Internetverbindung akzeptabel in Ihrem Fall? In unserem Fall macht unsere Software nur dann Sinn, wenn eine Internetverbindung gibt es und daher können wir das Reverse Engineering, indem Sie einfach folgenden dieses Mantra unmöglich machen:

machen ausreichender Teil der Berechnung auf der Serverseite passiert

Es gibt nichts dagegen kann ein Angreifer tun außer:

  • umschreiben den Teil Ihrer Software, die auf der Server-Seite geschieht

  • pirating den Server

Wenn unsere potenziellen Nutzer sind nicht zufrieden mit der Tatsache, dass unsere Software Mandate ein always-on Internet-Verbindung können sie entweder kaufen oder Pirat einen unserer Konkurrenten minderwertiges Produkt.

Denken Sie daran, auf diese Weise:. Niemand jemals in Spielen auf Blizzards battle.net mit gefälschtem / generierte Lizenzschlüssel erfolgreich

Natürlich könnte ein Pirat zu fälschen versuchen, die ganze battle.net, aber dann die raubkopierte Version würden die Leute spielen in nicht zulassen, dass, sagen wir, die reale WoW Wirtschaft noch zu konkurrieren auf dem realen Starcraft Leiter, usw.

Warum hat niemand geschafft, das zu tun. , weil Blizzard ausreichend Teil der Berechnung auf der Serverseite passieren

ausreichend Teil der Berechnung auf der Serverseite geschieht effektiv bedeutet:. "gute Spiele Pirat"

Je mehr wir auf eine stets vernetzten Welt bewegen, desto einfacher ist es, Anwendungen gegen Piraterie zu schützen. Das Gleiche gilt für Inhalte (DRM), zum Besseren oder schlechter.

Ich überprüfe Datum von dem, was ein Atomzeit-Server mich am Anfang auf dem Code senden. Dann werde ich dieses Datum mit einem bestimmten Datum vergleichen. Wenn das Atomzeit weniger, dann 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();
        }
    }
}

In Bezug auf die Klassendateien, können Sie nicht den Zugang zu ihnen blockieren, aber Sie können ihre de-kompilierte Version völlig unlesbar von Verschleierungs .

Ich habe Erfolg mit Echten Lizenz in der Vergangenheit. Es hat eine Unterstützung für eine Probezeit. Verwenden Sie es in Kombination mit einem Verbergungstool wie ProGuard und es macht es sicherlich nicht trivial zu knacken.

Ich empfehle funktionelle limitions. Ich habe wenig post-it-Programm beachten. Das Programm arbeitet voll, aber Sie können nur 10 Noten in nicht registrierten Modus erstellen. Also versuche ich nett zu Benutzer zu sein. Kein Datum limitions, Nagschirme oder some anderes Übel. Nur kleine Statuszeile, die limition Text und und registriert Taste hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top