Heikel: Programmlizensierung - Reading und Writing in Windows überschreiben?
-
noch ne andere frage, kann man feststellen, von welcher anwendung gerade ein Datenstream geschrieben wird? denn dann müsste man nicht direkt in die tiefen des betriebssystems, sondern ich könnte prüfen, ob von der anwendung XYZ geschrieben werden soll, und diese dann blocken. dazu müsste ich auch nur die ersten paar zeichen überprüfen und wüsste ausserdem, dass der header nicht in irgendeiner datei in genau dieser form vorkommt. denn die dateimuster der von diesem programm ausgehenden dateien sind bekannt!
-
Hallo,
ich halte die gesamte Lizensierungsystem für falsch. Wenn der Kunde die Demo??? in Plaintext hat und dieser angezeigt wird, gibt es etliche Möglichkeiten den zu klauen, würde ich mal behaupten. Da wären ganz einfach die Zwischenablage und z.B. kompliziertere Dinge wie Code/DLL-Injection um an den Text zu kommen und ihn dann nach Beenden des Programms abzuspeichern. Und jetzt nicht kommen mit "das Programm läuft dann halt immer im Hintergrund". Das wäre ganz schlecht.

Gruß
HookforLicense
-
naja, zwei punkte:
- plaintext ist im programm nicht anzuzeigen, damit scheidet die zwischenablage aus
- die kunden werden höchstwahrscheinlich keine programmierer sein, die sich supergut mit der winapi auskennen. wenn sie es doch auf dem weg schaffen, sei es ihnen gegönnt.ist es denn nun möglich, den schreibstream einer bestimmten anwendung zu blocken??
-
DrOetker schrieb:
naja, zwei punkte:
- die kunden werden höchstwahrscheinlich keine programmierer sein, die sich supergut mit der winapi auskennen. wenn sie es doch auf dem weg schaffen, sei es ihnen gegönnt.Wenn das Deiner wirklichen Meinung entspricht, warum willst Du dann auf diese umständlichste Weise irgendwie versuchen, Deinen PlainText zu schützen?
Überlege Dir lieber ein vernünftiges System anstatt den kompletten Lese- und Schreibforgang zu hooken!Es geht doch überhaupt nicht darum, dass der Anwender API-Kenntnisse hat oder nicht, sondern dass Du mit dieser Methode die Rechnerperformance in den Keller verlagerst!
-
Zu Punkt 2: Ich habe mir ja schon eine andere Möglichkeit überlegt:
Überwachen, ob das Programm etwas schreibt, wenn ja, die Datei prüfen, und ggf. löschen. Dazu muss man wissen, ob man soetwas machbar ist.Zu Punkt 1: Es ist ganz einfach extrem unwahrscheinlich, dass jemand das auf diese Weise knacken wird, und zwar aus genannten Gründen. Ist es nicht verschlüsselt, muss er nur auf "Speichern" klicken und fertig.
Zweitens muss ein solches Projekt in einem erträglichen Kosten- Nutzenverhältnis stehen, ganz einfach. Das gilt übrigens auch im Umkehrschluss, das Ding zu knacken würde wohl mehr Kosten verursachen, als eine Lizenz zu kaufen, also wird es mit 99prozentiger Wahrscheinlichkeit nicht passieren, das müsst ihr nun einfach so hinnehmen!Außerdem: ich will mir ja gerade ein vernünftiges System überlegen, deshalb frage ich ja auch hier um Rat. Aber für die Situation fällt mir ganz einfach nichts anderes ein!
- An die Ladefunktionen von XYZ kommt man nicht ran - An die Speicherfunktionen kommt man nicht ran - An die Kontextmenüs kommt man nicht ran - Datei darf auf Platte nicht im Plaintext liegen und nicht aus XYZ mit der integrierten Speicherfunktion geschrieben werden.Was bleibt also noch, ausser in irgendeiner Weise den Schreib und Ladevorgang zu überwachen? Nun gilt es eben, diese Überwachung einzig und allein an XYZ zu koppeln sowie sicherzustellen dass sie extrem einfach gehalten ist, um die Performance nicht zu drücken, und ich wäre für Vorschläge dankbar.
-
Für Dein Problem das einfachste ist:
Du verwendest einen Hardware Dongle mit Crypto-Chip (ca. 40 Eur), der kann dann das De-/Entschlüsseln der Daten auf der Festplatte vornehmen. Ist dieser Dongle nicht da, geht es halt nicht.
Das ist der sicherste Schutz.
Siehe:
http://www.safenet-inc.com/products/sentinel/hardware_keys.asp
http://www.safenet-inc.com/products/sentinel/sentProdHKFAQ.asp
-
Ich kann Jochen nur zustimmen.
Ihr solltet für die Übergangszeit eine fertige Lösung einkaufen, ud Du solltest lieber Deine Zeit darauf verwenden, einen passenden Ersatz hochzuziehen.Du verletzt Regel 1 und 2 des Lizenzschutzes:
(1) Verärgere Deine zahlenden Nutzer nicht
(2) Langfristiger Schutz ist nur über Updates und Support möglichNicht-technisch:
Wenn ihr keine Erfahrung mit sowas habt, dann kostet das eine Menge Zeit (sprich Geld), und ihr seid schneller geknackt als ihr denkt. Ein solches Programm würde ich nicht in die Firma lassen - es sei denn, wir sind auf Gedeih und Verderb darauf angewiesen. Nicht nur wegen des technischen Aufwands, sondern weil es eine Menge über euch verrät.
Das sich die angepeilte Lösung in einigen Staaten am Rande der Legalität bewegen mag ist da nur eine Fußnote.Daß die Lizenzkosten niedriger sein sollen als der Crack-Aufwand verwundert mich. Wenige Kunden, niedriger Preis, aber hochkomplizierter Kopierschutz - wie geht das?
Technisch:
Bei deinem Ansatz mußt du damit rechnen, regelmäßig Anpassungsarbeiten (für spezielle Systemkonfiguration, neue Sicherheits-Updates usw.) durchzuführen.
Ein besserer Ansatz wäre, XYZ.exe zu patchen und das laden/speichern auf 'anständige' Funktionen umzuleiten. Wie das geht findest DU auf jeder Hackerseite

