2010-02-09 6 views
18

Wo speichern Programme ihre geheime Lizenz oder installieren zugehörige Informationen? Ich merke, dass oft, wenn Sie ein Programm deinstallieren, AppData-Referenzen löschen, Registrierungen überprüfen, um sicherzustellen, dass keine relevanten Informationen zurückbleiben.Wo speichern Programme ihre geheime Lizenz?

Wenn Sie das Testprogramm erneut installieren, scheint es zu wissen, dass es zuvor installiert wurde. Ich suche keine Möglichkeit, Versuchsprogramme zu knacken, sondern muss etwas Ähnliches implementieren und kann keine guten Informationen dazu finden.

+7

Es gibt unzählige Möglichkeiten, dies zu tun, keiner von ihnen idiotensicher. – Piskvor

+1

nicht vollständig verwandt, aber [revo] (http://www.revouninstaller.com/) kann Sie über einige übrig gebliebene Dateien und Registrierungseinträge informieren. Könnte dir helfen. –

+2

Welche geheime Lizenz? Es gibt keine Lizenz. O_O –

Antwort

18
  • Registry
  • Online
  • Datei im Windows-Ordner mit System wie Name
  • ich sogar apps gesehen, dass nicht verwendete gehackt Betriebssystemvariablen zum Speichern benutzerdefinierter Daten in der Registrierung.
  • Aber die einfachste Methode ist, einen Handler für einen benutzerdefinierten unbenutzten Dateityp wie .sof zu registrieren (wenn das dort ist, wurde es zuvor installiert) Edit 1 Sie müssen den Handle registrieren, um eine bekannte ausführbare Datei auf dem System zu öffnen nicht zu deiner App. Weil Reiniger erkennt, wenn Punkte auf einen nicht mehr vorhandenen App-Standort verweisen. Wie zum Speichern zusätzlicher Parameter wie Datum des Versuchsablaufs können Sie sie als Parameter in den Pfad aufnehmen, z. B .: cmd.exe -o 2010-02-09
+0

Ich würde vorschlagen, etwas mehr wie '.xxxxxnotusedxxxxx' für die Dateiendung zu registrieren. Wann immer ich eine '.sof' Datei verwenden möchte, möchte ich nicht, dass dein Programm es vermasselt. – Earlz

+0

@Earlz: Wenn Sie etwas anderes installieren, wird nur die Erweiterung aktualisiert. Pentium schlägt nur vor, nach seiner Präsenz zu suchen. – Ian

+2

Das ist ziemlich clever. – Cyclone

2

Sie speichern es, wo immer sie können, geheime Dateien, geheime Registrierungsschlüssel. Es gibt kommerzielle Produkte, die diese Art von Schutz bieten, wie ASProtect, Gürteltier usw.

5

Ich habe dies auf zwei Arten behandelt. Erstens, in Windows-Apps, ich habe einen verschlüsselten Registry-Eintrag, der nicht an einem Standard-Speicherort ist, so dass es nicht leicht gefunden wird. Dies ist eine gute Lösung, wenn es Ihnen nichts ausmacht, wenn Sie entweder a) oft umformatieren, was alle Registrierungseinträge entfernt, oder b) Ihre Software auf einer virtuellen Maschine verwenden, die schnell in einen vorbereitenden Zustand zurückversetzt werden kann schnell wieder benutzt werden).

Die bessere Alternative ist eine Online-Registrierungskomponente, die die MAC-Adresse der Maschine abfängt, auf der die Testversion geladen ist. Immer wenn die Testversion neu geladen wird, prüft die Software gegen einen Webdienst, ob die MAC-Adresse schon einmal gesehen wurde. Der einzige Weg, um dies zu erreichen, ist wieder eine virtuelle Maschine mit der Möglichkeit, die MAC-Adresse zu ändern. Wenn Sie jedoch einen Benutzer haben, der so extrem ist, wird er Ihre Testversion trotzdem verwenden.

+0

Ich mag diese verschlüsselte Registry-Idee, aber ist die Verschlüsselung nicht redundant? Wenn sie es nicht finden können, können sie es nicht entfernen. Was verschlüsseln Sie, den Schlüssel oder den Wert und warum ist das wichtig? –

+1

@Steve H .: Sie haben recht, es könnte überflüssig sein, es zu verschlüsseln, aber manchmal gibt es dem Management ein kleines zusätzliches Gefühl der Sicherheit. Sie lieben es, ein Gefühl der Sicherheit zu haben und einen Hash anstelle eines statischen Wertes einzuwerfen, macht sie einfach glücklich (Ja, manchmal bin ich beim Management an Stelle des Benutzers). Im Allgemeinen hasse ich einfach den Wert des Schlüssels, indem ich zum Beispiel die MAC-Adresse der Maschine nehme und sie durch ein MD5 werfe. –

