Teile des Compliats verschlüsseln und erst beim Laden von der Platte dechiffrieren
-
Hallo Zusammen,
wünsche zunächst mal Allen einen Guten Rutsch und ein erfolgreiches neues Jahr!
Nun das Problem: Ich möchte das gesamte Programm bzw. ggf. auch nur Teile davon verschlüsseln. Die verschlüsselten Teile sollen erst beim Laden im Speicher entschlüsselt und dann ausgeführt werden! Verschlüsselung ist kein Problem - nur wie sag' ich dem Programm (genauer der exe), dass es erst entschlüsselt werden muß und wie verschlüssel ich es (evt. direkt beim Compilieren?)...
OK - hilfreich wäre für mich schon, falls es möglich sein sollte, ein File zu laden und dessen Inhalt als Teil des programms auszuführen, so dass ich vorher noch entschlüsseln kann Geht das und wenn ja wie? und wie erezug ich dann diesen Programmteil?
Bin für jeden Tip dankbar!
-
Es gibt diverse Tools die genau dies machen... warum willst Du es selber machen?
-
vielen Dank für die Antwort!
ich kenne diese tools nicht. falls es eines gibt, dass ich einsetzen kann, würde ich es ggf. tun. was gibt's denn da und wo finde ich etwas Brauchbares und wie sieht's mit der Lizenzsitutaion aus? Gibt's etwas gutes Freies, dass du empfehlen kannst?
-
Ich nutze für solch einen Fall WiBu-Key in Verbindung mit einem Dongle.
BTW: Warum willst Du das? Was erhoffst Du Dir?
Wer einen Debuggerbenutzt kann sich auch direkt in Dein dechiffriertes Kompilat einhaken.
-
Teile der Software sollen normalerweise gesperrt sein, aber per Passwort freigeschaltet werden können.
ok, es soll auch nur ein gewisser Schutz sein. klar einen absolut sicheren Kopierschutz gibt es nicht. Letztlich kann Software immer gehackt werden; es soll eben nur nicht zu einfach sein.
Gibt es eine Lösung ohne Dongle?
-
Und warum musst Du dazu den Code verschlüsseln?
Dazu langt doch einfach die entsprechenden Codepassagen nicht zur Auführung zu bringen.
-
klar - das ist die einfache Lösung. Geht auch, aber um das dann zu umgehen, genügt es ein paar Bytes Sourcecode mit NOP zu überschreiben
. Das erscheint mir als Schutz dann doch etwas zu albern. Ein bischen mehr Arbeit sollte schon nötig sein, um den den Code unauthorisiert freizuschalten...
-
was is denn das für ne besondere Software, im allgemeinen wird sich keiner den aufwand machen und software zu decompilieren um dann ne "vollversion" zu haben. der sicherste schutz ist immer noch wenn der code erst gar nicht vorhanden ist.
-
Sylvestri schrieb:
klar - das ist die einfache Lösung. Geht auch, aber um das dann zu umgehen, genügt es ein paar Bytes Sourcecode mit NOP zu überschreiben
. Das erscheint mir als Schutz dann doch etwas zu albern. Ein bischen mehr Arbeit sollte schon nötig sein, um den den Code unauthorisiert freizuschalten...
Man kann es aber auch ein wenig schwieriger machen...
Nette Fallen zum Beispiel, die "merken", dass nur ein paar NOOPs eingebaut wurden und die azyklisch zuschlagen.
Wer weiß schon welcher Semaphore oder welches Event für das Programm wichtig ist oder für den Softwareschutz verwendet wird...Alles eine Frage wie weit man geht und ob man nur Skriptkiddies abschrecken will, einen etwas besseren Programmierer, oder wirklich einen "echten" Softwareaschutz braucht.
Für letzteres würde ich nach meiner Erfahrung nur zum Dongle greifen.BTW: Was nützt das verschlüsseln wenn irgendwann doch das Ganze dechifriert vorhanden ist?
-
CTecS schrieb:
was is denn das für ne besondere Software, im allgemeinen wird sich keiner den aufwand machen und software zu decompilieren um dann ne "vollversion" zu haben. der sicherste schutz ist immer noch wenn der code erst gar nicht vorhanden ist.
ok - aber dann müßte man zwei Versionen pflegen und verwalten und das ist nicht immer gewünscht.
Martin Richter schrieb:
Alles eine Frage wie weit man geht und ob man nur Skriptkiddies abschrecken will, einen etwas besseren Programmierer, oder wirklich einen "echten" Softwareaschutz braucht.
Für letzteres würde ich nach meiner Erfahrung nur zum Dongle greifen.Im Prinzip soll etwas Ähnliches wie ein Dongle verwendet werden - nämlich eine Smartcard, die dann zum Entschlüsseln benötigt wird. Und der entschlüsselte Code soll dann direkt gestartet werden.
Martin Richter schrieb:
BTW: Was nützt das verschlüsseln wenn irgendwann doch das Ganze dechifriert vorhanden ist?
Dechifrieren kann man aber nur mit dem richtigen Schlüssel/Passwort und dass bekommen nur authorisierte Stellen. Klar - für eine Software wie z.B. Word od. ähnliches funktioniert das nicht, da Millionen Leute die Software nutzen könnten bzw. wollten und daher früher oder später eine Version mit passendem Schlüssel auf irgendeinem Server landen würde...
In diesem Fall aber wird der Schlüssel nur von einer kleiner bekannten Gruppe verwendet, während eine größere (ebenfalls bekannte) Gruppe die Version ohne Schlüssel verwenden wird und somit gar keine Gelegenheit bekommt etwas zu debuggen.
-
na da braucht man doch nicht alles doppelt zu machen man erstellt nur per define nen schalter und lässt entsprechende teile per Preprozessor switch mit oder nicht, so schwer is das doch auch nicht, also erstellt man nur eine abgespekte version der exe.
Warum machst dsu dir überhaupt den aufwand, weil eine smartkarte kann man kopieren und das jemand das passwort weiter gibt kannst du auch nicht verhindern, ich denke du machst dir mehr arbeit als was die sache wert ist, wenn das eh nur eine gewisse gruppe bekommt die dir bekannt ist, macht der ganze aufwand keinen sinn
-
CTecS schrieb:
na da braucht man doch nicht alles doppelt zu machen man erstellt nur per define nen schalter und lässt entsprechende teile per Preprozessor switch mit oder nicht, so schwer is das doch auch nicht, also erstellt man nur eine abgespekte version der exe.
Geht nicht, da ich das Programm weitergebe an Leute, die selbst entscheiden möchten, wer den vollen Zugriff bekommt und wer nicht - und vom compilieren verstehen die nix...
CTecS schrieb:
Warum machst dsu dir überhaupt den aufwand, weil eine smartkarte kann man kopieren und das jemand das passwort weiter gibt kannst du auch nicht verhindern, ich denke du machst dir mehr arbeit als was die sache wert ist, wenn das eh nur eine gewisse gruppe bekommt die dir bekannt ist, macht der ganze aufwand keinen sinn
Signaturgesetzkonforme kryptographische Smartcards kann man nicht kopieren - u.a. deshalb sollen die ja auch eingesetzt werden.
-
na wenn du dir da so sicher bist brauchst du das doch nur zu verbinden, also den entsprechenden teil der software in eine DLL auslagern und diese dann verschlüsseln, könnte doch so gehen, oder bin ich schon wieder total daneben? lass hier nur mal meine gedanken schweifen, also Martin kann da sicher mehr dazu schreiben
-
CTecS schrieb:
na wenn du dir da so sicher bist brauchst du das doch nur zu verbinden, also den entsprechenden teil der software in eine DLL auslagern und diese dann verschlüsseln, könnte doch so gehen, oder bin ich schon wieder total daneben? lass hier nur mal meine gedanken schweifen, also Martin kann da sicher mehr dazu schreiben
Nö - kling erstmal gut, allerdings habe ich bis jetzt nur mit statisch gelinkten libraries gearbeitet. Man müßte also eine dll erstellen und verschlüsseln - dann zur Laufzeit laden, entschlüsseln und irgendwie starten.
Prima - das Laden und Entschlüsseln ist kein Problem, aber wie geht's dann weiter?