Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Welche Verschlüsselung steckt hier hinter? (https://www.delphipraxis.net/114473-welche-verschluesselung-steckt-hier-hinter.html)

blackdrake 28. Mai 2008 21:17

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.

http://www.delphipraxis.net/internal...&highlight=dec

http://www.michael-puff.de/Developer...agen_Reddmann/

Zusammenfassend:

Hash = THash_Md5
Cipher = TCipher_3DES
Mode = ECBx
Kein KdFx

Relicted 28. Mai 2008 21:27

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

blackdrake 28. Mai 2008 21:29

Re: Welche Verschlüsselung steckt hier hinter?
 
OK.

Willst du Ver- oder Entschlüsselung (oder beides?) einer Savegame-Datei?

Gruß
Daniel Marschall

Relicted 28. Mai 2008 21:30

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 :-)

grenzgaenger 28. Mai 2008 21:36

Re: Welche Verschlüsselung steckt hier hinter?
 
du hast dir aber schon das hier angesehen?

Relicted 28. Mai 2008 21:56

Re: Welche Verschlüsselung steckt hier hinter?
 
jap hab ich und bin am basteln... klappt aber noch nicht so wirklich

Zitat:

registered classes

E1B35EAB : TFormat_HEX
39D2D18D : TFormat_HEXL
B7EF2999 : TFormat_MIME32
23FB78E9 : TFormat_MIME64
CF6B46D3 : TFormat_PGP
6FCCDE6F : TFormat_UU
A4D3DC9F : TFormat_XX
168B27C3 : TFormat_ESCAPE
D3A02D0F : THash_MD2
3AC3883A : THash_MD4
4DC4B8AC : THash_MD5
A0A1CCFF : THash_SHA
7B215B73 : THash_SHA1
9EE7F031 : THash_SHA256
C4858567 : THash_SHA384
F8A9E7A9 : THash_SHA512
8442C643 : THash_Sapphire
323031D0 : THash_Panama
0E0D5F38 : THash_Tiger
47EEAE41 : THash_RipeMD128
2D59E377 : THash_RipeMD160
ED51ABD8 : THash_RipeMD256
4AB1F21D : THash_RipeMD320
B0837E88 : THash_Haval128
DA3433BE : THash_Haval160
B3A24E5D : THash_Haval192
BB738CFA : THash_Haval224
1A3C7B11 : THash_Haval256
5CCB1E12 : THash_Whirlpool
A566AF64 : THash_Whirlpool1
996BCEE5 : THash_Square
E3374275 : THash_Snefru128
498847EC : THash_Snefru256
54E9A294 : TCipher_Blowfish
B38AB3E6 : TCipher_Twofish
3938F197 : TCipher_IDEA
47C2021C : TCipher_Cast256
46AB51F5 : TCipher_Mars
73A3DF5A : TCipher_RC4
9DADBE76 : TCipher_RC6
F8B830A5 : TCipher_Rijndael
2954C319 : TCipher_Square
938C9891 : TCipher_SCOP
42FAA470 : TCipher_Sapphire
640A08AC : TCipher_1DES
76BFA742 : TCipher_2DES
CE03C027 : TCipher_3DES
70C155BD : TCipher_2DDES
4DA17C0D : TCipher_3DDES
1DB82B92 : TCipher_3TDES
54DAF114 : TCipher_3Way
ED7D0785 : TCipher_Cast128
A4F73879 : TCipher_Gost
534C8585 : TCipher_Misty
5EE9D8B9 : TCipher_NewDES
B70802F5 : TCipher_Q128
9AC07A6F : TCipher_RC2
04A4EFCC : TCipher_RC5
97CE1F8A : TCipher_SAFER
8E616AD3 : TCipher_Shark
D2283F49 : TCipher_Skipjack
011B81DD : TCipher_TEA
6E5ACC77 : TCipher_TEAN


File En/Decryption test
Class 5A583875 not registered
habe die demo aus der installation benutzt

blackdrake 28. Mai 2008 22:02

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.

Relicted 28. Mai 2008 22:11

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:

ZX8uAy7DSZM=
obZzyUy8HVDIUYL258//OA==

blackdrake 28. Mai 2008 22:15

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?

blackdrake 28. Mai 2008 22:34

Re: Welche Verschlüsselung steckt hier hinter?
 
Fehlerbehebung:

Delphi-Quellcode:
  // 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;
Zu dem Rest mit der Format-Geschichte kann ich aber nichts sagen. Es kommt nur Müll am Ende raus.

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.
Seite 2 von 3     12 3      

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