3 registered members (AndrewAMD, VoroneTZ, dpn),
1,346
guests, and 10
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: Eigene Dateien schützen.
[Re: Bastiuscha]
#420195
03/21/13 03:06
03/21/13 03:06
|
Joined: Apr 2007
Posts: 3,751 Canada
WretchedSid
Expert
|
Expert
Joined: Apr 2007
Posts: 3,751
Canada
|
Ja, aber nein.
Hier ist das Problem: Krypto ist schwer. Sehr schwer. Das Problem dabei ist nicht einmal unbedingt die komplexität der Algorithmen (jeder kann die Wikipedia Seite zu AES aufmachen und das dann nach einmal lesen selber nachbauen), sondern das ganze richtig hinzubekommen.
Nehmen wir mal an du machst es nicht völlig bescheuert und benutzt einen bekannten Krypto Algorithmus (wenn du anfängst selber einen zu bauen komm ich persönlich vorbei und verhau dich mit deiner Tastatur), dann liegt irgendwo in deinem Spiele Ordner eine Datei die beim angucken nach Rauschen aussieht (rule of thumb; Wenn es nach rauschen aussieht ist es entweder Müll, verschlüsselt, komprimiert oder alles zusammen). Deine Datei hat keinen zip, rar oder sonstigen bekannten header, also ist es wohl nur verschlüsselt und schau mal einer an 2048bit Blöcke die verdammt nach AES aussehen... Ein string dump deiner .exe und ein bisschen suchen später und deine Daten liegen unverschlüsselt vor einem. Aufwand: Du: mehrere Stunden implementation und testen + tools schreiben zum maintainen der Daten. Hacker: 20 Minuten max (und der Term "hacker" ist hier sehr lose zu betrachten. Jeder der mal ein C3 Talk gesehen hat kriegt das hin).
Und damit wären wir eigentlich auch schon beim größten Problem, DU möchtest den Schlüssel mit deinem Leben verteidigen, musst ihn aber dummerweise mit deiner Applikation ausliefern. Okay, du hast draus gelernt, beim nächsten Mal leitest du den Schlüssel aus irgendwas ab. Ein string dump wird den Schlüssel nicht mehr direkt aufzeigen, als Angreifer gibt es jetzt zwei Potentielle Möglichkeiten; 1) Mit IDA Pro die exe öffnen und gucken was nach Krypto aussieht und von wo es aufgerufen wird und wie der Schlüssel abgeleitet wird 2) Irgendwas mit debug rechten starten das im RAM rumstochert und nach Dingen guckt die wie ein Schlüssel aussieht. (Oder 3: Eine Kombination aus beidem)
Dein Aufwand steigt um ein paar weitere Stunden, der Aufwand für den Angreifer (ich benutz das Wort Hacker nicht mehr, dafür ist der Kram zu trivial) steigt um 30 Minuten max.
Next up: Obfuscation. Du hast gelernt das den Schlüssel direkt ableiten eine blöde Idee war, und baust obfuscation in dein Spiel ein. Dein Krypto code wird komplex as fuck, Du baust alles ein was dir in den Sinn kommt um es möglichst unleserlich zu machen, zumindest nachdem es aus dem Compiler gefallen ist. Aber seien wir mal ehrlich, das ist ein Kampf gegen Windmühlen. Dein Code wird immer schwerer zu maintainen und es wird nur marginal schwieriger für den Angreifer. Und wenn es doch zu schwierig wird kann man immer noch auf Seitenkanal Attacken zurückgreifen (und davon gibt es einige, und die richtigen Gegenmaßnahmen zu implementieren kostet viel Zeit und setzt vor raus das du dich SEHR gut mit der Materie auskennst und weißt wie dein Computer und OS zusammenarbeiten und wie deine Applikation, und andere, damit interagieren).
Falls das bis hier hin noch nicht klar war, Krypto ist verdammt schwer. Sehr sehr sehr sehr sehr schwer, und je nachdem was du schützen möchtest den Aufwand nicht wert. Dein ganzes Bollwerk muss nur einmal geknackt werden um es komplett nutzlos zu machen. Und selbst wenn du super tolle Krypto hast, hast du danach immer noch das Problem das die Daten irgendwann einmal im Speicher landen müssen, unverschlüsselt, und da gibt es dann auch noch einmal hunderte von Angriffsvektoren (und nein, ASLR ist nicht die eine Antwort die alles löst).
Und dann, ganz am Ende, musst du auch noch beachten das Krypto gesetzlich geregelt ist. Je nachdem in welches Land und aus welchem Land du dein Spiel exportieren willst musst du eventuelle Exportbeschränkungen beachten und uU bei den entsprechenden Behörden melden und entsprechenden Code offen legen (rule of thumb; Hoste nix in den USA, die haben da ziemlich viele Stöcke im Arsch was das angeht).
Long story short; Wenn du wirklich Krypto willst, mach dich auf viele schmerzen gefasst.
Shitlord by trade and passion. Graphics programmer at Laminar Research. I write blog posts at feresignum.com
|
|
|
Re: Eigene Dateien schützen.
[Re: WretchedSid]
#420197
03/21/13 04:04
03/21/13 04:04
|
Joined: Jun 2008
Posts: 156
Bastiuscha
OP
Member
|
OP
Member
Joined: Jun 2008
Posts: 156
|
UUUUUUUUU! Also erstmal danke für deine Abhandlung! Das liest sich um diese Zeit nochmal so gut! Btw schon wach oder immernoch? ;D Nee Sid, datt ist eigentlich jetzt so nicht die Anforderung von mir. Erstmal: ich bin nen Anfänger und war schon deinem ersten Satz abgemeldet. Ich wollte das ledeglich dafür nutzen, dass meine späteren Spieler nicht gleich das ENDE.AVI video angucken können...weil Spannung raus. Mehr nicht! Der 0815 User (wie zb ich) kennt sich mit sowas null aus und wird sich um mein Spielende oder die Zwischensequenzen zu sehen, sicher nicht sowas aneignen um da ran zu kommen. Ob da später einer ran kommt, auch ejal. Aber die Kernessenz habe ich jetzt dadurch trotzdem kapiert: wird nix! ;-) Hatte gedacht, sowas gibts ganz easy als Software die mir das komplett packt...naja doofe Idee, wie immer. Für die meisten Leute würde es sicher reichen, wenn man aus der video.avi einfach ne was weiss ich: "vxd...htk" oder sonst nen Fakename draus machen würde. Das findet man nicht so schnell...Aber das wird leider nicht geschluckt, vom Compiler. Wie sieht es denn mit dem Gamestudio Verfahren aus...ist denn das einigermaßen sicher?
|
|
|
Re: Eigene Dateien schützen.
[Re: Bastiuscha]
#420203
03/21/13 07:25
03/21/13 07:25
|
Joined: Apr 2007
Posts: 3,751 Canada
WretchedSid
Expert
|
Expert
Joined: Apr 2007
Posts: 3,751
Canada
|
UUUUUUUUU! Also erstmal danke für deine Abhandlung! Das liest sich um diese Zeit nochmal so gut! Btw schon wach oder immernoch? ;D Ähm... Das kommt darauf an ob wir nach der Zeitzone gehen in der ich mich gerade physisch befinde oder nach der Zeitzone nach der ich Lebe... Die stimmen nicht so ganz überein fürchte ich :\ Nee Sid, datt ist eigentlich jetzt so nicht die Anforderung von mir. So sage er das doch... Kinder, ihr solltet doch wissen das mich die Themen Krypto, Multithreading und Unicode zu Monologen veranlassen Naja, nenn halt deine Dateien um... Wenn es dir nicht um richtige Verschlüsselung geht, dann ist das immer noch am effektivsten. Wenn du unbedingt auf Krypto bestehst kannst du dir auch einfach einen lustigen Schlüssel ausdenken und damit deine Daten einmal XORen (das ist so einfach wie es ineffektiv ist, aber es sollte den 08/15 User davon abhalten das Ende anzugucken...) Hatte gedacht, sowas gibts ganz easy als Software die mir das komplett packt... Joa, gibts, is aber auch nicht sicher, verbrennt unglaublich viel CPU und Festplattenzugriffe und wird von den meisten Virenscannern als Virus erkannt (surprise). Wie sieht es denn mit dem Gamestudio Verfahren aus...ist denn das einigermaßen sicher? Ich rate und sage nein. Soweit ich das verstehe basiert die Gamestudio Methode hauptsächlich auf Security by Obscurity. Ein Verfahren das sich schon seit Jahren in gebrochenen Krypto Algorithmen wie A5/1 und A5/3 bewährt hat (wusstet ihr übrigens das man einige DVB-T sticks so umprogrammieren kann das sie auf der GSM Frequenz mithören und die Pakete dann durch GNURadio und die passenden Rainbowtables pumpen kann um so ziemlich alles in echtzeit im Klartext mitzulesen? Bei Interesse, die Dinger gibts auf Dealextreme für kaum Geld in Massen. Quelle: Ich hab so ungefähr 8 Stück davon... für DVB-T, oder so...)
Shitlord by trade and passion. Graphics programmer at Laminar Research. I write blog posts at feresignum.com
|
|
|
Re: Eigene Dateien schützen.
[Re: Bastiuscha]
#420204
03/21/13 08:10
03/21/13 08:10
|
Joined: Jul 2001
Posts: 6,904
HeelX
Senior Expert
|
Senior Expert
Joined: Jul 2001
Posts: 6,904
|
Ich wollte das ledeglich dafür nutzen, dass meine späteren Spieler nicht gleich das ENDE.AVI video angucken können...weil Spannung raus. Mehr nicht! Der 0815 User (wie zb ich) kennt sich mit sowas null aus und wird sich um mein Spielende oder die Zwischensequenzen zu sehen, sicher nicht sowas aneignen um da ran zu kommen. Ob da später einer ran kommt, auch ejal. So wie du das beschreibst ist das ja auch die Regel. Selbst wenn du ganz viel Geld in Modelle oder Musik steckst, die du durch ein Verfahren schützt, uns selbst wenn jemand sich die Mühe macht, dein Sachen zu hacken - ist doch egal! Sobald er dein Urheberrecht verletzt und damit Geld verdient, kannst du ihn verklagen. Wenn dir das umbenennen der Dateien nicht reicht, würde ich dir mal vorschlagen, dir die Trial von MoleBox anzuschauen und mal testweise anzuwenden (es gibt auch Alternativen wie BoxedApp oder Cameyo). Kostet aber Geld (mind. 150€), genau deswegen eine Pro zu kaufen ist natürlich etwas übertrieben (oder hast du eine Comm.?) Ansonsten hat der user "ventilator" hier mal einen "super simple filepacker" für Lite-C vorgestellt, mit dem du Dateien aus einer ZIP laden kannst. Leider funktioniert der download link im originalen thread ( siehe hier ) nicht mehr, aber vielleicht hat ja jemand die Datei noch irgendwo rumfliegen.
|
|
|
Re: Eigene Dateien schützen.
[Re: rayp]
#420210
03/21/13 09:49
03/21/13 09:49
|
Joined: Dec 2003
Posts: 1,225 germany
gri
Serious User
|
Serious User
Joined: Dec 2003
Posts: 1,225
germany
|
Als "comm" user saß ich auch letztens dran. Sieht vielversprechend aus und funktioniert zur ZEit nur für Modelle und Texturen. Weil aber immer Kram dazwischenkommt, liegts erst mal auf Eis.
Nachdem sich Sid hier als Cracker geoutet hat, hätte ich große Lust das Ding fertig zu tippen und ihm mal ein TEstfile zukommen zu lassen.
Wie schon von meinen Vorrednern gesagt. Ein mittleres Hindernis für die Massen reicht eigentlich. Investiert man mehr in den Schutz, gibts es irgendjemand der es "knackt" und der Masse zur VErfügung stellt.
"Make a great game or kill it early" (Bruce Shelley, Ensemble Studios)
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|