Hallo Michael,
da hat du natürlich recht, bei einer Grafik macht das keinen Sinn. Wir haben ja auch von sensibleren Daten wie z.B. dem
FTP-Zugang für das Online-Update gesprochen. Bleiben wir mal bei diesem Beispiel. Das
FTP-Passwort muss ja irgendwann mal zur Laufzeit zugewiesen werden. Das einfachste und dümmste wäre, es gleich im Klartext in der Komponente abzulegen.
Du hardcodest nicht wirklich Passwörter oder
FTP Zugangsdaten in deinen Releases?
Da hilft dir weder ASProtect oder noch schwereres Geschütz wie VMProtect. Ebenso unnütz ist die Verschlüsselung, da sich der Schlüssel ja wohl oder übel auch im Code befindet.
Auf meine Frage hierzu, wie man es sonst machen sollte/kann, kam leider bisher noch nichts. Wir sind uns einig, dass es keinen Schutz gibt, der nicht zu knacken ist. Es geht letztendlich nur darum, dem Angreifer das Leben ein bischen schwerer zu machen und nicht gleich das komplette Menü auf einem silbernen Tablett zu servieren. Man nimmt dem armen Hund ja sonst sein Erfolgserlebnis.
Also speichert man das Passwort verschlüsselt. Der Schlüssel für die Verschlüsselung ist natürlich auch irgendwo gespeichert. Und vielleicht noch ein Hash zur Kontrolle. Und vielleicht noch die Exe mit UPX komprimiert, oder mit AsProtect, oder was und wie auch immer, irgendwann landet das Passwort im Klartext in der Indie-Komponente (wenn man mal im einfachsten Fall von den Indie's ausgeht).
Mit jedem popeligen Debugger also kein großes Problem. Nichts verhindert eben....nur ein bischen schwerer gemacht. Womit wir vielleicht wieder ein bischen beim Sinn und Unsinn von UPX wären.
Gibt noch weitaus mehr Maßnahmen zum Schutz.
- Anti Debugger Routinen
- Anti VM
- Anti Sniff
- MD5 Checksum Überprüfung
- Strings im Quelltext (Fehlermeldungen / Pfade etc verschlüsseln)