Seite 3 von 4
Verfasst: 16.08.2007 21:46
von Fluid Byte
Lol, abgefahren!
Herzlichen Glückwunsch und viel Spass damit.

Verfasst: 16.08.2007 21:52
von X0r
Ja ich wünsche dir auch viel Spaß!
(Jetzt bitte zurück zum Thema)
Verfasst: 19.08.2007 00:11
von Thorium
X0r hat geschrieben:Ja ich wünsche dir auch viel Spaß!
(Jetzt bitte zurück zum Thema)
Danke.
Habe das Testprogramm jetzt zum ersten mal gestartet und es crasht. Und zwar noch bevor das Archiv geöffnet wird. Bitte fixe das erst noch. Ansonsten konnte ich schon erkennen dass das Bild den Namen "sequoias.big.jpeg" trägt und das Passwort warscheinlich aus dem String "saksdadsadlas" ermittelt wird.
Aber was wirklich am unsichersten ist von allem, ist das alle Dateien auf die Platte extrahiert werden. Ist doch garkein Problem die sich dann wegzugrabben. Man muss ja lediglich das Programm im Richtigen Moment anhalten. (Was mit Debugger kein Problem ist.)
Verfasst: 19.08.2007 12:00
von X0r
Ok, ich fix das noch heute(Kann momentan nicht). Bildname ist schonmal richtig, Passwort ist falsch.
Verfasst: 19.08.2007 13:32
von X0r
Ok. Habs mal schnell neugschrieben und (hoffentlich) etwas komplizierter für dich gemacht.
http://www.forgesoft.net/Stuff/Test.zip
Verfasst: 19.08.2007 14:03
von Thorium
Done
http://www.gametreasure.de/Temp/ig_tmp.bmp
Das Passwort des Archivs sollte uqw16253!$!?= )(SJASSHAS sein. Habs aber nich getestet, hab die Datei nicht selbst extrahiert. Das habe ich dein Programm übernehmen lassen.
Diesmal entpackst du alles ins Temp-Verzeichnis des Users. Und hantierst mit ner Menge Dateien rum. Hat mich ca. 20 Minuten gekostet. Wenn ich da jetzt wollte das eine andere Datei geladen wird würde das etwas länger dauern. Aber ich muss jetzt erstmal weg. Werde das die Woche nochmal probieren.
Verfasst: 19.08.2007 14:40
von X0r
sh**. RESPEKT!
Verfasst: 19.08.2007 14:49
von Kaeru Gaman
Thorium hat geschrieben:Naja bin ein wenig in die Cheaterscene rein um Anti-Cheating-Forschung am lebenden Objekt durchzuführen. ^^
Aber im Grunde ist es mir wurscht ob ich bekannt bin oder nicht. Ich hab einfach Spaß daran in fremdem Assembler-Code rumzustochern und wenn das jemandem nützt ist das prima. Ausserdem teile ich einfach gerne mein Wissen. ^^

Verfasst: 20.08.2007 18:43
von Thorium
Also es gibt 2 sehr große Schwachstellen:
Einmal generell das es sich um eine DLL handelt, den es ist absolut kein Problem sich mit einer eigenen DLL zwischen das Programm und die "FX Engine.dll" zu klinken. Sowas nennt man eine Proxy-DLL. Sie hat genau die gleichen Prozeduren wie die Original-DLL und leitet die Aufrufe der Prozeduren an die Original-DLL weiter. So ist es kein Problem sich die Parameter wie z.b. Archivpasswörter ausgeben zu lassen ohne die geringsten Assemblerkenntnise. Also währe die FX Engine besser als Lib geeignet.
Als Beispiel habe ich so eine Proxy-DLL mal schnell für deine FX Engine gemacht. Anleitung und Source liegen bei:
http://www.gametreasure.de/Temp/FXEngineProxyDLL.zip
Die zweite große Schwachstelle ist, dass du die Dateien auf die Festplatte entpackst. Dort sind sie ohne Probleme abzugreifen. Da muss sich ein Hacker noch nicht mal die Mühe machen die Dateien aus dem Speicher zu kopieren. Ausserdem ist es sehr schlecht für die Performance. Man sollte so wenig wie möglich auf die Festplatte zugreifen bei einem Spiel. Denn die Festplatte ist die dicke fette Performancebremse.
Wenn du die beiden Dinge noch änderst ist deine FX Engine durchaus brauchbar.
Viel Zeit kann man gewinnen, wenn man sich eigene Formate für die Daten wie Bilder und Sound ausdenkt. Aber das kostet auch wieder Zeit in der Entwicklung. Ist immer eine Sache von Kosten-Nutzen-Vergleich. Aber im Grunde ist alles knackbar solange die Passwörter, in welcher weise auch immer, mit dem Spiel mitgeliefert werden, was sie ja zwangsweise müssen.
Verfasst: 20.08.2007 20:35
von X0r
Ne Lib für PureBasic ist im Paket enthalten. Und wenn die FX Engine die Dateien nicht auf die HD extrahiert, würde es doch eventuell Probleme mit Grafik Engines geben. Könnte doch sein, dass man die Ressourcen nicht vom aus Speicher laden kann.
Zum Proxy Problem: Man müsste einfach nur die MD5-Checksumme prüfen.