Progress.ini entschlüsseln (Duke Nukem Forever)

Guten Tag :)

ich habe hier das Spiel Duke Nukem Forever vor mir, und möchte etwas rum probieren, modden, etc.

Im Hauptordner des Spieles gibt es die Datei "Progress.ini".
Wenn ich versuche diese mit dem Texteditor zu öffnen, erhalte ich nur solche Zeichen:

Progress.ini - Pastebin.com (dies ist die vollständige Datei)

Ich nehme an das es sich um eine XOR-Verschlüsselung handelt (Ich kenne mich leider mit Verschlüsselungen noch nicht so aus, deshalb greife ich einfach mal ins leere und stelle diese Behauptung auf :rolleyes: )

Ich habe versucht etwas über Ollydbg raus zu bekommen und in der .exe von Duke Nukem Forever nach den String "Progress.ini" gesucht und bin dort hin gejumpt.

Das ganze sieht dann in etwa so aus:


Sieht sehr nach der Laderoutine meiner Datei aus?
Dann bin ich noch dem Call gefolgt um evtl. etwas von der Verschlüsselung zu erfahren.

Über den Call lande ich in dieser Routine:

Code:
10909200  /$ 55             PUSH EBP
10909201  |. 8BEC           MOV EBP,ESP
10909203  |. 6A FF          PUSH -1
10909205  |. 68 34109110    PUSH DukeFore.10911034                   ;  SE handler installation
1090920A  |. 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
10909210  |. 50             PUSH EAX
10909211  |. 64:8925 000000>MOV DWORD PTR FS:[0],ESP
10909218  |. 81EC 80000000  SUB ESP,80
1090921E  |. 53             PUSH EBX
1090921F  |. 56             PUSH ESI
10909220  |. 57             PUSH EDI
10909221  |. 898D 74FFFFFF  MOV [LOCAL.35],ECX
10909227  |. 8D4D E8        LEA ECX,[LOCAL.6]
1090922A  |. FF15 18269110  CALL DWORD PTR DS:[<&dnCommon.??0dnStrin>;  dnCommon.??0dnString@@QAE@XZ
10909230  |. C745 FC 000000>MOV [LOCAL.1],0
10909237  |. 8D45 E8        LEA EAX,[LOCAL.6]
1090923A  |. 50             PUSH EAX                                 ; /Arg1
1090923B  |. 8B4D 08        MOV ECX,[ARG.1]                          ; |
1090923E  |. E8 EDFDFFFF    CALL DukeFore.10909030                   ; \DukeFore.10909030
10909243  |. 837D 10 00     CMP [ARG.3],0
10909247  |. 0F84 DC000000  JE DukeFore.10909329
1090924D  |. 8D4D DC        LEA ECX,[LOCAL.9]
10909250  |. FF15 0C219110  CALL DWORD PTR DS:[<&Engine.??0?$dnArray>;  Engine.??0FStaticMeshSVVertexStream_Legacy@@QAE@XZ
10909256  |. C645 FC 01     MOV BYTE PTR SS:[EBP-4],1
1090925A  |. 8D4D E8        LEA ECX,[LOCAL.6]
1090925D  |. FF15 F8259110  CALL DWORD PTR DS:[<&dnCommon.?Num@dnArr>;  dnCommon.?Num@dnArrayBase@@QBEHXZ
10909263  |. D1E0           SHL EAX,1
10909265  |. 50             PUSH EAX
10909266  |. 8D4D DC        LEA ECX,[LOCAL.9]
10909269  |. FF15 54219110  CALL DWORD PTR DS:[<&Engine.?AddZeroed@?>;  Engine.?AddZeroed@?$dnArray@E@@QAEHH@Z
1090926F  |. 8D4D E8        LEA ECX,[LOCAL.6]
10909272  |. FF15 F8259110  CALL DWORD PTR DS:[<&dnCommon.?Num@dnArr>;  dnCommon.?Num@dnArrayBase@@QBEHXZ
10909278  |. D1E0           SHL EAX,1
1090927A  |. 8985 78FFFFFF  MOV [LOCAL.34],EAX
10909280  |. 8D4D E8        LEA ECX,[LOCAL.6]
10909283  |. FF15 B0249110  CALL DWORD PTR DS:[<&dnCommon.?GetData@d>;  dnCommon.?GetData@dnArrayBase@@QAEPAXXZ
10909289  |. 8985 7CFFFFFF  MOV [LOCAL.33],EAX
1090928F  |. 8D4D DC        LEA ECX,[LOCAL.9]
10909292  |. FF15 B0249110  CALL DWORD PTR DS:[<&dnCommon.?GetData@d>;  dnCommon.?GetData@dnArrayBase@@QAEPAXXZ
10909298  |. 8945 80        MOV [LOCAL.32],EAX
1090929B  |. 8B8D 78FFFFFF  MOV ECX,[LOCAL.34]
109092A1  |. 8BB5 7CFFFFFF  MOV ESI,[LOCAL.33]
109092A7  |. 8B7D 80        MOV EDI,[LOCAL.32]
109092AA  |. 8BD9           MOV EBX,ECX
109092AC  |. C1E9 02        SHR ECX,2
109092AF  |. 83E3 03        AND EBX,3
109092B2  |. F3:A5          REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
109092B4  |. 8BCB           MOV ECX,EBX
109092B6  |. F3:A4          REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
109092B8  |. 8D4D DC        LEA ECX,[LOCAL.9]
109092BB  |. 51             PUSH ECX                                 ; /Arg1
109092BC  |. E8 2FB7FFFF    CALL DukeFore.109049F0                   ; \DukeFore.109049F0
109092C1  |. 83C4 04        ADD ESP,4
109092C4  |. 85C0           TEST EAX,EAX
109092C6  |. 74 54          JE SHORT DukeFore.1090931C
109092C8  |. 8B55 0C        MOV EDX,[ARG.2]
109092CB  |. 52             PUSH EDX
109092CC  |. 8D4D CC        LEA ECX,[LOCAL.13]
109092CF  |. FF15 D0259110  CALL DWORD PTR DS:[<&dnCommon.??0dnStrin>;  dnCommon.??0dnString@@QAE@PB_W@Z
109092D5  |. C645 FC 02     MOV BYTE PTR SS:[EBP-4],2
109092D9  |. 8D45 DC        LEA EAX,[LOCAL.9]
109092DC  |. 50             PUSH EAX
109092DD  |. 8D4D CC        LEA ECX,[LOCAL.13]
109092E0  |. 51             PUSH ECX
109092E1  |. FF15 60219110  CALL DWORD PTR DS:[<&Engine.?s_WriteToFi>;  Engine.?s_WriteToFile@@YAHABVdnString@@AAV?$dnArray@E@@@Z
109092E7  |. 83C4 08        ADD ESP,8
109092EA  |. 8945 D8        MOV [LOCAL.10],EAX
109092ED  |. C645 FC 01     MOV BYTE PTR SS:[EBP-4],1
109092F1  |. 8D4D CC        LEA ECX,[LOCAL.13]
109092F4  |. FF15 3C269110  CALL DWORD PTR DS:[<&dnCommon.??1dnStrin>;  dnCommon.??1dnString@@QAE@XZ
109092FA  |. C645 FC 00     MOV BYTE PTR SS:[EBP-4],0
109092FE  |. 8D4D DC        LEA ECX,[LOCAL.9]
10909301  |. FF15 4C219110  CALL DWORD PTR DS:[<&Engine.??1?$dnArray>;  Engine.??1?$dnArray@E@@QAE@XZ
10909307  |. C745 FC FFFFFF>MOV [LOCAL.1],-1
1090930E  |. 8D4D E8        LEA ECX,[LOCAL.6]
10909311  |. FF15 3C269110  CALL DWORD PTR DS:[<&dnCommon.??1dnStrin>;  dnCommon.??1dnString@@QAE@XZ
10909317  |. 8B45 D8        MOV EAX,[LOCAL.10]
1090931A  |. EB 52          JMP SHORT DukeFore.1090936E
1090931C  |> C645 FC 00     MOV BYTE PTR SS:[EBP-4],0
10909320  |. 8D4D DC        LEA ECX,[LOCAL.9]
10909323  |. FF15 4C219110  CALL DWORD PTR DS:[<&Engine.??1?$dnArray>;  Engine.??1?$dnArray@E@@QAE@XZ
10909329  |> 8B55 0C        MOV EDX,[ARG.2]
1090932C  |. 52             PUSH EDX
1090932D  |. 8D4D BC        LEA ECX,[LOCAL.17]
10909330  |. FF15 D0259110  CALL DWORD PTR DS:[<&dnCommon.??0dnStrin>;  dnCommon.??0dnString@@QAE@PB_W@Z
10909336  |. C645 FC 03     MOV BYTE PTR SS:[EBP-4],3
1090933A  |. 8D45 E8        LEA EAX,[LOCAL.6]
1090933D  |. 50             PUSH EAX
1090933E  |. 8D4D BC        LEA ECX,[LOCAL.17]
10909341  |. 51             PUSH ECX
10909342  |. FF15 5C219110  CALL DWORD PTR DS:[<&Engine.?s_WriteStri>;  Engine.?s_WriteStringToFile@@YAHABVdnString@@0@Z
10909348  |. 83C4 08        ADD ESP,8
1090934B  |. 8945 C8        MOV [LOCAL.14],EAX
1090934E  |. C645 FC 00     MOV BYTE PTR SS:[EBP-4],0
10909352  |. 8D4D BC        LEA ECX,[LOCAL.17]
10909355  |. FF15 3C269110  CALL DWORD PTR DS:[<&dnCommon.??1dnStrin>;  dnCommon.??1dnString@@QAE@XZ
1090935B  |. C745 FC FFFFFF>MOV [LOCAL.1],-1
10909362  |. 8D4D E8        LEA ECX,[LOCAL.6]
10909365  |. FF15 3C269110  CALL DWORD PTR DS:[<&dnCommon.??1dnStrin>;  dnCommon.??1dnString@@QAE@XZ
1090936B  |. 8B45 C8        MOV EAX,[LOCAL.14]
1090936E  |> 8B4D F4        MOV ECX,[LOCAL.3]
10909371  |. 64:890D 000000>MOV DWORD PTR FS:[0],ECX
10909378  |. 5F             POP EDI
10909379  |. 5E             POP ESI
1090937A  |. 5B             POP EBX
1090937B  |. 8BE5           MOV ESP,EBP
1090937D  |. 5D             POP EBP
1090937E  \. C2 0C00        RETN 0C


Doch wie gehe ich jetzt am besten bei so etwas vor? Wäre toll wenn mir jemand kongret zu meinem Beispiel helfen könnte, aber ich würde mich auch über ein allgemeines Beispiel / Tutorial freuen, wie man bei so etwas vor geht!
 
Zurück
Oben