|
You last visited: Today at 06:13
Advertisement
MMO Verschlüsselung Knacken
Discussion on MMO Verschlüsselung Knacken within the General Coding forum part of the Coders Den category.
12/03/2012, 23:15
|
#1
|
elite*gold: 0
Join Date: Apr 2011
Posts: 288
Received Thanks: 40
|
MMO Verschlüsselung Knacken
Hey
Da, ich mich in letzter Zeit ein bisschen mit Speichervarianten und Netzwerkkommunikation beschäftigt habe (uA wegen der Uni) wollte ich mal probieren die Verschlüsselung für ein MMO rauszufinden und bin da auf ein paar Fragen gestoßen.
1.) Ich habe hier und in anderen Foren immer gelesen, dass man die empfangenen Packets umdrehen muss.
Es würde mich interessieren ob das Little Endian für jede Netzwerkkommunikation verwendet wird oder einfach nur sehr häufig.
2.) Wie weiß man, ob die Daten DWord oder Word ankommen?
3.) Wie kann ich sehen wie die Kommunikation verschlüsselt ist?
Ich lese immer wieder von Not und xor Verschlüsselung, welche wohl nur für Erklärungszwecke verwendet wird. Nur wie kann ich in Erfahrung bringen, dass es keinen Sinn hat die Packete durchzuprobieren vor allem in Zeiten von Hashes und Asymetrischen Verschlüsselungsverfahren?
So, dass ich nicht stundenlang an ein paar Packets sitze und im Endeffekt es gar nicht möglich ist diese zu entschlüsseln.
Was mir dazu eingefallen ist, wäre das bei einer statischen Verschlüsselung ja, zumindest während der gleichen Session bei dem gleichen Chattext immer der gleiche Chiffre rauskommen müsste. Wenn das nicht der Falll ist dann muss man sich wohl schon an nen Debugger hängen?
Ich möchte nur nicht ewig mit Olly rumspielen um dann rauszufinden, dass es sich doch um eine Not Verschlüsselung handelt.
Und ja, die Tutorials habe ich bereits gelesen.
mfg
|
|
|
12/04/2012, 03:57
|
#2
|
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
|
Quote:
Originally Posted by D3adlySil3nc3
Hey
Da, ich mich in letzter Zeit ein bisschen mit Speichervarianten und Netzwerkkommunikation beschäftigt habe (uA wegen der Uni) wollte ich mal probieren die Verschlüsselung für ein MMO rauszufinden und bin da auf ein paar Fragen gestoßen.
1.) Ich habe hier und in anderen Foren immer gelesen, dass man die empfangenen Packets umdrehen muss.
Es würde mich interessieren ob das Little Endian für jede Netzwerkkommunikation verwendet wird oder einfach nur sehr häufig.
|
nein das kann man jeder machen wie er will.
Quote:
|
2.) Wie weiß man, ob die Daten DWord oder Word ankommen?
|
WORD = 2 byte
DWORD = 4 Byte (double WORD eben)
sind einfach datentypen, (Int16, Int32 hiessen sie z.B. in C#)
für kleinere sachen (z.B. manche enumtypen) kann man man WORD nehmen.
für die meisten sachen wird aber entweder 1- Byte oder 4 Byte datentypen werwendet.
für wirklich grosse zahlen (z.B. die goldmange eines spielers) wird oft QWORD = QUAD WORD =8byte = Int64 benutzt
ein paket enthält viele daten als meinstns bestehend aus QWORD, DWORD, WORD, FLOAT etc gemischt.
Quote:
3.) Wie kann ich sehen wie die Kommunikation verschlüsselt ist?
Ich lese immer wieder von Not und xor Verschlüsselung, welche wohl nur für Erklärungszwecke verwendet wird. Nur wie kann ich in Erfahrung bringen, dass es keinen Sinn hat die Packete durchzuprobieren vor allem in Zeiten von Hashes und Asymetrischen Verschlüsselungsverfahren?
So, dass ich nicht stundenlang an ein paar Packets sitze und im Endeffekt es gar nicht möglich ist diese zu entschlüsseln.
Was mir dazu eingefallen ist, wäre das bei einer statischen Verschlüsselung ja, zumindest während der gleichen Session bei dem gleichen Chattext immer der gleiche Chiffre rauskommen müsste. Wenn das nicht der Falll ist dann muss man sich wohl schon an nen Debugger hängen?
Ich möchte nur nicht ewig mit Olly rumspielen um dann rauszufinden, dass es sich doch um eine Not Verschlüsselung handelt.
Und ja, die Tutorials habe ich bereits gelesen.
mfg
|
naja ich denke die verschlüsselug ist schon einigermassen kompliziert sodas du einen debugger benutzten musst.
aber wenn du z.B. dir nur die (unverschlüsselten) packete ansehen willst ist es am einfachsten die mit hilfe eines debuggers einfach anzugucken bevor sie verschlüsselt werden.
|
|
|
12/05/2012, 20:01
|
#3
|
elite*gold: 0
Join Date: Feb 2012
Posts: 1,400
Received Thanks: 2,939
|
Geh zum call von WSA_Send, step 2 - 3 calls zurück und schau in die Parameter.
Klappt sehr oft.
Such dann nach welchem call die Packets Verschlüsselt übergeben werden, und du weißt in welcher funktion du nach dem call der verschlüsselungsroutine suchen musst.
Ist eigentlich nicht kompliziert.
Danach haste 2 möglichkeiten.
Die einfache Variante ist die Funktion zu Detourn/Hooken und dann einen Packet Editor basteln.
Die langwierigere Variante ist die Verschlüsselung/Entschlüsselung nachzubauen, und einen PacketEditor durch bloses Detourn von WSA_Send basteln.
Eigentlich ist letzeres unnötig, da ich darin keinen vorteil sehe.
|
|
|
12/05/2012, 21:47
|
#4
|
elite*gold: 0
Join Date: Apr 2011
Posts: 288
Received Thanks: 40
|
Quote:
Originally Posted by nkkk
nein das kann man jeder machen wie er will.
WORD = 2 byte
DWORD = 4 Byte (double WORD eben)
sind einfach datentypen, (Int16, Int32 hiessen sie z.B. in C#)
für kleinere sachen (z.B. manche enumtypen) kann man man WORD nehmen.
für die meisten sachen wird aber entweder 1- Byte oder 4 Byte datentypen werwendet.
für wirklich grosse zahlen (z.B. die goldmange eines spielers) wird oft QWORD = QUAD WORD =8byte = Int64 benutzt
ein paket enthält viele daten als meinstns bestehend aus QWORD, DWORD, WORD, FLOAT etc gemischt.
|
Ja, danke die Datentypen sind mir schon klar.
Aber anders ausgedrückt muss man einfach nach Gefühl gehen was wie daherkommt?
Quote:
Originally Posted by Crack-wtf
Geh zum call von WSA_Send, step 2 - 3 calls zurück und schau in die Parameter.
Klappt sehr oft.
Such dann nach welchem call die Packets Verschlüsselt übergeben werden, und du weißt in welcher funktion du nach dem call der verschlüsselungsroutine suchen musst.
Ist eigentlich nicht kompliziert.
Danach haste 2 möglichkeiten.
Die einfache Variante ist die Funktion zu Detourn/Hooken und dann einen Packet Editor basteln.
|
Jup, sowas habe ich mir shcon gedacht.
Meinst du mit der WSA_Send, denn von Wireshark und Co?
Ich dachte nämlich, dass ich zur send func von der winapi gehe. Und dann eben soweit zurück bis ich den Text "Klartext" sehe, um den Bereich mal einzuschränken und dann mich eben durchhängle.
|
|
|
12/06/2012, 11:48
|
#5
|
elite*gold: 0
Join Date: Feb 2012
Posts: 1,400
Received Thanks: 2,939
|
Naja die meisten MMO's nutzen WSA_Send.
Mir ist eigentlich keins bekannt das Send nutzt.
Wie dem auch sei.
Kannst ja testen.
Setz nen Breakpoint auf beide Funktionen, und sende ingame eine Nachricht ab und schaue wo es breakt.
Könnte auch sein dass ein Anticheat system Send zum senden der Keep-Alives nutzt und das Game WSA_Send.
Aber das merkst du ja wenn du reverst.
|
|
|
12/10/2012, 11:07
|
#6
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
Originally Posted by Crack-wtf
Eigentlich ist letzeres unnötig, da ich darin keinen vorteil sehe.
|
Der Vorteil ist, dass du nicht auf den Client angewiesen bist und sogar deinen eigenen Emulator nachbauen könntest. Das eigene Versenden von Daten ist so auch einfacher.
Wer sich die Arbeit macht, die Verschlüsselung nachzubauen, verschwendet das doch nicht, indem er dann einfach send/recv hookt.
@Dateninterpretation:
Du wirst immer einen Debugger brauchen. Ein Packet Editor ist anfangs relativ nutzlos, um den Aufbau der Packets nachzuvollziehen. Du verfolgst einfach, wie die Daten im Client genutzt werden und schließt so auf die Bedeutung.
@Little Endian:
Bei Windows wirst du immer diese Umkehrung finden, da die Network-Byte Order standardisiert ist.
@Crack:
S4 nutzte früher send und recv.
|
|
|
12/12/2012, 13:41
|
#7
|
elite*gold: 0
Join Date: Apr 2011
Posts: 288
Received Thanks: 40
|
Okay, danke sehr!
Hätte noch eine Frage zur Sprache,
Ob ich jetzt C++ oder C# nehme dürfte doch egal sein? Mit beiden kann ich inline asm verwenden sowie auf die Winapi zugreifen.
Gibt es einen guten Grund C++ zu verwenden gegenüber von C#?
[vor Allem als Java-Anwenungsentwickler]
oder habe ich etwas übersehen?
|
|
|
12/12/2012, 15:01
|
#8
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Nein, nicht wirklich. Wenn du C# kannst, bleib dabei. Selbst Code/Dll Injektion ist damit kein Problem.
|
|
|
12/12/2012, 18:15
|
#9
|
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
|
Quote:
Originally Posted by MrSm!th
Du wirst immer einen Debugger brauchen. Ein Packet Editor ist anfangs relativ nutzlos, um den Aufbau der Packets nachzuvollziehen. Du verfolgst einfach, wie die Daten im Client genutzt werden und schließt so auf die Bedeutung.
|
wieso meinst du das? oft kann man mit einem packeteditor recht einfach herausfinden wofür die einzelnen daten stehen (z.B. du benutzt fahogkeit 1 dann steh iwo eine 1, du benutzt fähigkeit 4 dann steht iwo eine 4 dann weist du wo sie faigkeits nr steht so als beispiel ist oft einfcher als den client auseinanderzunehmen), dazu muss der Packeteeditor natürlcih auf die unverschlüsselten packete zugreifen
Quote:
Originally Posted by D3adlySil3nc3
Okay, danke sehr!
Hätte noch eine Frage zur Sprache,
Ob ich jetzt C++ oder C# nehme dürfte doch egal sein? Mit beiden kann ich inline asm verwenden sowie auf die Winapi zugreifen.
Gibt es einen guten Grund C++ zu verwenden gegenüber von C#?
[vor Allem als Java-Anwenungsentwickler]
oder habe ich etwas übersehen?
|
dann ist das also wieder ein "ist C++ besser als C# fürs gamehacking"-Thread?
Und mit C# kannst du auch nicht Wirklich inline asm verwenden.
aber was genu willst du machen? den client analysieren? dazu brucht man Tools wie CE oder olly und kein programmiersürache.
Wenn du ein programm schreiben willst was sich in den prozess Injected und dort die packets verändert würde ich dir empfehln C# (90%) und C++ (10%) gemischt einzusetzen weil einige sachen in C# doch recht umständlich sind.
|
|
|
12/18/2012, 12:31
|
#10
|
elite*gold: 0
Join Date: Feb 2012
Posts: 1,400
Received Thanks: 2,939
|
Quote:
Originally Posted by MrSm!th
Der Vorteil ist, dass du nicht auf den Client angewiesen bist und sogar deinen eigenen Emulator nachbauen könntest. Das eigene Versenden von Daten ist so auch einfacher.
Wer sich die Arbeit macht, die Verschlüsselung nachzubauen, verschwendet das doch nicht, indem er dann einfach send/recv hookt.
@Crack:
S4 nutzte früher send und recv.
|
S4 ist ja auch Schwachsinn...
Naja das mit dem Emulator stimmt schon, allerdings dachte ich bezieht sich die Frage eher aufs GameHacking, und da reicht ein Detour.
Nieder mit C#
|
|
|
12/18/2012, 21:16
|
#11
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
|
wieso meinst du das? oft kann man mit einem packeteditor recht einfach herausfinden wofür die einzelnen daten stehen (z.B. du benutzt fahogkeit 1 dann steh iwo eine 1, du benutzt fähigkeit 4 dann steht iwo eine 4 dann weist du wo sie faigkeits nr steht so als beispiel ist oft einfcher als den client auseinanderzunehmen), dazu muss der Packeteeditor natürlcih auf die unverschlüsselten packete zugreifen
|
Aber eben nicht alles, das war mein Punkt.
Quote:
|
Naja das mit dem Emulator stimmt schon, allerdings dachte ich bezieht sich die Frage eher aufs GameHacking, und da reicht ein Detour.
|
Zumindest, wenn es nur ums Loggen geht.
|
|
|
12/20/2012, 16:31
|
#12
|
elite*gold: 0
Join Date: Feb 2012
Posts: 1,400
Received Thanks: 2,939
|
Reden wir aneinander Vorbei?
Wieso sollte ein Detour der Send VerschlüsselungsRoutine nur für Loggen gut sein?
Man speichere sich den This Ptr, und calle sie mit eigenen Parametern und schwups kann man eigene Packets Senden.
Und OnTheFly kann man sie auch Manipulieren.
Hacke auf diese weise ne menge in DragonballOnline
|
|
|
12/21/2012, 22:58
|
#13
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
Originally Posted by Crack-wtf
Reden wir aneinander Vorbei?
Wieso sollte ein Detour der Send VerschlüsselungsRoutine nur für Loggen gut sein?
Man speichere sich den This Ptr, und calle sie mit eigenen Parametern und schwups kann man eigene Packets Senden.
Und OnTheFly kann man sie auch Manipulieren.
Hacke auf diese weise ne menge in DragonballOnline
|
Wieso solltest du nen Detour zum Callen einer Funktion brauchen?
|
|
|
12/22/2012, 04:11
|
#14
|
elite*gold: 0
Join Date: Feb 2012
Posts: 1,400
Received Thanks: 2,939
|
Ich muss mir doch den ThisPtr abspeichern.
Und wenn ich schon nen Detour setz zum "Loggen", kann ich doch gleich auch den ThisPtr abgreifen um so die Send Function mit eigenen Parametern zu callen.
|
|
|
12/22/2012, 14:10
|
#15
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Nicht jede Funktion ist eine Memberfunktion, den Thisptr kann man auch anders holen (und manchmal ignorieren) und es ändert ja trotzdem nichts an der Aussage, dass ein permanenter detour zum Callen nicht notwendig ist 
Klar, wenn du eh schon damit loggst, kannsten den Thisptr auch gleich abspeichern.
|
|
|
 |
|
Similar Threads
|
AEP & AEX Verschlüsselung
11/30/2012 - Metin2 Private Server - 1 Replies
Hi,
ich hatte mal hier in der M2 Section gesehen das man .eix & .epk Sachen umbennen kann.
Tja und ein Freund von mir hat es benuzt für sein Server und hat mir seine Updates gegeben. Die sind allerdings in APE & AEX verschlüsselt. Und der Idiot macht im Moment Einsetze in Afganistan....
Kann mir jemand den Threadlink geben wo man .eix usw umbennen kann?
Oder wie ich den Müll entpacken kann?
|
[C#] Xor Verschlüsselung
01/09/2012 - Coding Tutorials - 1 Replies
Jo, um bspw. Strings in euren Apps zu ver- und entschlüsseln könnt ihr Xor verwenden.
Kontravalenz
Ich werd da jetzt nich viel erklären, sondern einfach die Source pasten.
In Kombination mit dem Wiki-Artikel sollte eigentlich alles geklärt werden ;)
public string encrypt(string text)
{
string encrypted = null;
|
vb verschlüsselung
10/22/2011 - .NET Languages - 6 Replies
hi.
kann ich per vb eine datei(.txt) so verschlüsseln das nimand sie öffnen kann,aber das prog noch sie ändern kann?
Wenn ja wie da ich ein spiel machen will und nun nicht weiß wie ich es machen soll da sie ja sonst einfach alles ändern könnten...
MFG
|
Verschlüsselung!
11/07/2009 - Metin2 Private Server - 1 Replies
Also ich suche die verschlüsslung von 12345 in der Datenbank würde mich freuen wenn sie jemand posten würde da ich sie ausversehen gelöscht habe gibt auch ein THX :D
|
Verschlüsselung der PW's?
10/03/2009 - Metin2 Private Server - 12 Replies
Huhu,
ich hab ne frage... und zwar weiß jemand mit was die PW's von dem Lokal - Server verschlüsselt sind?
sprich als beispiel nu md5... oder was auch immer
mfg blubb :)
|
All times are GMT +1. The time now is 06:14.
|
|