-
okay, die hooking-variante ist dann gekippt.
hat noch einer etwas ahnung von diesen hardware-dongles, und kann mir die funktionsweise etwas genauer erklären? kann man mit diesem ding wirklich genau das abdecken, was gefordert ist?
-
Ich denke doch die Urheber der Site auf welche JOchen gelinkt hat und welche du bestimmt schon aus Interesse besucht hast, ist der schnellste und vor Allem auch der verlässlichste Auskunftsdienst was derlei Fragen anbetrifft. Jochen hat ja schliesslich auch auf eine FAQ gelinkt zu dem Thema..
-
Die Dongle-Lösung verschlüsseln die EXE und versehen sie mit einem Stub der
(1) Vorhandensein eines gültugen Dongles prüft und bei erfolg (2) den "Rest" der EXE entschlüsselt und ausführt.Erfüllt also nicht deine originalen Anforderungen (verschlüsseln der Textdateien), sondern reguliert den Zugriff aufs Programm - sollte aber auch funktionieren.
Das bietet auch nicht den "vollen" Schutz der per Dongle möglich ist (integration in Anwendung bringt mehr)
-
peterchen schrieb:
Die Dongle-Lösung verschlüsseln die EXE und versehen sie mit einem Stub der (1) Vorhandensein eines gültugen Dongles prüft und bei erfolg (2) den "Rest" der EXE entschlüsselt und ausführt. Erfüllt also nicht deine originalen Anforderungen (verschlüsseln der Textdateien)
Da kennst Du den Dongle aber schlecht!
Der erfüllt zu 100% die Anforderungen.
Auf dem Dongle befindet sich ein CHiffrier-Chip den man per API ansprechen kann. Damit kannst Du dann selber ver- und entschlüsseln was Du willst...Das obere, was Du zitierst, ist zwar auch möglich, aber würde hier ja nur als "Abfallprodukt" verwendung finden (wenn man will).
-
Der Firma habe ich schon eine Frage geschickt.
Mir ist das Ganze jetzt etwas unpräzise, weil ich es nicht ganz verstehe - also den Weg.Wir geben also verschlüsselte Dateien raus, die nur mit dem Dongle entschlüsselt werden können, und den Dongle.
Wie läuft das denn nun, dass man die Datei nicht speichern kann und bestimmen kann, von wo sie geladen wird?Setzt sich der Dongle auch tief ins Filesystem, oder was? Irgendwie ist mir die Verfahrensweise noch nicht ganz klar..
-
Auf dem Dongle befindet sich ein CHiffrier-Chip den man per API ansprechen kann. Damit kannst Du dann selber ver- und entschlüsseln was Du willst
Das ist natürlich neckisch

(Trotzdem bleibt bei Verschlüsselung der EXE ohne Source-Eingriff eine generische Attacke möglich)
@DrOetker: du verschlüsselst die EXE, nicht die Datendateien (solange du die EXE nicht ändern kannst)
-
das bedeutet, die exe von XYZ wird dann vom dongle gestartet? oha... hm. ich weiss nicht, das soll letztendlich performanter sein als eine ähnliche softwarelösung?
-
Die EXE wird von PLatte gestartet, bekommt aber einen unverschlüsselten Stub, der das Dongle benutzt um die "Haupt-EXE" (mehr oder weniger "im RAM") zu entschlüsseln.
Performance sollte praktisch die gleiche sein - DLL-Suche + Plattenzugriffe machen beim Laden einer EXE den Löwenanteil (oft mit einem Faktor >10 vor relocation etc.). Ich habe aber keine Erfahrung mit der Sentinel-Lösung.
Das ist schneller implementiert, sicherer und letztendlich billiger als eine selbstgebaute Software-Lösung