Thema: Delphi SQLs absichern

Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#7

Re: SQLs absichern

  Alt 4. Aug 2009, 12:10
Hallo,

zum Programmabsichern:

Habe mir mal eine Routine gebaut, die eine CRC-Prüfsumme berechnet und an die Exe hängt. Diese Summe wird beim Programmstart überprüft und wenn sie nicht mit der gespeicherten übereinstimmt, startet das Programm nicht, bzw. gibt eine Fehlermeldung aus und beendet sich dann. Bei der Prüfung der CRC-Summe muss halt die Stelle ausgespart bleiben, an der sich die gespeicherte CRC-Summe befindet, da sich die CRC-Summe des Programmes ja (theoretisch) durch das Einfügen ihrer selbst in das Programm wieder verändern würde. Wenn Du das Ganze mit einem Programm machst, das mit UPX gepackt wurde, dann kann auch keiner die in der kompilierten Exe gespeicherten Strings (in Deinem Fall SQL-Statements) ändern ohne das Programm zu entpacken. Das entpackte Programm läuft aber bereits, wegen der nicht mehr stimmenden CRC-Summe nicht mehr. Es muss also eine neue CRC-Summe für das veränderte und wieder gepackte Programm an die entsprechende Stelle der Exe gepackt werden, damit das Programm mit dem geänderten SQL wieder läuft. Ist theoretisch möglich, der Aufwand ist aber nicht unerheblich, da nicht nur die Stelle der CRC-Summe "gefunden" werden muss, sondern auch der Alghorhythmus, mit der die CRC-Summen berechnet wird.

Alternative: SQL's in eine Datenbanktabelle schreiben und erst bei Bedarf daraus lesen, die Parameter mit den entsprechenden Werten versehen und dann ausführen. Im Kompilat des Programmes sind dann keine SQL's zu finden, die ggfls. manipuliert werden könnten.
Nebeneffekt: Beim Ändern/Wechseln der Datenbank müssen nur die SQL's in der Datenbanktabelle geändert werden und nicht das Programm. Das Programm kann ggfls. sogar ohne Änderung gegen unterschiedliche Datenbanken laufen, bei denen sich die SQL-Syntax in mehr oder weniger großem Umfang unterscheidet (soll ja zuweilen schon mal vorkommen ).
  Mit Zitat antworten Zitat