![]() |
Re: Welche Verschlüsselung steckt hier hinter?
Wieso? Ist doch gut. Hagens DEC besitzt MD5 und müsste auch TripleDES (genannt 3DES) unterstützen (Vorsicht vor evtl. unkompatiblen implementierungen). ECB gibts auch als Cipher-Mode. Jetzt brauchst du nur noch das ganze anzuwenden. Wenn du Hilfe dabei brauchst, kann ich dir ein Codebeispiel geben.
![]() ![]() Zusammenfassend: Hash = THash_Md5 Cipher = TCipher_3DES Mode = ECBx Kein KdFx |
Re: Welche Verschlüsselung steckt hier hinter?
danke!
wenn du nen schnipsel hast wär ich dir dankbar... hab mit der dec noch nicht gearbeitet. gruß reli |
Re: Welche Verschlüsselung steckt hier hinter?
OK.
Willst du Ver- oder Entschlüsselung (oder beides?) einer Savegame-Datei? Gruß Daniel Marschall |
Re: Welche Verschlüsselung steckt hier hinter?
nur entschlüsseln. muss nur an die infos ran um sie an ein script weiter zu geben
edit: hab dich mal ins icq geadded dann müssen wir für mini sätze nicht immer nen post machen :-) |
Re: Welche Verschlüsselung steckt hier hinter?
du hast dir aber schon
![]() |
Re: Welche Verschlüsselung steckt hier hinter?
jap hab ich und bin am basteln... klappt aber noch nicht so wirklich
Zitat:
|
Re: Welche Verschlüsselung steckt hier hinter?
Hallo.
Hier erstmal das Grundgerüst. Es funktioniert aber noch nicht wirklich... Format des Hashs ist unbekannt. Exceptions bei fehlerhafter Entschlüsselung werden nicht abgefangen und behandelt. Es existiert eine AccessViolation... Es ist nicht klar, ob ECB-Implementierung die selbe wie beim Originalcode des GTR2 ist...
Delphi-Quellcode:
unit Main;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; TGTR2SaveGameInfo = record Player: String; Time: String; end; var Form1: TForm1; implementation {$R *.dfm} uses DECHash, DECCipher, DECFmt; function GTR2Decode(AInput: string): string; var hash: THash_MD5; cipher: TCipher_3DES; tmp_md5, tmp_output: string; const Secret = 'Gtr2Manager'; begin // DEC Initialisierung SetDefaultCipherClass(TCipher_3DES); SetDefaultHashClass(THash_MD5); // 1. Compute hash of key (Gtr2Manager) hash := THash_MD5.Create; try tmp_md5 := hash.CalcBinary(Secret, TFormat_Copy); // WELCHES FORMAT??? finally hash.free; end; // 2. Use TripleDES ECB to decrypt data using computed key. cipher := TCipher_3DES.Create; try cipher.Mode := cmECBx; cipher.Init(tmp_md5); cipher.Decode(AInput, tmp_output, length(AInput)); // Dicke AccessViolation UniqueString(tmp_output); // Notwendig? finally cipher.free; end; result := tmp_output; end; function GTR2ReadSaveGame(AFilename: string): TGTR2SaveGameInfo; var txt: TextFile; tmp_player, tmp_time: string; begin AssignFile(txt, AFilename); Reset(txt); ReadLn(txt, tmp_player); result.Player := GTR2Decode(tmp_player); ReadLn(txt, tmp_time); result.Time := GTR2Decode(tmp_time); CloseFile(txt); end; procedure TForm1.Button1Click(Sender: TObject); var sav: TGTR2SaveGameInfo; begin sav := GTR2ReadSaveGame('C:\SaveGame.sav'); showmessage('Player=' + sav.Player); showmessage('Time=' + sav.Time); end; end. |
Re: Welche Verschlüsselung steckt hier hinter?
habs natürlich direkt mal mit deinem getestet.
hier noch ne weitere datei. mit dem 2. wert knallts nicht beim decode sondern beim uniqueString bzw. dem result geben (read access vio). Zitat:
|
Re: Welche Verschlüsselung steckt hier hinter?
Weiß nicht genau, wo die AV exakt war.
Ich befürchte, dass es mit DEC nicht geht. Wenn ich lese, der Key sei ein MD5, dann stelle ich mir entweder das Format TFormat_HEXL (Hexzeichen, Buchstaben klein) oder TFormat_HEX (Hexzeichen, Buchstaben groß) vor. So notiert man einen MD5 String in der Regel immer. Aber dann sagt der Cipher im DEC: "Keymaterial is to large as can be used, security issue". Hagen? |
Re: Welche Verschlüsselung steckt hier hinter?
Fehlerbehebung:
Delphi-Quellcode:
Zu dem Rest mit der Format-Geschichte kann ich aber nichts sagen. Es kommt nur Müll am Ende raus.
// 2. Use TripleDES ECB to decrypt data using computed key.
try cipher := TCipher_3DES.Create; try cipher.Mode := cmECBx; cipher.Init(tmp_md5); result := cipher.DecodeBinary(AInput); finally cipher.free; end; except result := '???'; end; Vielleicht ist die ECB-Implementierung anders (ist ECBx was anderes?) oder der GTR2-Algorithmus verwendet tatsächlich TFormat_HEX oder TFormat_HEXL, was aber "Size > Context.KeySize" zur Folge hat und daher von Hagen deaktiviert wurde. PS: Ich glaube nicht, dass "ZX8uAy7DSZM=" ein korrekter Wert ist. Deine anderen Ergebnisse haben immer ein "IUYL258//OA==" am Ende, wieso jetzt also nicht? Ich arbeite zum Testen mit den Werten aus deinem initialen Post. Gruß Daniel Marschall |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz