exe schützen

Anfängerfragen zum Programmieren mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

hm...

bestimmt gibts ne möglichkeit, eine .exe komplett zu wrappen,
dass heißt, du erstellst eine neue exe, die am anfang den zwangsparameter abfragst,
und bindest die alte exe komplett mit ein.

so ähnlich macht das die CBS, damit ihre Games auf den Heft-CDs nich auf Win2000 laufen.

eine andere möglichkeit wäre mit Rename und RunProgram zu arbeiten:

Code: Alles auswählen

RenameFile("rsmdn07sys.dll","spiel.exe")
RunProgram("spiel.exe","","",#PB_Program_Wait)
RenameFile("spiel.exe","rsmdn07sys.dll")
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
mx03
Beiträge: 47
Registriert: 29.09.2006 22:44

Beitrag von mx03 »

:? naja stimmt aber trozdem gibt es eine möglichkeit die exe zu schützten ohne einen prozess im hintergrund laufen zu lassen?
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

vermutlich nicht.
sowas ähnliches wollte vor kurzem erst jemand..
http://www.purebasic.fr/german/viewtopi ... sc&start=0
my pb stuff..
Bild..jedenfalls war das mal so.
mx03
Beiträge: 47
Registriert: 29.09.2006 22:44

Beitrag von mx03 »

und wie kann ich eine exe komplett einbinden? brauch ich da einen exe joiner?
Benutzeravatar
Frogger
Beiträge: 425
Registriert: 14.03.2006 19:27
Kontaktdaten:

Beitrag von Frogger »

am besten mit includebinary
schau dazu in die hilfe
[PB4.20]
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wie ich oben sagte, die exe komplett wrappen.
da ich aber nicht weiß, wie der standard-mäßige einsprung-punkt ist,
kann ich dir dazu nichts näheres sagen.
wenn eine .exe ganz einfach binary ist und von der ersten adresse an abgearbeitet wird,
geht das so ungefährt:

Code: Alles auswählen

; hier den sicherheits-check

CallFunctionFast(*Game)

DataSection
Game:
IncludeBinary "spiel.exe"
EndDataSection
aber wie gesagt, genaues weiß ich nich.

allerdings musst du doch für deinen cheat-stopper sowieso nen hintergrundprozess haben,
also könntest du den rename-trick gleich integrieren...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Frogger
Beiträge: 425
Registriert: 14.03.2006 19:27
Kontaktdaten:

Beitrag von Frogger »

Also das mit CallFunctionFast(*Game) funktioniert schonmal nicht.
Auch wenn man ?Game schreibt.

Aber würde mich auch interessieren wie man eine EXE, die in einer EXE ist, starten kann ohne sie vorher auf die Festplatte zu kopieren.
[PB4.20]
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

Frogger hat geschrieben:Also das mit CallFunctionFast(*Game) funktioniert schonmal nicht.
Auch wenn man ?Game schreibt.

Aber würde mich auch interessieren wie man eine EXE, die in einer EXE ist, starten kann ohne sie vorher auf die Festplatte zu kopieren.
Ich denke nicht dass das so leicht ist. Den Einsprungpunkt kann man aus dem PE-Header auslesen aber das reicht ja net. Man muss all die Dinge tun die normal der Loader des Betriebssystems macht, z.b. alle vom Spiel benötigten DLL's laden.

EDIT: Allerdings verstehe ich den Sinn nicht, warum das Spiel ohne Anti-Cheatclient nicht zu starten sein soll. Wenns ein Client ist, gibt es auch einen Server zu dem er sich verbindet. Wenn sich zum Spielserver nun jemand verbindet aber der Anti-Cheatclient verbindet sich net zum Anti-Cheatserver dann musst du den doch nur vom Server kicken. Am besten noch mit ner Nachricht das er sich deinen Anti-Cheat-Client runterladen soll.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
winduff
Beiträge: 879
Registriert: 10.02.2006 21:05
Wohnort: Gießen
Kontaktdaten:

Beitrag von winduff »

hmm folgender Vorgang wäre doch möglich:

- Neue .exe erstellen, die eine Angehongene Datei entpackt (in temp) und gleich öffnet - jenachdem ob erlaubt (siehe programmparameter oder halt passwort...) - ... nächster Punkt erklärt näheres ;)

- notepad.exe dranheften, also via einem der Packlibraries die hier rumlungern

- originale notepad.exe löschen, neue Datei umbenennen nach: notepad.exe

So kanst du nun die notepad.exe starten, in wahrheit startet dein Programm. Nun kannst du damit machen was du willst, nur bei "erlaubter" Funktion wird die "echte" notepad.exe ausm Programm entpackt und wohin auch immer geschoben....


ICh hoffe ich habs einigermaßen verständlich erklärt :)
Bild
AND51 hat geschrieben:...und ich würde dein Programm aus Wut zwei mal installieren, um eines genüsslicher löschen zu können, als das andere...
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

winduff hat geschrieben: - Neue .exe erstellen, die eine Angehongene Datei entpackt (in temp) und gleich öffnet - jenachdem ob erlaubt (siehe programmparameter oder halt passwort...) - ... nächster Punkt erklärt näheres ;)
Aber das ist zu leicht zu umgehen. Ich kann mir ja einfach die .exe aus dem Tempordner kopieren, während das Spiel läuft. Dann hab ich die ungeschützte .exe. Das ist ziemlich leicht zu machen, da es Programme gibt, welche die Dateisystemaktivitäten von anderen Prorgammen protokollieren.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Antworten