Register for your free account! | Forgot your password?

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

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

Advertisement



League of Legends detouring

Discussion on League of Legends detouring within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Sep 2009
Posts: 4
Received Thanks: 0
League of Legends detouring

huhu,

ich schreibe gerade ein Programm (C#) für LoL, habe allerdings Probleme beim finden von einer Adresse einer Funktion.

Bis jetzt injected mein Programm eine in VC++ geschriebene dll, in der soll später eine Funktion von LoL mittels detours 'gehookt' werden.

Da das Problem nur einen minimalen Anteil meiner Anwendung betrifft, meines Erachtens jedoch einen enormen Leseaufwand bzw. Wissen/Know-How in dem Gebiet Reverse Engineering erfordert,
möchte ich mir die Arbeit durch dieses Forum sparen..

Mal etwas konkreter:
Wenn man in LoL in einer Spielelobby ist, wird bei Eintritt von einem Spieler in der Chatbox "$name hat den Chat betreten" (so oder so ähnlich) ausgegeben. Dazu muss offensichtlich irgendwo eine Funktion aufgerufen werden.

Da meine OllyDBG-skills den eines BWL-ers ähneln, suche ich Rat bei euch

Meine Frage also: Wie finde ich die Adresse der Funktion, welche die oben genannte Chatnachricht in den Chat printelt?
log0las is offline  
Old 06/09/2011, 02:21   #2
 
RunzelEier's Avatar
 
elite*gold: 0
Join Date: Dec 2010
Posts: 1,196
Received Thanks: 682
öffne Lol im debugger, am besten olly
rechtsklick ins cpu fenster und search for all referenced text strings
und dann nach "hat den Chat betreten" suchen.
das sollte dann schon die funktion sein.

glhf
RunzelEier is offline  
Old 06/10/2011, 21:09   #3
 
elite*gold: 0
Join Date: Sep 2009
Posts: 4
Received Thanks: 0
Danke für die Antwort,

führte leider nicht zum Ziel.

Habe das schon vorher versucht, wusste aber nicht, dass man im CPU-Fenster danach suchen muss.
log0las is offline  
Old 06/11/2011, 01:47   #4


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Quote:
Originally Posted by RunzelEier View Post
öffne Lol im debugger, am besten olly
rechtsklick ins cpu fenster und search for all referenced text strings
und dann nach "hat den Chat betreten" suchen.
das sollte dann schon die funktion sein.

glhf
Nein, da es höchstwahrscheinlich nicht absolut sondern in Pointern gespeichert wird, wo sich dieser Text befindet.

Du kannst mehrere Dinge probieren.

Eine Idee wäre send/recv zu hooken und zu überprüfen, wann ein Packet ankommt, dass das Eintreten des Spielers signalisiert.
Du könntest auch die Schleife des Spiels suchen, die die Tastatur abfragt, denn dort wird es sicherlich auch einen Fall für Enter geben, der dann den Text im Chatfenster anzeigt. Eventuell werden Systemnachrichten über die selbe Funktion angezeigt.

Eventuell hast du auch Glück und LoL nutzt DirectX Fonts anstatt einer eigenen Klasse, dann kannst du durch Hooken der Methode DrawText an den Text und damit die Funktion kommen.

Eine Idee wäre es auch, den Text mit Cheat Engine zu suchen und dann alle Stellen anzeigen zu lassen, die davon lesen; das wird dann vermutlich die Anzeigefunktion sein, die dann ja auch irgendwo von der Funktion aufgerufen wird, die den Namen empfängt und den String ausgibt.

Mit ein bisschen Kreativität geht da vieles :P
MrSm!th is offline  
Reply




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


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.