[Frage] Packet logger - login

04/17/2012 20:55 TheCherry#1
Wie ist es möglich sich über den Packet logger über einen Account einzuloggen?
Es ist nicht wichtig das der Client selber sich wirklich anmeldet, möchte einen Bot schreiben der sich einloggt, gewisse sachen an den "Ingame Server" schickt, sich ausloggt und das ganze wieder von vorn.

Wenn ich mich einlogge steht in den Paketen ein String der verschlüßelt ist (sollte das passwort sein) jedoch ändert sich dieser Schlüßel jedes mal...

Hat jemand eine Idee?
04/17/2012 21:03 ♬ »Haseo« ♬#2
Wie meinen?
04/17/2012 21:21 TheCherry#3
ich habe leider gerade hier am PC nostale nicht drauf, es sieht ungefähr so bei nem login aus:

login 57421 ACCOUNTNAME 98ASDOJHN123123kll12h3hd3

wenn man sich nun wieder einloggt, sieht es wieder anders aus:

login 58462 ACCOUNTNAME 654sd546qwe6qw54e36qwe1

ist jetzt halt nicht genau. Aber so ungefähr. Ich will den Login halt automatisch machen, weiß jedoch nicht wie ich den Schlüßel generieren kann. ....
04/18/2012 05:58 Atzenkeeper#4
Mit dem momentan geläufigen Packetlogger wirst du dazu nicht in der Lage sein.
Denn du müsstest in deinem Tool die Verschlüsslung nachbauen und das Passwort auslesen dann verschlüsseln und dann die Login Funktion damit versorgen.

Erstmal ist ja die Frage in welcher Sprache du dein Tool Coden willst ??
Wenn du es wie ich denke in AutoIt machst wäre es wirklich die beste lösung das über ControlClick und ControlSend zu lösen.

Und den Packetsender könntest du per PostMassage ansprechen :P
04/18/2012 19:34 Elektrochemie#5
Geht nicht, weil die Login Funktion im Clienten nicht aufgerufen wird. D.h. es besteht noch garkeine Verbindung zwischen Client und Server.
04/19/2012 17:37 SingularPlex#6
Möp. Anscheinend wird die Funktion schon aufgerufen. Sonst würde ja nicht die Fehlermeldung kommen das der Server sich in Wartung befindet.
04/21/2012 10:01 That'sMe#7
Ja das kann man machen, aber nicht mit dem Packetlogger,
da müsstest du dir ein Programm selber schreiben mit C# oder C+++
sollte ganz einfach sein ;)
04/25/2012 13:45 TheCherry#8
Quote:
Originally Posted by Atzenkeeper View Post
Mit dem momentan geläufigen Packetlogger wirst du dazu nicht in der Lage sein.
Denn du müsstest in deinem Tool die Verschlüsslung nachbauen und das Passwort auslesen dann verschlüsseln und dann die Login Funktion damit versorgen.

Erstmal ist ja die Frage in welcher Sprache du dein Tool Coden willst ??
Wenn du es wie ich denke in AutoIt machst wäre es wirklich die beste lösung das über ControlClick und ControlSend zu lösen.

Und den Packetsender könntest du per PostMassage ansprechen :P
Dies funktioniert nicht im Login Screen, es kommen nicht alle Buchstaben an.
Dies wurde scheinbar i-wie geblockt dort.

Quote:
Originally Posted by That'sMe View Post
Ja das kann man machen, aber nicht mit dem Packetlogger,
da müsstest du dir ein Programm selber schreiben mit C# oder C+++
sollte ganz einfach sein ;)
Wie finde ich die Stelle in OllyDgb am besten wo er die Login Daten in den Schlüßel verwandelt oder die Stelle wenn ich auf den Knopf Login drücke? Werde mal ausprobieren nach dem String "Login" zu suchen, aber ich denke mir das er es nicht finden wird.

EDIT: Der Text auf dem Login Button ist "OK" wenn iich Case sensetive danach suche bekomme ich nichts, wenn ich den hacken raus nehme finde ich sehr viel, alles wo ok in einem Wort steckt.
Jedoch ist der andere Button "Zurück" auch nicht als String vorhanden, habe es auch mit "Zur" versucht, wegen dem "ü".

Ein anderer Ansatz wäre ja das Event durch den Mouse oder Key Input zu finden und hier einen Brekpoint zu setzen, nun noch Enter drücken oder auf den Button klicken. Diese Stelle sollte doch etwas einfach zu finden sein oder? Ist ja vermutlich eine DirectX / OpenGL methode. Doch wenn ich nach dem command INT 16 / INT 33 suche in den NostaleX.dat / d3d9.dll / kernel32.dll finde ich mehere Stellen, diese werden aber nicht durchlaufen, zumindest nicht in der Login maske.
04/25/2012 14:21 Trollface-#9
Quote:
Originally Posted by TheCherry View Post
Dies funktioniert nicht im Login Screen, es kommen nicht alle Buchstaben an.
Dies wurde scheinbar i-wie geblockt dort.



