Delphi-PRAXiS

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)

Relicted 26. Mai 2008 09:20


Welche Verschlüsselung steckt hier hinter?
 
Moinsen!

Mal wieder was für unsere crypto profis (*zu hagen schiel*) :-)
vielleicht könnt ihr mir helfen. folgende informationen sind in einer datei gespeichert:
Zitat:

Schoelle
0:47,323
Ein Fahrername und eine Rundenzeit. Die Verschlüsslte datei sieht folgendermaßen aus:
Zitat:

rPYn3jd8BjrIUYL258//OA==
cgSN7xw3SYnIUYL258//OA==
welche information welche ist kann ich nicht sagen. aber vielleicht kann man sich annähern und zumindest die verschlüsselung bestimmen.
würd mich freuen wenn ihr mir helft.

Gruß
reli

blackdrake 26. Mai 2008 09:27

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

Direkter Base64 ist es schonmal keiner. Ich denke, du bekommst es ohne weitere Infos (wie z.B. Passwort) nicht heraus. Das, was du hast, ist vereinfachter ASCII-Code und könnte zu sehr vielen Algorithmen passen. Eventuell ein Base64 einer binären verschlüsselten Information, sodass die Daten per Plaintext/E-Mail versendet werden können.

Achja, sehr seltsam ist, dass beide unterschiedliche Strings am Ende ein "UYL258//OA==" tragen :?

Gruß
blackdrake

Relicted 26. Mai 2008 09:34

Re: Welche Verschlüsselung steckt hier hinter?
 
jup hat mich auch gewundert... mein erster verdacht war, dass der string aufgefüllt wird auf 18 zeichen und dann mit einer XOR verschlüsselt wird. passt aber leider nicht ganz.
schoelle = 8 zeichen, der part aber 11..

rPYn3jd8BjrIUYL258//OA==
cgSN7xw3SYnIUYL258//OA==

klar wäre es mit PW einfacher aber hey dann fehlt doch der spass dabei :-p

gruß
reli

QuickAndDirty 26. Mai 2008 11:35

Re: Welche Verschlüsselung steckt hier hinter?
 
Das liegt daran das es Base 64 ist... der Text wird quasi gestreckt

Wenn man den von dir angegebenen Code mit Base64 decodiert kommt ein haufen nicht druckbarer Zeichen raus.

Schoelle sähe so aus

U2Nob2VsbGU=

wenn man nach U=r geht könnte es schon mal nen Ansatz geben für eine fest Verschiebung der nach der Base64 Verschlüsselung.
Aber leider kommt 2=P nihct hin allso ists was anderes.
Bildet mal einer die Differenz zwischen allen Zeichen?

Relicted 26. Mai 2008 12:16

Re: Welche Verschlüsselung steckt hier hinter?
 
ok da kam ich jetzt nicht ganz hinterher :-)

kannst du die letzten sätze
"wenn man nach U=r geht könnte es schon mal nen Ansatz geben für eine fest Verschiebung der nach der Base64 Verschlüsselung.
Aber leider kommt 2=P nihct hin allso ists was anderes.
Bildet mal einer die Differenz zwischen allen Zeichen?"

nochmal für mich verständlich schreiben ^^ ? ich komme nicht ganz dahinter wieso du auf "U=r" kommst.

QuickAndDirty 26. Mai 2008 12:26

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

Zitat von Relicted
ok da kam ich jetzt nicht ganz hinterher :-)

kannst du die letzten sätze
"wenn man nach U=r geht könnte es schon mal nen Ansatz geben für eine fest Verschiebung der nach der Base64 Verschlüsselung.
Aber leider kommt 2=P nihct hin allso ists was anderes.
Bildet mal einer die Differenz zwischen allen Zeichen?"

nochmal für mich verständlich schreiben ^^ ? ich komme nicht ganz dahinter wieso du auf "U=r" kommst.


Schoeller in

Klartext
U2Nob2VsbGU=

Verschlüsselt
rPYn3jd8Bjr=


das letztere ergibt Base 64 decodiert einen haufen nicht Druckbarer Zeichen...muss also entweder vor oder nach der Base 64 codierung verschlüsselt worden sein.

Ist die frage wurde vor oder nach base 64 mit Passwort verschlüsselt?

bei Kenntniss des Verfahrens könnte man die beiden Strings quasi von einander abziehen und so das Passwort erhalten glaube ich...
Besser wäre wenn du Hagen direkt in den thread einlädst glaube ich...


(oh je ich sehe gerade es geht um Schoelle und nihct um Schoeller.....)

Alien426 26. Mai 2008 13:00

