Savedateien cheatsicher?
Übersicht BlitzBasic Allgemein
pileBetreff: Savedateien cheatsicher? |
Fr, Feb 13, 2009 22:21 Antworten mit Zitat |
|
---|---|---|
Hallo, mich würde gern interessieren, wie ihr eure Savedateien cheatsicher macht? Wenn ich z.B. was in einer Textdatei oder ähnliches abspeichere, könnte ich die Datei mit leichtigkeit manipulieren. Und da jeder der Spiele (und auch Programme) programmiert sich mit den Dateien befassen muss, die Variablen auch nach dem ersten Programmlauf verfügbar machen, denke ich das jeder schon vor dieser Frage stand. | ||
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238% |
DjDETE |
Fr, Feb 13, 2009 22:24 Antworten mit Zitat |
|
---|---|---|
Nicht mit Writeline sondern mit Writestring. Am besten wäre es natürlich, wenn du es mit Writebyte machst (vorher die Strings zerlegen) und den Wert immer um eine Konstante Zahl veränderst, oder du schreibst z.B. für die Variable Energie zwei Bytes, die man addieren/subtrahieren/multiplizieren/dividieren muss, aber eine von den Dateien muss/darf nicht in ein Muster passen.
MfG DeTe |
||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
Eingeproggt |
Fr, Feb 13, 2009 23:31 Antworten mit Zitat |
|
---|---|---|
Ich empfehle eine Mini-Verschlüsselung mit Xor
Code: [AUSKLAPPEN] test$=Xor_Code("Hallo!",100)
Print test$ Print Xor_Code(test$,100) WaitKey() End Function Xor_Code$(txt$,key) ;Key nur von 0 bis 255 sinnvoll Local temp$="" For i=1 To Len(txt$) temp$=temp$+Chr(key Xor Asc(Mid(txt$,i,1))) Next Return temp$ End Function Einfach und effektiv. Klar, kann leicht geknackt werden aber für die Zwecke eines Hobby-Programmierers reicht das schon. mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
c64 |
Sa, Feb 14, 2009 0:30 Antworten mit Zitat |
|
---|---|---|
B3DCODE
Code: [AUSKLAPPEN] ; ; SECUREDATA V1.0 ;---------------- ; ; author : C64 ; ;---------------- ; EXAMPLE ; ------- Local bank=CreateBank (10001) For c=0 To 10000 PokeByte (bank,c,Rand(255)) Next saveSecure"testfile.ssc",bank,666 loadSecure"testfile.ssc", 666 Function SaveSecure (filename$,bank,securecode=1) Local checksum Local filelength Local currentbyte Local file file=WriteFile (filename) filelength=BankSize (bank) WriteInt file,filelength For c = 0 To filelength currentbyte=PeekByte (bank,c) WriteByte file,currentbyte checksum=checksum+securecode*(currentbyte+c) Next WriteInt file,checksum Print checksum CloseFile file End Function Function LoadSecure (filename$,securecode=1) Local checksum Local sum Local filelength Local currentbyte Local file Local bank file=OpenFile (filename) If file bank =CreateBank ( ReadInt(File) ) filelength=BankSize ( bank ) For c = 0 To filelength If Eof (file) RuntimeError "?!" Exit currentbyte=ReadByte (file) PokeByte bank,c,currentbyte checksum=checksum+securecode*(currentbyte+c) Next sum=ReadInt (file) If checksum = sum CloseFile file Return bank Else CloseFile file Print checksum RuntimeError "Load failed "+sum EndIf Else RuntimeError "File failed" EndIf End Function BMAXCODE Code: [AUSKLAPPEN] ' SECUREDATA V1.0 '---------------- ' ' author : C64 ' '---------------- Rem ' EXAMPLE ' ------- Local bank:TBank=CreateBank (10001) For Local c:Int=1 To 10000 PokeByte (bank,c,Rand(255)) Next saveSecure"testfile.ssc",bank,666 loadSecure"testfile.ssc", 666 EndRem Function SaveSecure (filename:String,bank:TBank,securecode:Int=1) Local checksum :Int .. ,filelength :Int .. ,currentbyte :Byte .. ,file :TStream .. file=WriteFile (filename) filelength=BankSize (bank) WriteInt file,filelength For Local c:Int = 1 To filelength-1 currentbyte=PeekByte (bank,c) WriteByte file,currentbyte checksum:+securecode*(currentbyte+c) Next WriteInt file,checksum Print checksum CloseFile file EndFunction Function LoadSecure:TBank (filename:String,securecode:Int=1) Local checksum :Int .. ,sum :Int .. ,filelength :Int .. ,currentbyte :Byte .. ,file :TStream .. ,bank :TBank .. file=OpenFile (filename) If file bank =CreateBank ( ReadInt(File) ) filelength=BankSize ( bank ) For Local c:Int = 1 To filelength-1 If Eof (file) Exit currentbyte=ReadByte (file) PokeByte bank,c,currentbyte checksum:+securecode*(currentbyte+c) Next sum=ReadInt (file) If checksum = sum CloseFile file Return bank Else CloseFile file Notify "Load failed "+sum EndIf Else Notify "File failed" EndIf EndFunction SecureCode muss beim Speichern und laden gleich sein, deine Daten in eine Bank und aus dieser heraus zu bekommen musst du allein handeln. mfg. C64 |
||
Betreten verboten! Kinder haften für ihre Eltern! |
pile |
So, Feb 15, 2009 16:04 Antworten mit Zitat |
|
---|---|---|
Super, vielen Dank an Euch. Damit kann ich schon einiges Anfangen! | ||
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238% |
Pummelie |
Mi, Feb 18, 2009 10:39 Antworten mit Zitat |
|
---|---|---|
Meine Art daten zu sichern ist es sie an den komischsten orten abzuspeichern.
z.b. C:\Windows\System32\user88.dat ich schätze mal niemand ändert so gern was in dem ordner, und da muss man auch nichts verschlüsseln. |
||
It's done when it's done. |
BtbN |
Mi, Feb 18, 2009 10:45 Antworten mit Zitat |
|
---|---|---|
Eine sehr schlechte Idee, weil man normalerweise keinerlei rechte hat, dort irgendetwas zu schreiben, ausser wenn man mit Windows 98 arbeitet oder unter windows XP als administrator. Von beidem ist stark abzuraten, von deiner Lösung auch. | ||
kog |
Mi, Feb 18, 2009 11:05 Antworten mit Zitat |
|
---|---|---|
Dazu kommt, das man den System32 Ordner zumüllt oder nicht? | ||
hecticSieger des IS Talentwettbewerb 2006 |
Mi, Feb 18, 2009 13:25 Antworten mit Zitat |
|
---|---|---|
Ja, und man kann ganz leicht mit Filemon oder anderen 'besseren' Tools ganz leicht feststellen, wohin ein Datenzugriff stattfindet. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht BlitzBasic Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group