Wie finde ich die Stelle in OllyDgb am besten wo er die Login Daten in den Schlüßel verwandelt oder die Stelle wenn ich auf den Knopf Login drücke? Werde mal ausprobieren nach dem String "Login" zu suchen, aber ich denke mir das er es nicht finden wird.

EDIT: Der Text auf dem Login Button ist "OK" wenn iich Case sensetive danach suche bekomme ich nichts, wenn ich den hacken raus nehme finde ich sehr viel, alles wo ok in einem Wort steckt.
Jedoch ist der andere Button "Zurück" auch nicht als String vorhanden, habe es auch mit "Zur" versucht, wegen dem "ü".

Ein anderer Ansatz wäre ja das Event durch den Mouse oder Key Input zu finden und hier einen Brekpoint zu setzen, nun noch Enter drücken oder auf den Button klicken. Diese Stelle sollte doch etwas einfach zu finden sein oder? Ist ja vermutlich eine DirectX / OpenGL methode. Doch wenn ich nach dem command INT 16 Suche in der NostaleX.dat finde ich nur eine Stelle und diese wird nicht durchlaufen bei einem durchlauf, zumindest nicht in der Login maske.
ws32.send sollte das sein womit die suche beginnen darf :)
04/25/2012 14:36 TheCherry#10
Quote:
Originally Posted by Trollface- View Post
ws32.send sollte das sein womit die suche beginnen darf :)
Soll das ws32 sein Modul sein? Denn das gibts nicht, als String kann ich das auch nicht suchen.
Bin noch ein Anfänger in dem Bereich :)

EDIT: Ok ist ein Modul entschuldige, habe mal nach dem String Send gesucht, dies ist die Netzwerk DLL oder?
das ws32.send wäre ein call oder? Wenn ich jedoch danach suche über Command -> CALL WS2_32 / CALL WS2_32.send funktioniert nicht, nimmt das Programm nicht an.
04/25/2012 14:48 Trollface-#11
Quote:
Originally Posted by TheCherry View Post
Soll das ws32 sein Modul sein? Denn das gibts nicht, als String kann ich das auch nicht suchen.
Bin noch ein Anfänger in dem Bereich :)

EDIT: Ok ist ein Modul entschuldige, habe mal nach dem String Send gesucht, dies ist die Netzwerk DLL oder?
Einfach Rechtsklick -> Search for -> All intermodular calls,
anschließend BP auf ws32.send und Funktion's ablauf zurückverfolgen.

Suchst den richtigen Call,
übergibst die Parameter User/Password.

PS: thisptr nicht vergessen.

Allerdings muss ich sagen das ich das selber noch nicht probiert habe,
da für mich unwichtig.
04/25/2012 18:47 Atzenkeeper#12
Ausserdem wird das in C# nach meinem erachten nicht Funktionieren.
Höchstens in C++ , C , Delphi und vll noch ein paar anderen Sprachen die mir nicht einfallen. Zudem musst du dich von der Winsocks Sendfunktion hocharbeiten zu der Login Funktion. Und diese dann nachbauen. Heißt in Olly die WS32.Send Funktion wie von Trollface- schon gesagt breaken. Dann schauen von wo die Funktion gecallt wird indem du alle Calls durchgehst und in jedem einen BP setzt. Wenn du den richtigen Call gefunden hast das ganze wieder von vorn um zu erfahren von wo dieser Prozedur gecallt wurde. Nach kurzer Zeit solltest du so zu der Login Funktion gelangen.

Solltest das ganze natürlich nur mit der Loginfunktion Testen da wenn du normale Packets nimmst dich das ganz schnell woanders hin bringt.

Danach in C++ via Inline ASM die Funktion nachbauen. B.z.w. die wichtigen Parameter in den Registern raussuchen und diese auch in die Register schreiben und im Anschluss die Loginfunktion Callen.

Zu der aussage mit dem Login verhindert. Du kannst für diesen Zweck auch die normale Send(Button) Funktion nehmen und einfach vorher das NosTale Fenster in den vordergrund ziehen und danach wieder Freigeben. Dürfte über die Windows API kein Problem geben.

Das du die sachen im NosTale Fenster nicht direkt ansprechen kannst ist kein wunder da sie mit Direct3D oder je nach einstellung mit OpenGL gezeichnet wurden und nicht auf den Windows Forms basieren. Demnach keine Controlls haben die man mit SendMassage so ansprechen könnte wie bei anderen Programmen. Bei denen man nur das Windowhandle und die Controll bezeichnung bräcuhte um dieses anszusprechen.
04/25/2012 19:17 Elektrochemie#13
5€ PSC / PayPal und ich machs dir ;o
04/25/2012 19:30 Mr.Tr33#14
Quote:
Originally Posted by Elektrochemie View Post
5€ PSC / PayPal und ich machs dir ;o
Du bist aber billig :P
Du weisst doch, dass die Kinder mehr Geld in den Taschen deren Eltern haben ;)
04/25/2012 19:32 Elektrochemie#15
Meinte natürlich 5€ pro 5 Minuten arbeit :D