Re: Welche Verschlüsselung steckt hier hinter?
 
Ist ein interessantest Thema. Habe mich vor ein paar Wochen mal damit beschäftigt. Da kann man ziemlich endlos in Wikipedia stöbern:
Base64
XOR cipher
Caesar cipher
Cipher

Mein Vorgehen war dann, mittels SHA den Schlüssel zu verlängern und dann den kurzen Text mit XOR zu verschlüsseln, was relativ einfach ist, aber auch sicher solange der entschlüsselte Text nicht bekannt ist (siehe XOR cipher). Base64 wird gebraucht, da mit XOR auch nicht darstellbare Zeichen herauskommen können. Base64 macht übrigens auch die Anhänge in Mails so groß (+33%).

blackdrake 27. Mai 2008 09:25

Re: Welche Verschlüsselung steckt hier hinter?
 
Kannst du uns nicht genauere Details geben?

Wo gibt es das Programm, das diese Verschlüsselung nutzt?

Und wie würde der String "Schoellx" verschlüsselt aussehen? Wenn sich der Encrypted-String nur am Ende ändert, wissen wir, dass kein professioneller Cipher oder ein XOR o.ä mit einem errechneten Hash vorliegt. Dann müsste man sich Dinge wie die Caesar-Verschiebung näher anschauen.

Gruß
Daniel Marschall

Relicted 27. Mai 2008 09:32

Re: Welche Verschlüsselung steckt hier hinter?
 
ich kann sobald ich zuhause bin noch 1-2 beispiele bereit stellen.
es geht hierbei um folgendes: es gibt das rennspiel GTR2 und dazu gibt es ein programm, welches den server managen kann (3rd party). das tool speichert den trackrecord in einer streckenname_.dat datei ab und dort stehen diese informationen drin. ich müsste mal schauen ob man den fahrernamen in dem spiel ändern kann. dann könnte ich mit geänderten namen mehrmals einen trackrecord hinlegen und man hätte ein paar referenzdaten mehr. ich habe auch schon versucht kontakt zu dem ersteller des 3rd party tools aufzunehmen aber die email kam leider mit "nicht zustellbar" zurück.

gruß
reli

Relicted 28. Mai 2008 20:33

Re: Welche Verschlüsselung steckt hier hinter?
 
ich hab was in nem forum gefunden:
Zitat:

GTR2Manager uses an MD5 algoritm to calculate a hash of the key, then TripleDES(ECB) to decrypt/encrypt the data. You can use key "Gtr2Manager" to decrypt the data. The decrypter routine looks like this:

1. Compute hash of key (Gtr2Manager)
2. Use TripleDES ECB to decrypt data using computed key.

Unfortunatly there is currently no support of extracting the times other then decrypting the file manually.
hört sich ned gut an oder?^^

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

Relicted 29. Mai 2008 05:20

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

doch der wert ist real :-)
hab ich gestern frisch von meinem webserver geholt. der kurs ist bissl kleiner vielleicht ist deshalb der wert so anders weil z.b. die rundenzeit hier irgendwas um die 40 sekunden wars glaub ich liegt. und ist nicht direkt gtr2 sondern ein 3rd party tool was die dateien schreibt.

entschlüsselt müsste das dieses hier ergeben:
Zitat:

bLueMaX
0:48,297
gruß
reli

blackdrake 29. Mai 2008 22:39

Re: Welche Verschlüsselung steckt hier hinter?
 
Hast du noch nichts weiteres herausbekommen bezüglich Format?

Code:
Plain      Crypt
---------------------------------------------------
Schoelle  rPYn3jd8BjrIUYL258//OA==
0:47,323   cgSN7xw3SYnIUYL258//OA==
bLueMaX   ZX8uAy7DSZM=
0:48,297   obZzyUy8HVDIUYL258//OA==
Der Wert für "bLueMaX" fällt irgendwie voll aus der Reihe :-s Dieses 1 Byte, welches "bLueMaX" kürzer ist als "Schoelle" kann schlecht ein komplettes "IUYL258//OA==" wegfallen lassen. Außerdem ist dieser Rest am Ende irgendwie für die Verschlüsselung ausschlaggebend o.ä. Denn: Trotz unterschiedlicher gleich langer Strings ist der Rest immer gleich.

Bitte ergänze die Tabelle mit weiteren Werten, damit man gemeinsamkeiten finden kann.

Wichtig wären Werte, die nur ein bißchen von den bekannten Werten abweichen! Suche also mal Bitte nach einem "bLueMax" (X klein) sowie "Schoell", "Schoelle" und "Schoellee".

Gruß
Daniel Marschall


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:31 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