+0

Huch. Also ein ganzes Büro wäre wegen der MAC-Adresse ihres Routers ausgeschlossen? Hardcore. Auch ein FYI: Es ist möglich, MAC-Adressen zu ändern. –

0

Könnte auch versuchen, die Datei oder Ordner ausgeblendet - die meisten Benutzer nicht wissen, versteckte Dateien und Ordner zu offenbaren. Dann kannst du es wirklich überall hinstellen. C:/WINDOWS ist manchmal eine gute Wahl, weil dieses alberne Fenster angezeigt wird, wenn du es zum ersten Mal drückst, das sagt "GEFAHR! BEARBEITE NICHTS IN DIESEM ORDNER BEARBEITEN ODER DEINE OS WIRD VERBESSERN!" Das wird die meisten Dinge vor dem Laien verstecken, aber lass uns den Tatsachen ins Auge sehen, du versteckst nichts vor irgendjemandem, der beim Stack-Überlauf aktiv ist. :)

+1

Putting Ihren Mist in C: \ Windows ist entweder unmoralisch oder einfach nur dumm. –

1

Einige Produkte verwenden ADS (Alternate Data Streams) und verstecken die Daten an verschiedenen Stellen.

Andere werden hinterher "rootkits" husten SONY.

Auch einige werden spezielle Registrierungseinträge erstellen, die nicht einfach gelöscht werden können, wie z. B. Einträge mit NULL in der name.

Es hängt manchmal davon ab, wie gewissenhaft der Entwickler ist.

3

Wahrscheinlich ist die narrensicherste Art der Lizenzierung (wenn richtig gemacht) durch etwas, das der Benutzer physisch hat - irgendeine Art von Hardware-Dongle.

  • sehr schwer zu kopieren/duplizieren
  • nicht abhängig vom Netzzugang
  • manipulationssichere (im Vergleich zu Software)
  • benutzerfreundlich (wenn es richtig funktioniert)
  • Lizenzanzahl Durchsetzung (kann Stecken Sie nicht einfach 1 Dongle in 10 Maschinen auf einmal

Natürlich hat es auch zahlreiche Nachteile:

  • teuer in der Herstellung
  • schwer zu reparieren/austauschen
  • tatsächlich erfordert, dass Sie mit dem Dongle in eine kryptografisch sicheren Art und Weise zu kommunizieren - jede Art von if(dongle_ok()) { do_stuff() } ist eine Einladung für Cracker zu if (1) { do_stuff() } dass über Patch ...
  • ... die spezielle Treiber benötigen ...
  • ... vielleicht sogar eine spezielle Schnittstelle (Ich habe immer noch einen LPT-Dongle, aber keine LPT-Ports; USB < -> LPT saugt)
  • glaube nicht einmal, davon bis zu einer virtuellen Maschine Einhaken (obwohl periphere Unterstützung besser in VMs heute ist)
  • Unterstützung Hölle (sie verbunden ist, ist es nicht kaputt ist? Treiber nicht defekt? Sind die Signaturen/Tasten richtig und nicht abgelaufen?)
  • zerbrechlich, esp. wenn es aus dem Computer-Sticks und/oder hat destruktive Anti-Tamper Mechanismen
  • kann die Kommunikation mit anderen Peripheriegeräte brechen (insb. jene „Pass-Through“ Dinge für diese berüchtigt waren)

Für die meisten Programme, die Nachteile überwiegen bei weitem die Vorteile; Wenn Sie jedoch teure, komplexe Software herstellen (denken Sie an "Produktionsanlagensteuerung"), sind Ihre Kunden eher rigoros in Bezug auf die Lizenzierung (mit anderen Worten, "würden eine einzelne Kopie kaufen (knacken Sie sie wenn nötig) und sie auf 50 Maschinen ausführen Wenn sie damit durchkommen könnten "), und Klagen sind unpraktisch (zu lange dauern, haben Sie nicht viele Beweise, unsicheres Ergebnis), kann dies nützlich sein. (Ich habe nicht gesagt einfach, habe ich?)

+0

Oh, ich liebe es, wenn ich einen zufälligen Entwickler-Treiber installieren muss, um seine Textverarbeitung zu verwenden ... –

+0

@Longpoke: In der Tat überwiegen die Probleme die Vorteile für die meisten universellen Anwendungen. Der Usability-Faktor ist hier zwar gruselig, aber die Sicherheit macht dies in manchen Bereichen immer noch attraktiv. (und ja, es ist alles Sicherheit * Potential *, das leicht zu verschwenden ist - es gibt HW-Dongles, die Sicherheit auf einer Ebene bieten "überprüfen, dass ein USB-Gerät mit ID 12345 verbunden ist"; wie bei jedem Produkt) – Piskvor