Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 08:08

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Verschlüsselung reversen?

Discussion on Verschlüsselung reversen? within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
MaxMilimeter's Avatar
 
elite*gold: 0
Join Date: Jul 2010
Posts: 422
Received Thanks: 164
Exclamation Verschlüsselung reversen?

Hi,
ich würde gerne wissen wie man am besten an eine Packetverschlüsselung rangeht um diese zu reversen. Ich weiß, dass die von Nostale z.B. nicht sehr schwer zu knacken ist und mithilfe eines Sessionkeys encrypted wird, ab der Channelauswahl.

Jemand ne Idee wie ich das am besten lernen kann?

Aus
88226

wird (in HEX)
9A AC E4 90 DB 75 AF 0E

MfG,
Max
MaxMilimeter is offline  
Old 12/23/2013, 00:25   #2
 
meak1's Avatar
 
elite*gold: 220
Join Date: Jun 2007
Posts: 3,768
Received Thanks: 1,126
man schreibt 'hallo' im chat, macht einen breakpoint auf ws32_send und verfolgt es solang zurück(mit breakpoints) bis man das 'hallo' als argument übergabe sieht.

Dann benutzt man diese Funktion selber und tadaaaaa
meak1 is offline  
Old 12/23/2013, 00:49   #3
 
MaxMilimeter's Avatar
 
elite*gold: 0
Join Date: Jul 2010
Posts: 422
Received Thanks: 164
Ich würde sie aber gerne reversen um Client unabhängig zu arbeiten ^^
MaxMilimeter is offline  
Old 12/23/2013, 00:53   #4
 
meak1's Avatar
 
elite*gold: 220
Join Date: Jun 2007
Posts: 3,768
Received Thanks: 1,126
dann guckst du halt welche calls gemacht werden bis zur send, bzw wo das argument gecrypted wird und dann kopierst du diese mit IDA hex rays zu c++ code
meak1 is offline  
Old 12/23/2013, 00:57   #5
 
MaxMilimeter's Avatar
 
elite*gold: 0
Join Date: Jul 2010
Posts: 422
Received Thanks: 164
Ich habe noch nie mit IDA gearbeitet, wie wähle ich da überhaupt das Main Module wie bei OllyDBG?
Kannst Du mir kurz die Schritte nennen um den Code umzuwandeln?
Danke für den Tipp!
MaxMilimeter is offline  
Old 12/23/2013, 01:05   #6
 
meak1's Avatar
 
elite*gold: 220
Join Date: Jun 2007
Posts: 3,768
Received Thanks: 1,126
musst nur die funk finden die das argument crypted, dann guckst du halt welche addresse, auf diese jumpst du in IDA und dann i-wo show as hex rays oder so...
meak1 is offline  
Old 12/23/2013, 02:17   #7
 
MaxMilimeter's Avatar
 
elite*gold: 0
Join Date: Jul 2010
Posts: 422
Received Thanks: 164
Ok, war nicht einfach, aber ich habs nach ner Weile gefunden.

Falls mal wer das gleiche Problem hat:
View->Open subviews->Pseude Code

Man benötigt das Hex-Rays Plugin und muss vorher die Compilereinstellungen ändern (ich habe alles auf 4 gestellt), damit es läuft.

Sieht jedenfalls interessant aus, falls noch wer Tipps zu meiner Ausgangssituation hat, immer her damit

EDIT2:
OK, man könnte versuchen die Funktion zu übernehmen, aber was macht LOBYTE(a4) = a4 - 10; ?
Der Compiler weiß natürlich auch nicht was er mit dem = a4 - 10 anfangen soll.

Edit:
Gut, das müsste wohl der Code sein, bei dem die Verschlüsselung stattfindet. Das ist doch ein Unding daraus zu erknnen, wie nun verschlüsselt wird !? (EDX ist meine Zahlenkombi und eine Art Salt, schätz ich "57119(salt) 88226(meine_zahl)")
MaxMilimeter is offline  
Old 12/23/2013, 09:41   #8
 
