Basic Packet Hacking
In diesem kleinen Tutorial, will ich euch zeigen wie man Packete snifft, analysiert und editiert.
In diesem kleinen Tutorial, will ich euch zeigen wie man Packete snifft, analysiert und editiert.
#Inhalt:
[-]Voraussetzungen & Programme
[-]Packete Sniffen
[-]Packete Analysieren
[-]Packete Editieren
[-]Nachwort
[-]Voraussetzungen & Programme
Voraussetzungen:
- Grundlegende Kenntnisse im Hexadecimal System
- Grundlegende Erfahrung im Umgang mit Sniffern
- Menschenverstand
Ihr solltet um dieses Tutorial auch erfolgreich an anderen Spielen anwenden zu können wissen was ihr da macht..
Programme:
- WPE Pro / rPE
- Notepad
Als Opfer Spiel nehme ich in diesem Beispiel Deicide Online.
Dieses Spiel hat keine Verschlüsselung, deswegen macht es uns die Sache sehr einfach. Ich werde noch einen zweiten Teil dieses Tutorials machen, indem ich das Thema Packet encryption behandle.
[-]Packete Sniffen
So als erstes starten wir das Spiel und loggen uns ein. Wir switchen raus und öffnen WPE. Als Target wählen wir DeicideOnline.exe und starten den sniff vorgang. Dann switchen wir wieder ingame und schreiben "Hi" in den Total Chat.
Nachdem wir das gemacht haben, switchen wir wieder raus und stoppen den aufzeichnungs vorgang. Nun sollten wir schon einiges in WPE stehen haben.
Und da sticht uns doch das 10. Packet direkt ins Auge, mit dem Inhalt "......Hi"
[-]Packete Analysieren
So nun kommen wir ans analysieren der Packete. Am besten schickt ihr nochmal ein "Hi" ab und nehmt dies mit WPE auf. Somit habt ihr dann 2 Send Packete wo der gleiche Inhalt drin steht. Diesmal schreibt ihr das Hi aber nicht in den Total Chat sondern in den Trade Chat.
So hier dann die 2 Packete:
Total Chat:
Trade Chat:
So nun müssen wir herausfinden wie das Packet aufgebaut ist.
Dazu sollten wir das Hex System können. Außerdem müssen wir wissen, dass wir hier eine umgekehrte Byte-Anordnung für die Werte haben. Klingt schwer, ist es aber nicht.
'A' hat den Dezimalwert 65. Nachzulesen in der ASCII Tabelle. 65 Dezimal ist in Hex 41.
Wenn wir einen 2-Byte Delimiter haben (WORD oder 16bit Integer ), sieht es in Hex so aus: 00 41
Bei einem 4-Byte Delimiter (DWORD oder 32bit Integer), sieht es so aus: 00 00 00 41 .
Bei der umgekehrten Byte-Anordnung müssen wir das einfach umkehren.
Bei einem 2-Byte Delimiter wird aus 00 41 -> 41 00
Also fangen wir an:
WPE zeigt uns als Size für das Packet 8 an. Nun schauen wir uns das Packet an und was steht direkt am Anfang ?
08 00
Da wir eine umgekehrte Byte-Anordnung haben müssen wir das umdrehen und bekommen
00 08 daraus. 00 08 Hex ist in Dezimal auch 8.
Also wissen wir schonmal die ersten 2 bytes sind für die Packetgröße.
Gehen wir zu den nächsten 2 Byte. Dort haben wir bei dem einen Packet l 10 00 und beim anderen Packet l 8A 00. Umkehren = 00 10 & 00 8A.
Wir erinnern uns, wir haben einmal eine Nachricht in den Total Chat versendet und eine in den Trade Chat. Also haben wir den Chat Typ herausgefunden.
Dann kommt 02 00. Das ist die Anzahl der Zeichen die gesendet wird.
Wir müssen es wieder umgekehren 00 02 in dezimal = 2. Und wir haben auch 2 Zeichen gesendet undzwar "H" und "i".
48 69 sind unsere Zeichen "H" & "i".
So hier nun was wir rausbekommen haben:
08 00 10 00 02 00 48 69
<PacketSize>.2B<ChatTyp>.2B<AnzahlDerZeichen>.2B<Text>.2B
Somit haben wir das Packet außeinander genommen und wissen wie es aufgebaut ist. Die ersten 2 Byte sind für die gesamte Packet größe, die nächsten 2 Byte für den Chattyp, also Total Chat, Trade Chat, Party Chat usw., die nächsten 2 Bytes für die Anzahl der gesendeten Zeichen und die nächsten 2 - X Bytes beinhalten den Text den man sendet.
Da wir das nun alles wissen, kommen wir zum Editieren der Packete.
[-]Packete Editieren
Da wir nun Wissen wie das Packet aufgebaut ist, ist es ein leichtes für uns es zu verändern.
Wir machen einen Rechtsklick auf das Packet wo wir Hi gesendet haben und klicken auf Send.
Nun öffnet sich das Send Fenster und wir können das Packet manipulieren.
Die Packetsize erhöhen wir auf 11. Dann bearbeiten wir den Inhalt des Packetes.
0B 00 10 00 05 00 65 2A 70 76 70
Packetgröße 11 Dezimal in Hex = 0B
ChatTyp 10 = Total Chat
AnzahlDerZeichen 05 = 5
Text = 65 2A 70 76 70 = e*pvp
Dann senden wir das Packet ab.
Wenn wir dann ingame schauen, sollte unser charakter e*pvp in den Chat gesendet haben.
[-]Nachwort
Ich bin in diesem Tutorial auf verschiedene Dinge nicht eingegangen. Man könnte über das Hexadecimal System und Byte Anordnungen nochmal ein großes Tutorial schreiben, aber dies hier ist für Anfänger gedacht und ich wollte diese nicht zu sehr verwirren Dieses Beispiel ist recht simpel, um den Leuten zu zeigen wie es geht. Dadruch das keine Verschlüsselung vorhanden ist in diesem Game, macht die sache natürlich sehr sehr einfach. Ich werde mich irgendwann nochmal an ein Tutorial setzen wo man auch die Verschlüsselung umgeht bzw. entschlüsselt Aber alles zu seiner Zeit.
Ich hoffe ich konnte dem ein oder anderen etwas helfen.