Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Unbekannte Verschlüsselung


Tobi482 - Di 15.08.06 19:36
Titel: Unbekannte Verschlüsselung
Hi Leute,

ich möchte ein TCP/IP Paket entschlüsseln welches verschlüsselt ist. Es geht dabei um ein Chat-Programm in welches ich eigene Chatzeilen (CPU-Temp, CPU-Auslastung) einsetzten möchte.

Prinzipiell fallen mir zwei möglichkeiten ein :

1. Ich könnte versuchen die Adresse der AddLine-Procedure des Chats zu finden und diese zu hooken oder über ASM Call aufzurufen oder zu überschreiben.

2. über den TCP/IP Socket eine verschlüsselte Msg einbringen

Leider habe ich wenig Erfahrung mit ASM, daher ist für mich die verschlüsselung die bessere Möglichkeit. Auch hier weiß ich nicht wie die Msg verschlüsselt wurde :-(

Also ran an die Kryptoanalyse ....

Quelltext
1:
2:
3:
4:
5:
46 00 41 4F 2D 0F 5C F8 B4 54 D5 43 6F 59 9C EB
33 F1 37 58 1A A0 5D 58 89 2F B7 D2 11 F6 A8 49
17 DD 1A 58 1A A0 5D 58 89 2F B7 D2 11 F6 A8 49
17 DD 1A 58 1A A0 5D 58 89 2F B7 D2 11 F6 A8 49
17 DD 1A 6F 5C 57


Dies ist die Nachricht die der Server mir ausgibt, wenn ich mit einem Chat-Account names "Ranji" 60 mal das "b" schreibe.

im Chat wird dann

Quelltext
1:
[Ranji] bbbbbbbbbbbbbb ... bbbbbbb                    

ausgegeben

Soweit sogut ...

Die ersten Zwei Bytes konnte ich bereits identifizieren 46 00 ist ein WORD und gibt die Länge des Paketes an. Das dritte Byte scheint eine Art ID byte zu sein (whisper, normalchat, ....) und dann kommt die Msg.

Auffällig ist ja schon das sich bei der Verschlüsselung eine ganze Reihe von b's von ein symmetrisches Muster verändert hat.

Kennt jemand eine Enrcyption-Algo der soetwas produziert?

Meine Vermutung ist eine "Zyklisches Bit Shift", welches nicht Byte intern angewendet wird sondern auf die binäre Form des ganzen Strings.
Leider hatte ich mit dieser Idee nich keinen erfolg beim entschlüsseln.

Wenn Jemand eine Idee hat einfach mal psoten bin über jeden Tipp dankbar.

Mit freundlichen Grüßen
Tobi


JayEff - Di 15.08.06 19:52

Naja, wenn man etwas die newLines verschiebt und so.. kommt man auf soetwas:

Quelltext
1:
2:
3:
4:
5:
6:
46 00 41 *die größe+modus bytes*
4F 2D 0F 5C F8 B4 54 D5 43 6F 59 9C EB 33 F1 37 *eine reihe nicht wiederholt auftretender Bytes?*
58 1A A0 5D 58 89 2F B7 D2 11 F6 A8 49 17 DD 1A *3 Reihen, die wiederholt auftreten. es sind*
58 1A A0 5D 58 89 2F B7 D2 11 F6 A8 49 17 DD 1A *3 Reihen à 16 Bytes = 48 Bytes. fehlen 12 um auf*
58 1A A0 5D 58 89 2F B7 D2 11 F6 A8 49 17 DD 1A *die 60 bs zu kommen.*
6F 5C 57 *3 weitere, nicht wiederholt auftretende Bytes*

Kann sein, dass der Ansatz falsch ist, aber eine Idee ist es. Viel Glück :D


Tobi482 - Di 15.08.06 20:33

Hi JayEff,

die ersten bytes scheinen den namen zu behinalten welches die unregelmäßigkeit der Symmetrie erklären würde, wenn es eine große Zyklische Bit verschiebung ist.

Gruß Tobi