elite*gold: 0
Join Date: Oct 2013
Posts: 135
Received Thanks: 44
Hex-Rays finde ich persönlich schwachsinnig, bis ich da irgendwie durchblicke, bin ich mit dem Debugger 100x schneller. Zumal kennst du damit nicht die Inhalte der Variablen.

Da du die Funktion schon hast, schaust du ebend wieviele Parameter übergeben werden und was der Inhalt ist und steppst halt die Funktion durch, da sieht man ja was mit den jeweiligen Bytes passiert.
Dabei übersetzt du den asm Code (meistens nur die Schleife).
Es kann aber vorkommen, dass vor der Schleife noch Funktionsaufrufe kommen die, die Bytes präparieren oder vor dem eigentlichen Verschlüsselungsaufruf und sogar nach.
Es kommt also am Ende darauf an, wie geübt du mit einem Debugger umgehen kannst und wie schnell du asm Code liest.
Vielleicht kannst du dich versuchen etwas an Hey-Rays zu orientieren, aber mein Fall ist das definitiv nicht und die meisten die ich kenne auch nicht (mehr Zeitverschwendung als hilfe).
EasyTale is offline  
Old 12/23/2013, 11:40   #9
 
Tyrar's Avatar
 
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
Quote:
Originally Posted by EasyTale View Post
Hex-Rays finde ich persönlich schwachsinnig, bis ich da irgendwie durchblicke, bin ich mit dem Debugger 100x schneller. Zumal kennst du damit nicht die Inhalte der Variablen.

Da du die Funktion schon hast, schaust du ebend wieviele Parameter übergeben werden und was der Inhalt ist und steppst halt die Funktion durch, da sieht man ja was mit den jeweiligen Bytes passiert.
Dabei übersetzt du den asm Code (meistens nur die Schleife).
Es kann aber vorkommen, dass vor der Schleife noch Funktionsaufrufe kommen die, die Bytes präparieren oder vor dem eigentlichen Verschlüsselungsaufruf und sogar nach.
Es kommt also am Ende darauf an, wie geübt du mit einem Debugger umgehen kannst und wie schnell du asm Code liest.
Vielleicht kannst du dich versuchen etwas an Hey-Rays zu orientieren, aber mein Fall ist das definitiv nicht und die meisten die ich kenne auch nicht (mehr Zeitverschwendung als hilfe).
Dem stimme ich teilweise zu, der Code den Hex-Rays ausspuckt ist in kleineren Funktionen nicht zu gebrauchen, in größeren kann man sich aber einen guten Überblick verschaffen.
Das wichtigste was die Verschlüsselung angeht ist wohl erst mal die Blockgröße. In deinem Fall dürften das wohl 64 Bit sein. In dem Fall würden wohl folgende (bekannteren) in frage kommen: CAST, TEA, XTEA, Skipjack, IDEA, Blowfish, FEAL, DES, 3DES und RC2 (hoffe ich habe keinen vergessen)
Um da genauer zu werden wäre die Schlüssellänge wichtig.
Tyrar is offline  
Old 12/23/2013, 13:01   #10
 
elite*gold: 0
Join Date: Oct 2013
Posts: 135
Received Thanks: 44
Da ich das obige Spiel kenne, kann ich mit gutem Gewissen sagen, dass das Spiel für Zahlen und bestimmte Zeichen eine Tabelle hat.
Für jede Zeichen und Zahlen in der Tabelle finden einige bitweise Operationen statt (es werden teilweise auch neue Bytes hinzugefügt), alle Zeichen die nicht in der Tabelle sind werden einfach gexored.
Es wird auch jedesmal die Lange angegeben, wenn z.B. die Zeichen beginnen die nicht in der Tabelle sind.
Bei den Bytes aus der Tabelle wird die Länge auch nochmal extra 'verschlüsselt'.
Anschließend wird anhand der SessionID nochmal ein Key erstellt und der Key gibt in einer Switchanweisung die nächsten Operationen (komplettes Paket wird nochmal gexored und +/- einer bestimmten Zahl addiert, ist aber unterschiedlich case zu case).

