Schloss an Exe hängen
-
Hi,
wir haben folgendes Problem:
Auf einer CD befinden sich mehrere (Setup)Programme. Diese werden auch als verschiedene Produkte verkauft, d.h. man kann nicht alle Programme auf der CD kaufen. Über die Seriennummer wird dann festgestellt, welches Produkt gekauft wurde und dieses wird dann entsprechend bei der Installation aufgerufen.
Das Problem ist jetzt, dass man diese einzelnen Setup.exe ja auch manuell im Windows-Explorer starten kann. Bei selbstgemachten Programmen wäre es kein Problem, dort wird einfach eine bestimmte Kommandozeile übergeben die niemand wissen kann. Es gibt aber auch Programme auf der CD, die von Drittanbietern sind (zB Postleitzahlenverzeichnis).Die Frage ist jetzt, wie sich diese Dateien schützen lassen, damit sie niemand aufrufen kann außer unser eigenes Setup-Programm.
Ich habe schon 3 Lösungsansätze, die aber beide nicht sehr gut sind:
1.) Man benennt die Exe einfach um in zB Setup.sht; Dadurch kann man die Datei wenigstens nicht direkt starten, aber sicher ist das natürlich nicht. Es muss nur jemand ein kleines Proggie mit CreateProcess() schreiben und schon ist es dahin.
2.) Ich habe die exe datei etwas verschlüsselt damit sie nicht mehr funktioniert. Dann, beim Setup, wird sie wieder entschlüsselt und auf die Festplatte kopiert und gestartet. Das funktioniert, zumindest bei den Anwendungen, die nicht nachschauen in welchem Verzeichnis sie sich befinden. Und die meisten machen das leider. D.h. die Setup-Programme finden ihre Dateien nicht mehr und brechen ab.
3.) Man lädt die verschlüsselte (siehe 2.) exe in den Speicher, entschlüsselt sie dort und startet sie. Das würde, denke ich, funktionieren. Das Problem ist nur, dass es überkrass ist eine exe selbst zu starten (zumindest nach dem was ich so gelesen hab).
Hat jemand ne Idee wie man das Problem lösen kann?
Danke im Voraus
-
Hi,
bist du dir sicher, dass du Programme von Drittanbietern modifizieren darfst?
mfg
v R
-
Ich verschlüssel sie ja nur ein wenig, ich modifizier sie in dem Sinne garnicht. Außerdem glaube ich, dass wir die gekauft haben.
P.S: Ich mache ein Praktikum in einer Softwarefirma und habe dieses Problem als Aufgabe bekommen.
-
Es ist schon ziemlich krass eine exe aus dem Speicher zu starten und unter dem ein oder anderen OS afaik unmöglich. Aber aus einer Temorärdatei in die du das verschlüsselte Ding extrahierst ist das kein Problem.
-
Es gibt doch solche Programme zum Verschlüsseln/Komprimieren von PE-Dateien, z.B. UPX. Davon könntest du den Quelltext so modifizieren, dass ein Passwort zum Entschlüsseln benötigt wird.
-
Statt verschlüsseln, könnte man auch einpaar Bytes im Programm ändern, sodass es nicht gestartet werden kann. Ist zwar unsicherer als Verschlüsseln, aber für Standardanwender eine nicht zu überwindbare Hindernis.
-
Danke für Eure schnellen Antworten
@MaSTaH: Ich habe es mit einer Temporärdatei versucht, aber da ist wie gesagt das Problem dass die Exe ihre Anhängsel (zB dlls ) nicht mehr findet.
@\aleph_0: Danke für den Tip, habe mich grade mit UPX beschäftigt. Die Idee ist gut, aber das geht ja schon an die Compilerprogrammierung, und da mein Praktikum in 2 Wochen endet wird das nix mehr
@bIce: Genau so mache ich es, ich vertauche einfach die hundert ersten und letzten Bytes der Exe. Kann man doch auch 'verschlüsseln' nennen :p
Im Moment arbeite ich jetzt an der Notlösung, ich kopiere einfach das gesamte Programmverzeichnis temporär von CD auf HD. Das ist nicht schön, aber es wird funktionieren.
Gute Ideen sind aber weiterhin sehr willkommen...
-
0x00000001 schrieb:
@\aleph_0: Danke für den Tip, habe mich grade mit UPX beschäftigt. Die Idee ist gut, aber das geht ja schon an die Compilerprogrammierung, und da mein Praktikum in 2 Wochen endet wird das nix mehr
Es gibt auch einfachere Programme. Ich hab irgendwo noch eins gefunden (nur Assembler), das nicht zu groß ist (<50 kB). Interesse?
-
\aleph_0 schrieb:
Interesse?
Ja, schick es mir bitte mal oder gib mir den Link.
[url]matthiasasal [at] gmx [punkt] de[/url]
Danke.
-
Du könntest die Programme auch einfach komplett mit Passwort packen(und evtl umbenennen) und dann im setupprogramm via zlib oder so wieder entpacken und starten.