Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 18:00

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

Advertisement



Pakete senden mit AutoIT

Discussion on Pakete senden mit AutoIT within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 214
Join Date: Mar 2011
Posts: 151
Received Thanks: 25
Pakete senden mit AutoIT

Kann mir jemand sagen, ob es möglich ist Pakete mit AutoIT zu senden (Geht um das Spiel NosTale)
Gibt es dafür nen tutorial oder kann mir jemand vllt sagen wie es ausschauen müsste?

MfG !
Florian.K is offline  
Old 08/12/2017, 04:58   #2
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
Ja es sollte problemlos möglich sein.

Spiele verwenden meist UDP zum kommunizieren (oftmals noch tcp für den Chat oder andere Teile die eine zuverlässige Datenübertragung benötigen).

Auf die schnelle habe gefunden, keine Ahnung ob es was taugt.
warfley is offline  
Old 08/12/2017, 15:29   #3

 
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
Aber NosTale nutzt TCP.
Es sind auch schon viele Snippets für C++ Online, wie man Packete sendet & Empfängt.
Auch die Hooks in denen alle Send/Recv Packete geloggt werden können.
BladeTiger12 is offline  
Thanks
1 User
Old 08/12/2017, 15:59   #4
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
Quote:
Originally Posted by BladeTiger12 View Post
Aber NosTale nutzt TCP.
Es sind auch schon viele Snippets für C++ Online, wie man Packete sendet & Empfängt.
Auch die Hooks in denen alle Send/Recv Packete geloggt werden können.
Naja wenn es sich um TCP handelt ist es etwas komplizierter, aber nicht unmöglich.
Bei TCP werden Verbindungen an Sockets gebunden, wenn du nun also Pakete in der selben Verbindung wie ein Spiel senden willst, benötigst du eine Kopie des Socket Deskriptors. Das benötigt etwas arbeit mit der Windows API, und ist außerdem nicht vollständig in AutoIt möglich.

Das Problem ist, unter Windows sind Sockets Prozessgebunden, und um ein Socket zu kopieren, muss die WinAPI funktion DuplicateSocket aus dem Ursprungsprozess aufgerufen werden. Das könntest du darüber realisieren, dass du in einer nicht interpretierten Sprache (z.B. C) eine DLL schreibst, welche du in den Prozess lädst, und die dann DuplicateSocket ausführt, und den neuen Deskriptor dann in eine Datei schreibst. Den kannst du dann mit Autoit auslesen, und dann mittels die Pakete senden.

Das Hauptproblem wird aber sein das TCP gesichert ist, und daher Protokolle die auf TCP aufbauen meist so designet werden, dass sie mit unerwarteten Paketen nicht zurecht kommen. Außerdem beim lesen hast du dann das Problem der Gleichzeitigkeit der Prozesse. Es ist mehr oder weniger Glückssache ob dein Prozess vor dem Spiel die Daten abruft (da diese aus dem Netzwerkpuffer entfernt werden sobald sie gelesen wurden)

Deutlich einfacher statt also blind Pakete drauf los zu senden wäre es den Informationsfluss zu alternieren. Das wäre u.a. möglich durch das überschreiben der Senderoutine im Hostprozess durch eine eigene Funktion. Allgemein auch als Hooking bezeichnet (auch wenn ich diesen Ausdruck nicht mag). Das hat den Vorteil das dein Programmcode im Prozesskontext des Hostprozesses läuft, du also Vollzugriff auf den Virtuellen Speicher des Prozesses hast. Der Nachteil ist allerdings, dass ein entsprechender Anticheat das recht leicht erkennen kann. Außerdem ist das in AutoIt nicht direkt möglich, sondern benötigt auch wieder eine nicht Interpretierte Sprache.