@Threadersteller: Wenn du willst, kannst du mir eine PN schreiben und ich helfe dir, vorrausgesetzt du bemühst dich dann noch ein bisschen.
EasyTale is offline  
Old 12/23/2013, 15:58   #11
 
meak1's Avatar
 
elite*gold: 220
Join Date: Jun 2007
Posts: 3,768
Received Thanks: 1,126
ja okay, die hex ray funktion war sehr nützlich bei verschlüsselungen, hat mir sehr geholfen beim hackshield emu.

Weil die funktionen meist solang sind das es zu schwer wäre sie selber nach c++ umzuschreiben etc.

Aber an sich ja, man muss gucken welche argumente übergeben werden bzw sie verstehen woher sie kommen, meist werden argumente übergeben wie 'tabellen' die zum crypten benutzt werden <- man muss zb. gucken ob diese 'tabellen' statisch sind oder auch per ner funktion erstellt werden...

Ich hatte damals einen Bot mit kompletter verschlüsselung, ich dachte immer derjenige sei sehr erfahren bis ich i-wann rausfand das er einfach den kompletten verschlüsselungsteil aus IDA-hex rays kopiert hat..

Bin noch beim kumpel, lade mir das Spiel heut Abend mal oder mittwoch
meak1 is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Suche jemand der mir eine EXE reversen kann *wichtig!*
03/29/2012 - Metin2 Private Server - 0 Replies
Ja der Topic sagt alles ist echt sehr wichtig... wer es kann/machen will addet mich doch bitte in Skype oder schickt mir ne PN.
Mit Olly reversen und in C++ Hooken
12/15/2011 - C/C++ - 22 Replies
Guten Tag Gemeinde ;) Ich hoffe der Titel is einigermaßen io, mir is einfach nichts besseres eingefallen ^^ Wie ich ja schon in einem anderen Thread beschrieben habe möchte ich Tastenanschläge an das Spiel DAOC senden, jedoch werden die Funktionen (Send- & Postmessage und co) geblockt, bzw die Virtuellen Inputs. Headpuster gab mir diesen Hinweis, bzw diese Hilfe: Ich dachte mir ich mach mal n neuen Thread auf, da es ja jetzt in den Bereich C/C++ geht und nicht mehr .Net. Ich bin...
Reversen? Wie finde ich Values?
11/26/2010 - S4 League - 6 Replies
Hi Leute, Ich weiß, dass jetzt viel geflame kommen wird, aber: Wie finde ich die S4 Values? Wenn ich die nicht habe, kann ich ja nichts hacken. Ich bin noch so ziemlich am Anfang und habe nichts gefunden, was mir geholfen hat. Ich habe zwar was gafunden, aber das habe ich nicht verstanden (Englisch) oder konnte die Dateien nicht downloaden (die TuTs):o Wäre nett wenn mir das jemand erklären könnte oder einen Link von einem gutem deutschem Tut geben könnte. Danke schonmal
Allgemeine Frage zum reversen von tclient.exe
11/17/2010 - 4Story - 12 Replies
Hey, Ich wollte mir grade mal die Tclient.exe mit ollydbg anschauen um ein bisschen über die kommunikation zwischen dem HS und 4story rauzubekommen. Als ich das Ollyfenster offen hatte war es leer es stand kein code drin und es ließ sich nicht starten, also habe ich mal PEID drüberlaufen lassen und UPX gefunden. Da ich die exe selbst mit einem gefixxten pe-header nicht in olly offen bekommen habe, wollte ich das Teil automatisch entpacken. Wenn ich dies jedoch versuche sagt mir der Unpacker...



All times are GMT +2. The time now is 08:08.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.