Während der Laufzeit Prozeduren überschreiben, geht das?

Für allgemeine Fragen zur Programmierung mit PureBasic.
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: Während der Laufzeit Prozeduren überschreiben, geht das?

Beitrag von GPI »

Mach es auf jeden Fall so, das wenn man doch mal eine legale Version bekommt, man nicht bei Null anfangen muss - bei meinen Dateibeispiel könnte eine legale Version die Dateien mit den Zähler über 10 problemlos laden.

Und verkneif dir richtigen Schadcode einzubauen, falls eine gehackte Version festgestellt wird. A) könnte das auch mal versehentlich auslösen (Programmierfehler) b) könntest du dich da auch Strafbar machen.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
Kurzer
Beiträge: 1621
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Während der Laufzeit Prozeduren überschreiben, geht das?

Beitrag von Kurzer »

Ja, sowas hatte ich auch nicht vor. Ich finde nur die Idee mit den verfälschten Ergebnissen ganz lustig.
Habe jetzt ein "proof of concept" fertig. Das Verfahren mit den codierten Sprungadressen für die einzelnen Funktionen arbeitet sehr gut, bin damit zufrieden.

Da kommt eh noch eine reguläre Lizenzprüfung für das ganze Programm rein.

Um es noch ein bisschen sicherer zu machen, werde ich die korrekten Sprungadressen so verschlüsseln, dass Sie nur mit dem hash der gültigen, personalisierten Lizenzdaten entschlüsselt werden können. Sollte also jemand die Lizenzdaten (mit dem Kundennamen darin) verändern, dann können die korrekten Sprungadressen nicht mehr entschlüsselt werden. Wenn das jemand tut (also in der Exe rumpatchen), dann kann ich natürlich nicht verhindern, dass das Programm dann mit einer Zugriffsverletzung abschmiert.

Die VTable wird zur Laufzeit auch immer nur einen korrekten Eintrag enthalten, niemals alle. Die Sprungadresse wird also kurz vor dem Aufruf der Prozedur in einer äußeren "Kapselungsprozedur" mit dem Hash entschlüsselt, dann wird die Prozedur aufgerufen und diese kopiert nach getaner Arbeit wieder die verschlüsselte Sprungadresse in die VTable. An noralgischen Stellen im Code wird die VTable eh immer wieder mit den verschlüsselten Sprundadressen überschrieben.

Ich hoffe, dass der "böse Cracker" dann wenigstens ein paar Stunden am Debugger hocken muss. :D
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
Antworten