Frage

Es ist ein interessantes Problem auf der Hand. Ich habe ein MMOG Rollenspiel durch eine Client-Anwendung ausgeführt wird (kein Browser), die die Aktionen von meinem Player an einen Server sendet, der zurück durch Senden von Paketen alle Spieler synchron hält.

Nun nutzt das Spiel ein Top-Layer-Protokoll über TCP / IP, um die Daten zu senden. Allerdings ist wireshark nicht wissen, welches Protokoll benutzt wird und zeigt alles, was über die TCP-Header als Müllhalde.

Ferner ist diese Dump keine Klartextzeichenfolgen haben. Obwohl das Spiel eine Chat-Funktion hat, wird der Chat-String nicht in dieser Absteige im Klartext an jeden Ort.

gesehen gesendet

Meine Aufgabe ist es, das Protokoll Reverse Engineering ein wenig einige sehr grundlegende Dinge über die Daten in den Paketen enthalten sind, zu finden.

Weiß jemand, warum der Chat ist Zeichenfolge nicht sichtbar als Klartext und ob es wahrscheinlich ist, dass ein Standard-Top-Level-Protokoll verwendet wird?

Auch gibt es Tools, die helfen können, die Daten aus dem Dump zu bekommen?

War es hilfreich?

Lösung

Wenn es verschlüsselt ist Sie tun haben eine Chance (in der Tat, Sie haben eine Chance von 100%, wenn Sie es richtig handhaben): Der Schlüssel muss irgendwo auf Ihrem Computer befinden. Legen Sie einfach Ihre Lieblings-Debugger öffnen, sehen Sie für ein bisschen (err, hundert Bytes oder so würde ich hoffe) von Daten in aus einer Steckdose kommen, stellen Sie einen Beobachtungspunkt auf diesen Daten, und schauen Sie sich die Stack-Traces von Dingen, die Zugang es. Wenn Sie wirklich Glück haben, können Sie auch sehen, es an Ort und Stelle entschlüsselt erhalten. Wenn nicht, werden Sie wahrscheinlich auf der Tatsache, abholen, dass sie einen Standard-Verschlüsselungsalgorithmus verwenden (würden sie Narren nicht von einem theoretischen Standpunkt der Sicherheit aus) entweder durch auf Stack-Traces suchen (wenn man Glück hat) oder durch mithilfe der IV / S-Box-Profilometer gibt (vermeiden, die akademischen diejenigen, die meisten von ihnen arbeiten nicht viel Mühe ohne). Viele Verschlüsselungsalgorithmen Blöcke von „Standarddaten“ verwenden, die (das sind die IVs / S-Boxen) nachgewiesen werden können, diese sind, was Sie in Ermangelung anderer Informationen suchen. Was auch immer Sie finden, Google es, und versuchen, ihre Verschlüsselungsbibliothek zu überschreiben die Daten-Dump, die verschlüsselt / entschlüsselt hat wird. Aus diesen Deponien, sollte es relativ einfach sein, zu sehen, was los ist.

REing eine verschlüsselte Sitzung kann eine Menge Spaß sein, aber es erfordert Geschick mit dem Debugger und vielen Lese. Es kann frustrierend sein, aber Sie werden es nicht bereuen, wenn Sie die Zeit damit verbringen, zu lernen, wie man es tun:)

Andere Tipps

Best guess. Verschlüsselung oder Komprimierung

Auch Telnet unterstützt Kompression über den Draht, obwohl das ganze Protokoll vollständig Text basiert (na ja, fast).

Sie könnten versuchen, den Datenstrom durch einige gemeinsame Komprimierungsprogramme laufen, aber ich bezweifle, dass würde für dich viel tun, da sie aller Wahrscheinlichkeit nach keine Komprimierung Header übertragen, es gibt einfach einige vordefinierte Werte erzwungen.

Wenn es infact Verschlüsselung, dann bist du ziemlich viel geschraubt (ohne viel, viel mehr Mühe, die ich nicht einmal, um in gehen zu starten).

Es ist sehr wahrscheinlich entweder komprimiert oder verschlüsselt werden.

Wenn es verschlüsselt Sie werden keine Chance haben.

Wenn es komprimiert ist Sie müssen irgendwie herausfinden, welche Teile der Daten komprimiert werden, wo die komprimierten Teile beginnen und was der Kompressionsalgorithmus ist. Wenn Sie Glück wird es Standard-Header, die Sie identifizieren können, obwohl sie wahrscheinlich um Platz zu sparen werden entfernt.

Nichts davon ist einfach. Reverse Engineering ist hart. Es gibt keine Standard-Tools, die Ihnen helfen, Sie müssen nur untersuchen und versuchen, die Dinge, bis Sie es herausfinden. Mein Rat wäre, die Entwickler für eine Protokoll-Spezifikation zu stellen und sehen, ob sie bereit ist zu helfen zu unterstützen, was Sie zu tun versuchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top