Ini Verschlüsseln erkennt Variable nicht?

  • Hallo,
    Ich hab mich mit dem verschlüsseln von .inis für z.B. Spielstände auseinandergesetzt. Nun weis ich wie ich die .ini verschlüssel, bei Bedarf entschlüsseln und auslesen und anschliesend wieder verschlüsseln kann. Ich habe dafür dieses Script gefunden(By Shadow992):

    Spoiler anzeigen
    [autoit]


    $satz=Inputbox("","Gib den zu verschlüsselnden Satz ein")
    $key=Inputbox("","Gib das passwort ein")
    $encrypt=_XXTEA_Encrypt($satz, $key)
    IniWrite("save.ini", "norm", "key", $encrypt)
    $decrypt=_XXTEA_Decrypt($encrypt, $key)
    $decrypt=BinarytoString($decrypt)
    IniWrite("save.ini", "norm", "key", $decrypt)
    $iniread = IniRead("save.ini", "norm", "key", "0")
    MsgBox(0, "lol", $iniread)
    IniWrite("save.ini", "norm", "key", $encrypt)

    [/autoit] [autoit][/autoit] [autoit]

    Func _XXTEA_Encrypt($Data, $Key)
    $Data = Binary($Data)
    Local $DataLen = BinaryLen($Data)
    If $DataLen = 0 Then
    Return ""
    ElseIf $DataLen < 8 Then
    $DataLen = 8
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Local $Opcode = '0x83EC14B83400000099538B5C2420558B6C242056578B7C9DFCF7FB89C683C606C74424180000000085F68D76FF0F8EEA000000896C24288D4BFF8D549D00894C2410895424148974242081442418B979379E8B4C2418C1E90281E103000000894C241C31F6397424107E568B5424288BCF8B6CB204C1E9058D14AD0000000033CA8BD58BC7C1EA03C1E00433D003CA8B5424188BDE81E303000000335C241C8B4424308B1C9833D533DF03D333CA8B542428010CB28B0CB2463974241089CF7FAA8B5424288BCF8B2AC1E9058D14AD0000000033CA8BD58BC7C1EA03C1E00433D003CA8B5424188BDE81E303000000335C241C8B4424308B1C9833D533DF03D3FF4C242033CA8B542414014AFC8B4AFC8B54242089CF420F8F2DFFFFFF5F31C05E5D5B83C414C21000'
    Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]")
    DllStructSetData($CodeBuffer, 1, $Opcode)

    [/autoit] [autoit][/autoit] [autoit]

    Local $V = DllStructCreate("byte[" & Ceiling($DataLen / 4) * 4 & "]")
    DllStructSetData($V, 1, $Data)

    [/autoit] [autoit][/autoit] [autoit]

    Local $K = DllStructCreate("byte[16]")
    DllStructSetData($K, 1, $Key)

    [/autoit] [autoit][/autoit] [autoit]

    DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer), _
    "ptr", DllStructGetPtr($V), _
    "int", Ceiling($DataLen / 4), _
    "ptr", DllStructGetPtr($K), _
    "int", 0)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Ret = DllStructGetData($V, 1)
    $CodeBuffer = 0
    $V = 0
    $K = 0
    Return $Ret
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _XXTEA_Decrypt($Data, $Key)
    $Data = Binary($Data)
    Local $DataLen = BinaryLen($Data)
    If $DataLen = 0 Then Return ""

    [/autoit] [autoit][/autoit] [autoit]

    Local $Opcode = '0x83EC10B83400000099538B5C241C55568B742420578B3EF7FB69D0B979379E81C256DA4CB5895424180F84DD000000897424248D4BFF8D149E894C2410895424148B4C2418C1E90281E103000000894C241C8B742410837C2410007E528B5424248B6CB2FC8BCD8BD7C1E905C1E20233CA8BD78BC5C1EA03C1E00433D003CA8B5424188BDE81E3030000008B44242C33D7335C241C8B1C9833DD03D333CA8B542424290CB28B0CB24E89CF85F67FAE8B5424148B6AFC8BCD8BD7C1E905C1E20233CA8BD78BC5C1EA03C1E00433D003CA8B5424188BDE81E3030000008B44242C33D7335C241C8B1C9833DD03D333CA8B542424290A8B0A89CF814424184786C861837C2418000F8535FFFFFF5F31C05E5D5B83C410C21000'
    Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]")
    DllStructSetData($CodeBuffer, 1, $Opcode)

    [/autoit] [autoit][/autoit] [autoit]

    Local $V = DllStructCreate("byte[" & Ceiling($DataLen / 4) * 4 & "]")
    DllStructSetData($V, 1, $Data)

    [/autoit] [autoit][/autoit] [autoit]

    Local $K = DllStructCreate("byte[16]")
    DllStructSetData($K, 1, $Key)

    [/autoit] [autoit][/autoit] [autoit]

    DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer), _
    "ptr", DllStructGetPtr($V), _
    "int", Ceiling($DataLen / 4), _
    "ptr", DllStructGetPtr($K), _
    "int", 0)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Ret = DllStructGetData($V, 1)
    $CodeBuffer = 0
    $V = 0
    $K = 0
    Return $Ret
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _RC4($Data, $Key)
    Local $Opcode = "0xC81001006A006A005356578B551031C989C84989D7F2AE484829C88945F085C00F84DC000000B90001000088C82C0188840DEFFEFFFFE2F38365F4008365FC00817DFC000100007D478B45FC31D2F775F0920345100FB6008B4DFC0FB68C0DF0FEFFFF01C80345F425FF0000008945F48B75FC8A8435F0FEFFFF8B7DF486843DF0FEFFFF888435F0FEFFFFFF45FCEBB08D9DF0FEFFFF31FF89FA39550C76638B85ECFEFFFF4025FF0000008985ECFEFFFF89D80385ECFEFFFF0FB6000385E8FEFFFF25FF0000008985E8FEFFFF89DE03B5ECFEFFFF8A0689DF03BDE8FEFFFF860788060FB60E0FB60701C181E1FF0000008A840DF0FEFFFF8B750801D6300642EB985F5E5BC9C21000"
    Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]")
    DllStructSetData($CodeBuffer, 1, $Opcode)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Buffer = DllStructCreate("byte[" & BinaryLen($Data) & "]")
    DllStructSetData($Buffer, 1, $Data)

    [/autoit] [autoit][/autoit] [autoit]

    DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer), _
    "ptr", DllStructGetPtr($Buffer), _
    "int", BinaryLen($Data), _
    "str", $Key, _
    "int", 0)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Ret = DllStructGetData($Buffer, 1)
    $Buffer = 0
    $CodeBuffer = 0
    Return $Ret
    EndFunc

    [/autoit]

    Die Datei entschlüsselt die Ini, liest sie aus, verschüsselt sie wieder und gibt den Inhalt in einer MsgBox wieder. Nun habe ich für mein Spiel das Script oben angewendet(Auszug):

    Spoiler anzeigen
    [autoit]


    $key = "Warlord"
    $en_int = _XXTEA_Encrypt($int_self, $key)
    $en_starke = _XXTEA_Encrypt($starke_self, $key)
    $en_bew = _XXTEA_Encrypt($bew_self, $key)
    $en_ausdauer = _XXTEA_Encrypt($ausdauer_self, $key)
    $en_blocken = _XXTEA_Encrypt($blocken_self, $key)
    $en_treffer = _XXTEA_Encrypt($treffer_self, $key)
    $en_crit = _XXTEA_Encrypt($crit_self, $key)
    $en_life = _XXTEA_Encrypt($life_self, $key)
    $en_max_life = _XXTEA_Encrypt($max_life_self, $key)
    $en_level = _XXTEA_Encrypt($level_self, $key)
    $en_gold = _XXTEA_Encrypt($gold_self, $key)
    $en_quest1 = _XXTEA_Encrypt($quest1, $key)
    $en_ep = _XXTEA_Encrypt($ep_self, $key)
    $en_quest2 = _XXTEA_Encrypt($quest2, $key)
    $en_quest2eq = _XXTEA_Encrypt($quest2eq, $key)
    $en_gilde = _XXTEA_Encrypt($gilde, $key)
    $en_trank_der_starke = _XXTEA_Encrypt($trank_der_starke, $key)
    $en_quest1_start = _XXTEA_Encrypt($quest1_start, $key)
    $en_quest2_start = _XXTEA_Encrypt($quest2_start, $key)
    $en_volk = _XXTEA_Encrypt($volk, $key)
    $en_class = _XXTEA_Encrypt($class, $key)

    [/autoit] [autoit][/autoit] [autoit]

    $de_volk = _XXTEA_Decrypt($en_volk, $key)
    $de_volk = BinaryToString($de_volk)
    $de_class = _XXTEA_Decrypt($en_class, $key)
    $de_class = BinaryToString($de_class)
    $de_int = _XXTEA_Decrypt($en_int, $key)
    $de_int = BinaryToString($de_int)
    $de_starke = _XXTEA_Decrypt($en_starke, $key)
    $de_starke = BinaryToString($de_starke)
    $de_bew = _XXTEA_Decrypt($en_bew, $key)
    $de_bew = BinaryToString($de_bew)
    $de_ausdauer = _XXTEA_Decrypt($en_ausdauer, $key)
    $de_ausdauer = BinaryToString($de_ausdauer)
    $de_blocken = _XXTEA_Decrypt($en_blocken, $key)
    $de_blocken = BinaryToString($de_blocken)
    $de_treffer = _XXTEA_Decrypt($en_treffer, $key)
    $de_treffer = BinaryToString($de_treffer)
    $de_crit = _XXTEA_Decrypt($en_crit, $key)
    $de_crit = BinaryToString($de_crit)
    $de_life = _XXTEA_Decrypt($en_life, $key)
    $de_life = BinaryToString($de_life)
    $de_max_life = _XXTEA_Decrypt($en_max_life, $key)
    $de_max_life = BinaryToString($de_max_life)
    $de_level = _XXTEA_Decrypt($en_level, $key)
    $de_level = BinaryToString($de_level)
    $de_gold = _XXTEA_Decrypt($en_gold, $key)
    $de_gold = BinaryToString($de_gold)
    $de_quest1 = _XXTEA_Decrypt($en_quest1, $key)
    $de_quest1 = BinaryToString($de_quest1)
    $de_ep = _XXTEA_Decrypt($en_ep, $key)
    $de_ep = BinaryToString($de_ep)
    $de_quest2 = _XXTEA_Decrypt($en_quest2, $key)
    $de_quest2 = BinaryToString($de_quest2)
    $de_quest2eq = _XXTEA_Decrypt($en_quest2eq, $key)
    $de_quest2eq = BinaryToString($de_quest2eq)
    $de_gilde = _XXTEA_Decrypt($en_gilde, $key)
    $de_gilde = BinaryToString($de_gilde)
    $de_trank_der_starke = _XXTEA_Decrypt($en_trank_der_starke, $key)
    $de_trank_der_starke = BinaryToString($de_trank_der_starke)
    $de_quest1_start = _XXTEA_Decrypt($en_quest1_start, $key)
    $de_quest1_start = BinaryToString($de_quest1_start)
    $de_quest2_start = _XXTEA_Decrypt($en_quest2_start, $key)
    $de_quest2_start = BinaryToString($de_quest2_start)

    [/autoit] [autoit][/autoit] [autoit]

    Func Ini_Write()
    IniWrite("save.ini", "general", "volk", $en_volk)
    IniWrite("save.ini", "general", "klasse", $en_class)
    IniWrite("save.ini", "stats", "int", $en_int)
    IniWrite("save.ini", "stats", "starke", $en_starke)
    IniWrite("save.ini", "stats", "bew", $en_bew)
    IniWrite("save.ini", "stats", "ausdauer", $en_ausdauer)
    IniWrite("save.ini", "stats", "blocken", $en_blocken)
    IniWrite("save.ini", "stats", "treffer", $en_treffer)
    IniWrite("save.ini", "stats", "crit", $en_crit)
    IniWrite("save.ini", "general", "life", $en_life)
    IniWrite("save.ini", "general", "maxlife", $en_max_life)
    IniWrite("save.ini", "general", "level", $en_level)
    IniWrite("save.ini", "general", "gold", $en_gold)
    IniWrite("save.ini", "quests", "quest1", $en_quest1)
    IniWrite("save.ini", "general", "ep", $en_ep)
    IniWrite("save.ini", "quests", "quest2", $en_quest2)
    IniWrite("save.ini", "quests", "quest2eq", $en_quest2eq)
    IniWrite("save.ini", "general", "gilde", $en_gilde)
    IniWrite("save.ini", "tranke", "trank_der_starke", $en_trank_der_starke)
    IniWrite("save.ini", "quests", "quest1_start", $en_quest1_start)
    IniWrite("save.ini", "quests", "quest2_start", $en_quest2_start)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Ini_Write_de()
    IniWrite("save.ini", "stats", "int", $de_int)
    IniWrite("save.ini", "stats", "starke", $de_starke)
    IniWrite("save.ini", "stats", "bew", $de_bew)
    IniWrite("save.ini", "stats", "ausdauer", $de_ausdauer)
    IniWrite("save.ini", "stats", "blocken", $de_blocken)
    IniWrite("save.ini", "stats", "treffer", $de_treffer)
    IniWrite("save.ini", "stats", "crit", $de_crit)
    IniWrite("save.ini", "general", "life", $de_life)
    IniWrite("save.ini", "general", "maxlife", $de_max_life)
    IniWrite("save.ini", "general", "level", $de_level)
    IniWrite("save.ini", "general", "gold", $de_gold)
    IniWrite("save.ini", "quests", "quest1", $de_quest1)
    IniWrite("save.ini", "general", "ep", $de_ep)
    IniWrite("save.ini", "quests", "quest2", $de_quest2)
    IniWrite("save.ini", "quests", "quest2eq", $de_quest2eq)
    IniWrite("save.ini", "general", "gilde", $de_gilde)
    IniWrite("save.ini", "tranke", "trank_der_starke", $de_trank_der_starke)
    IniWrite("save.ini", "quests", "quest1_start", $de_quest1_start)
    IniWrite("save.ini", "quests", "quest2_start", $de_quest2_start)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _XXTEA_Encrypt($Data, $Key)
    $Data = Binary($Data)
    Local $DataLen = BinaryLen($Data)
    If $DataLen = 0 Then
    Return ""
    ElseIf $DataLen < 8 Then
    $DataLen = 8
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Local $Opcode = '0x83EC14B83400000099538B5C2420558B6C242056578B7C9DFCF7FB89C683C606C74424180000000085F68D76FF0F8EEA000000896C24288D4BFF8D549D00894C2410895424148974242081442418B979379E8B4C2418C1E90281E103000000894C241C31F6397424107E568B5424288BCF8B6CB204C1E9058D14AD0000000033CA8BD58BC7C1EA03C1E00433D003CA8B5424188BDE81E303000000335C241C8B4424308B1C9833D533DF03D333CA8B542428010CB28B0CB2463974241089CF7FAA8B5424288BCF8B2AC1E9058D14AD0000000033CA8BD58BC7C1EA03C1E00433D003CA8B5424188BDE81E303000000335C241C8B4424308B1C9833D533DF03D3FF4C242033CA8B542414014AFC8B4AFC8B54242089CF420F8F2DFFFFFF5F31C05E5D5B83C414C21000'
    Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]")
    DllStructSetData($CodeBuffer, 1, $Opcode)

    [/autoit] [autoit][/autoit] [autoit]

    Local $V = DllStructCreate("byte[" & Ceiling($DataLen / 4) * 4 & "]")
    DllStructSetData($V, 1, $Data)

    [/autoit] [autoit][/autoit] [autoit]

    Local $K = DllStructCreate("byte[16]")
    DllStructSetData($K, 1, $Key)

    [/autoit] [autoit][/autoit] [autoit]

    DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer), _
    "ptr", DllStructGetPtr($V), _
    "int", Ceiling($DataLen / 4), _
    "ptr", DllStructGetPtr($K), _
    "int", 0)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Ret = DllStructGetData($V, 1)
    $CodeBuffer = 0
    $V = 0
    $K = 0
    Return $Ret
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _XXTEA_Decrypt($Data, $Key)
    $Data = Binary($Data)
    Local $DataLen = BinaryLen($Data)
    If $DataLen = 0 Then Return ""

    [/autoit] [autoit][/autoit] [autoit]

    Local $Opcode = '0x83EC10B83400000099538B5C241C55568B742420578B3EF7FB69D0B979379E81C256DA4CB5895424180F84DD000000897424248D4BFF8D149E894C2410895424148B4C2418C1E90281E103000000894C241C8B742410837C2410007E528B5424248B6CB2FC8BCD8BD7C1E905C1E20233CA8BD78BC5C1EA03C1E00433D003CA8B5424188BDE81E3030000008B44242C33D7335C241C8B1C9833DD03D333CA8B542424290CB28B0CB24E89CF85F67FAE8B5424148B6AFC8BCD8BD7C1E905C1E20233CA8BD78BC5C1EA03C1E00433D003CA8B5424188BDE81E3030000008B44242C33D7335C241C8B1C9833DD03D333CA8B542424290A8B0A89CF814424184786C861837C2418000F8535FFFFFF5F31C05E5D5B83C410C21000'
    Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]")
    DllStructSetData($CodeBuffer, 1, $Opcode)

    [/autoit] [autoit][/autoit] [autoit]

    Local $V = DllStructCreate("byte[" & Ceiling($DataLen / 4) * 4 & "]")
    DllStructSetData($V, 1, $Data)

    [/autoit] [autoit][/autoit] [autoit]

    Local $K = DllStructCreate("byte[16]")
    DllStructSetData($K, 1, $Key)

    [/autoit] [autoit][/autoit] [autoit]

    DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer), _
    "ptr", DllStructGetPtr($V), _
    "int", Ceiling($DataLen / 4), _
    "ptr", DllStructGetPtr($K), _
    "int", 0)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Ret = DllStructGetData($V, 1)
    $CodeBuffer = 0
    $V = 0
    $K = 0
    Return $Ret
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _RC4($Data, $Key)
    Local $Opcode = "0xC81001006A006A005356578B551031C989C84989D7F2AE484829C88945F085C00F84DC000000B90001000088C82C0188840DEFFEFFFFE2F38365F4008365FC00817DFC000100007D478B45FC31D2F775F0920345100FB6008B4DFC0FB68C0DF0FEFFFF01C80345F425FF0000008945F48B75FC8A8435F0FEFFFF8B7DF486843DF0FEFFFF888435F0FEFFFFFF45FCEBB08D9DF0FEFFFF31FF89FA39550C76638B85ECFEFFFF4025FF0000008985ECFEFFFF89D80385ECFEFFFF0FB6000385E8FEFFFF25FF0000008985E8FEFFFF89DE03B5ECFEFFFF8A0689DF03BDE8FEFFFF860788060FB60E0FB60701C181E1FF0000008A840DF0FEFFFF8B750801D6300642EB985F5E5BC9C21000"
    Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]")
    DllStructSetData($CodeBuffer, 1, $Opcode)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Buffer = DllStructCreate("byte[" & BinaryLen($Data) & "]")
    DllStructSetData($Buffer, 1, $Data)

    [/autoit] [autoit][/autoit] [autoit]

    DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer), _
    "ptr", DllStructGetPtr($Buffer), _
    "int", BinaryLen($Data), _
    "str", $Key, _
    "int", 0)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Ret = DllStructGetData($Buffer, 1)
    $Buffer = 0
    $CodeBuffer = 0
    Return $Ret
    EndFunc

    [/autoit]

    Nun mache ich vor jedem IniRead dieses hier:

    [autoit]


    Ini_write_de()
    IniRead(...)
    Ini_write()

    [/autoit]

    Eine Ini_Write_de() wird direkt am Anfang gebraucht. Wenn ich das Script starte kommt folgender Fehler:

    Code
    ==> Variable used without being declared.:
    IniWrite("save.ini", "stats", "int", $de_int)
    IniWrite("save.ini", "stats", "int", ^ ERROR

    Need Help :(
    Mfg Nakroma

    Einmal editiert, zuletzt von Nakroma (22. Dezember 2010 um 09:12)

  • Jar, was das bedeutet ist mir klar. Nur die Variable ist deklariert wie man ja oben sieht.

    [autoit]

    $de_int = _XXTEA_Decrypt($en_int, $key)
    $de_int = BinaryToString($de_int)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
  • Zitat

    Eine Ini_Write_de() wird direkt am Anfang gebraucht.

    Das heist für mich, du führst die Funktion bereits einmal vor dem Skriptschnipsel den du uns hier zeigst aus.
    Zu diesem Zeitpunkt sind die Variablen aber noch nicht deklariert.

  • Hi!


    Nakroma
    Ich Versteh eins nicht was soll die Frage

    Zitat
    [autoit]

    Global
    $var = ....

    [/autoit]


    du hast andere Variablen auch Deklariert wie z.B

    [autoit]

    Local $Opcode = '0x83EC14B83400000099538B5C2420558B6C242056578B7C9DFCF7FB89C683C606C74424180000000085F68D76FF0F8EEA000000896C24288D4BFF8D549D00894C2410895424148974242081442418B979379E8B4C2418C1E90281E103000000894C241C31F6397424107E568B5424288BCF8B6CB204C1E9058D14AD0000000033CA8BD58BC7C1EA03C1E00433D003CA8B5424188BDE81E303000000335C241C8B4424308B1C9833D533DF03D333CA8B542428010CB28B0CB2463974241089CF7FAA8B5424288BCF8B2AC1E9058D14AD0000000033CA8BD58BC7C1EA03C1E00433D003CA8B5424188BDE81E303000000335C241C8B4424308B1C9833D533DF03D3FF4C242033CA8B542414014AFC8B4AFC8B54242089CF420F8F2DFFFFFF5F31C05E5D5B83C414C21000'
    Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]")

    [/autoit]

    warum denn nicht

    [autoit]

    Local $var = ...

    [/autoit]


    o.

    [autoit]

    Global $var = ...

    [/autoit]

    Lg Kleiner

  • Ein kleiner Tipp für Spielstände:

    Ich habe ja auch ein paar Spiele die Spielstände erfordern.
    Die Meiner Meinung nach einfachste Technik ist alles was in den Spielstand soll in ein Array zu packen. und dieses anschließend in einen String zu packen.

    Je nachdem wieviele Dimensionen das Array hast nutzt du zur Trennung der Daten ',' oder ';' oder ':' usw... sodass du später mit der StringSplit - Funktion den Datensalat wieder in ein brauchbares Array packen kannst.

    Der vorteil ist, dass du den String der dabei entsteht beliebig oft, kompliziert verschlüsseln kannst, ohne dass du an einen Dateiaufbau gebunden bist (wie bei der Ini mit Sektionen und Keys usw).
    Ein Highscore von DropOff2 (was ich grade mache) in einer Version die noch nicht im Forum ist ist z.B.

    Code
    796B666n177647m1i3hbsb1w4E68PW2j6Cg3peE4QnhSb8J13jSa2IDop4Ca5OBfrq5179dse4D7869d4Re5Y42RQcB6Ar51jefWFghuWDjo2020qP41Vz7i2lAV14O0J6ff6m7VFok6C71d4lI8H849xZ14AsXCdrfaZB3Bi4BY64F6FqHb0X03Ug31abB43Bi384yzyKp95L05nMa0ate3cC3bh4a85N8gT7kd6cbl933xwvD5k12C534k54ma6o5726vE3tu75A363732559c

    So sieht das ganze entschlüsselt aus.

    Code
    Statist Nummer 527,11739;Humbel,6539;Statist Nummer 728,5428;Statist Nummer 168,4322;Marcus,3200;Anonymus Maximus,2500;Statist Nummer 674,2477;Jones amo,2000;Statist Nummer 659,1876;Statist Nummer 291,1832;


    (wie man sieht wurde ein 2D-Array benutzt.)

    mfg
    Mars(i)