Eine weitere Möglichkeit wäre es die Daten durch einen Proxy zu senden, welcher die Daten vom Spiel empfängt, analysiert, möglicherweise moduliert, und dann zum eigentlichen Server sendet. Das wäre zwar grundsätzlich in AutoIt möglich, und eigentlich recht leicht, allerdings hat auch diese Methode ein Problem. Wenn die Verbindung verschlüsselt ist, kann das ganze relativ schnell sehr schwer werden. Angenommen die Schlüssel werden über einen Typischen RSA zertifizierten Schlüsseltausch ausgetauscht. Dieser ist grundsätzlich zwar für einen man-in-the-middle Angriff angreifbar, indem du selbst einen Schlüsseltausch mit dem Server (mit dem eigenen RSA Zertifikat) durchführst, und dann einen Separaten mit dem Klienten (mit deinem eigenen RSA Zertifikat), und holst dir dann für jede Verbindung ein eigenes Passwort.
Wenn jetzt das ganze noch durch eine Trustet Authority zertifiziert wird, hast du erst mal damit keine Chance. Dann müsst du die TA überprüfung im Hostprozess umgehen, und dann ist die vorhin benannte Methode des Hookings widerum schon wieder einfacher (da du auch dann mit AutoIt nicht weit kommst)
warfley is offline  
Old 08/13/2017, 10:37   #5

 
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
@warfley: Wie gesagt^^ Ist mittlerweile alles Online. Wie das bei NosTale funktioniert ist auch ganz einfach. Die Cryption ist Online und auch sehr einfach gehalten ein Schlüsselaustausch findet nicht statt. Selbst die Packete kann man mit dem reinen Auge lesen, nach dem decrypten natürlich. Es sind einfach "string" die umhergesendet werden und mit Space getrennt werden.

Falls du nur Packete senden willst, hat dir @Warfley eine Möglichkeit genannt. Aber sehr aufwändig. Deswegen würde ich dir eigtl. raten, dass du es direkt in einer am Besten .Dll schreibst und die Funktionen direkt aufrufst. Natürlich könntest du auch einfach die Bytes von einer Funktion in den anderen Prozess schreiben, den String irgendwohin speichern und mit CreateRemoteThread diese Aufrufen. Ist aber auch aufwändig. Damit könntest du aber auf jeden Fall einfacher Packete senden. Recv' wäre damit vieel zu aufwändig.
BladeTiger12 is offline  
Thanks
1 User
Old 08/13/2017, 11:58   #6
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by BladeTiger12 View Post
@warfley: Wie gesagt^^ Ist mittlerweile alles Online. Wie das bei NosTale funktioniert ist auch ganz einfach. Die Cryption ist Online und auch sehr einfach gehalten ein Schlüsselaustausch findet nicht statt. Selbst die Packete kann man mit dem reinen Auge lesen, nach dem decrypten natürlich. Es sind einfach "string" die umhergesendet werden und mit Space getrennt werden.

Falls du nur Packete senden willst, hat dir @Warfley eine Möglichkeit genannt. Aber sehr aufwändig. Deswegen würde ich dir eigtl. raten, dass du es direkt in einer am Besten .Dll schreibst und die Funktionen direkt aufrufst. Natürlich könntest du auch einfach die Bytes von einer Funktion in den anderen Prozess schreiben, den String irgendwohin speichern und mit CreateRemoteThread diese Aufrufen. Ist aber auch aufwändig. Damit könntest du aber auf jeden Fall einfacher Packete senden. Recv' wäre damit vieel zu aufwändig.
Entweder das oder man bemüht einfach einmal Google, findet damit eine schöne UDF/Library vom guten Shadow und ein passendes Beispiel in Nostale.

Ist zwar zu 99% so nicht mehr funktionstüchtig, aber das Prinzip hat sich seit es Computer gibt nicht/kaum verändert von daher: Probiers aus!

Thread:

Edit:
Auch wenn das erst einmal nur Loggen ist, funktioniert das Senden natürlich ähnlich, Sende-Funktion überschreiben/hooken oder alternativ die Values richtig in die Packet-Arrays, Socket-Buffer u.ä. schreiben.
Shadow992 is offline  
Old 08/13/2017, 13:37   #7

 
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
Quote:
Originally Posted by Shadow992 View Post
Entweder das oder man bemüht einfach einmal Google, findet damit eine schöne UDF/Library vom guten Shadow und ein passendes Beispiel in Nostale.

Ist zwar zu 99% so nicht mehr funktionstüchtig, aber das Prinzip hat sich seit es Computer gibt nicht/kaum verändert von daher: Probiers aus!

Thread:

Edit:
Auch wenn das erst einmal nur Loggen ist, funktioniert das Senden natürlich ähnlich, Sende-Funktion überschreiben/hooken oder alternativ die Values richtig in die Packet-Arrays, Socket-Buffer u.ä. schreiben.
Stimmt . Da war ja mal was. Das habe ich damals auch benutzt. Ziemlich nützlich und einfach zu verwenden. Aber daran habe ich jetzt gar nicht mehr gedacht. Wird auf jeden Fall noch funktionieren, wenn man die Patterns anpasst.
BladeTiger12 is offline  
Thanks
2 Users
Reply

Tags
autoit, pakete senden


Similar Threads Similar Threads
Fragen bzgl Pakete senden / Cheat Engine
01/04/2017 - General Coding - 6 Replies
Heyho, Ich habe folgende Fragen: Kann man in Spielen per Cheat Engine (oder einem anderen Weg) herausfinden, ob 1. ein Monster(Raidboss) derzeit auf dem Server noch lebend oder schon tot ist 2. Wann ein Raidboss spawnen wird 3. Wo er exakt steht (map+coordinaten) und noch eine Frage:
[VB.NET] Pakete von einem Spiel senden/empfangen ?
12/10/2016 - .NET Languages - 7 Replies
Moin, wie schon der Titel sagt, suche ich eine Möglichkeit Pakete von einem Spiel zu empfangen und zu senden. Bis jetzt habe ich noch keinen Anfang, wäre aber nett wenn man mir da etwas helfen kann. MFG Oshumar
[Selling] Dragon's Prophet Lord Pakete (Gründet Pakete)
08/02/2014 - Trading - 1 Replies
Es werden Gründerpakete (Lord Pakete) für Dragon's Prophet EU angeboten. Inhalt pro Paket: 7000 Diamanten Verbrauchsgegenstände (Wert 150€) Waffen und Rüstungsskins Legendärer Runewake Drache Spezialhaus Seltene Titel uvm.
2 Header Pakete mit Winhttp senden
05/14/2012 - AutoIt - 0 Replies
Hi, ich hab hier ein kleines Problem und zwar schaff ich es nicht auf einer Seite 2 Pakete mit WinHttp so zu senden das sie ausgeführt werden. Paket 1: GET http://www.strassen-der-gewalt.de/wheel-of-fortune Host: www.strassen-der-gewalt.de User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0
Shot Online Hack / Pakete senden
03/05/2010 - General Coding - 0 Replies
Hi Leute (: Ich bin ein kompletter Anfänger in Sachen "Hacken", Coden ( Kann Java, wird aber nicht viel nützen denke ich ), Pakete senden usw. Shot Online ist ein Golf MMOG (Shot Online - Die offizielle deutsche Seite zu Shot Online | Online Golfspiel, Massively Multiplayer Online Role Playing Game, MMOG, MMORPG, Onlinespiel, Beta, Download, kostenlos* spielen) wo eigentlich fast nur Golf gespielt wird. Bei jedem Loch wird dir EXP und NG (Geld) geadded. Hab gehört, dass man irgendwie...



All times are GMT +1. The time now is 18:01.


Powered by vBulletin®
Copyright ©2000 - 2026, 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 ©2026 elitepvpers All Rights Reserved.