Register for your free account! | Forgot your password?

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

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

Advertisement



Ollydbg - Parameter einer Funktion auslesen?

Discussion on Ollydbg - Parameter einer Funktion auslesen? within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 14
The Black Market: 108/0/1
Join Date: May 2011
Posts: 2,671
Received Thanks: 818
Ollydbg - Parameter einer Funktion auslesen?

Hallo Leute!

Ich versuche gerade, so nen kleinen Bot in C++ für Metin2 zu schreiben.
Die Funktion, um einen Schlag auszuführen, heißt "SetAttackKeyState" und sieht in Olly so aus:

Code:
CPU Disasm
Address   Hex dump          Command                                  Comments
00450D08  |.  50            PUSH EAX                                 ; /Arg3 => OFFSET LOCAL.0
00450D09  |.  6A 00         PUSH 0                                   ; |Arg2 = 0
00450D0B  |.  51            PUSH ECX                                 ; |Arg1 => [ARG.2]
00450D0C  |.  E8 DF541300   CALL 005861F0                            ; \metin2client_unpacked.005861F0
Diese hat aber 3 Parameter.
Debuggen und durch den Stack steppen kann ich nicht, da Hackshield.

In C++ fehlen mir nur noch die Parameter:
Code:
typedef void (__stdcall *oSetAttackKeyState)(... parameter);

oSetAttackKeyState SetAttackKeyState = (oSetAttackKeyState) 0x005861F0;
vwap is offline  
Old 11/05/2011, 17:44   #2
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Äh, siehst du doch, drei DWORDs. ECX ist in dem Fall vermutlich die Adresse des ersten Bytes des Objekts, wenn du das als etwas anderes als ein DWORD definieren willst musst du wohl oder übel die Klasse reversen und nachbauen. Zweiter Parameter const DWORD, dritter Parameter wahrscheinlich irgendeine Adresse vom Stack.

Lange Rede kurzer Sinn: drei DWORDs.
SmackJew is offline  
Old 11/06/2011, 00:13   #3
 
elite*gold: 0
Join Date: Apr 2006
Posts: 6,597
Received Thanks: 1,830
@SmackJew
Rein aus Neugier wie liest du da raus ,dass ECX ein pointer zum Objekt ist?

sollte doch eher so aussehen beim thiscall
Quote:
PUSH EAX
PUSH 0
MOV ECX,objektpointer
CALL ....
__thiscall:
Quote:
Arguments are pushed on the stack from right to left, with the this pointer being passed via register ECX, and not on the stack, on the x86 architecture.
Medix is offline  
Old 11/06/2011, 00:53   #4
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Quote:
Originally Posted by Medix View Post
@SmackJew
Rein aus Neugier wie liest du da raus ,dass ECX ein pointer zum Objekt ist?

sollte doch eher so aussehen beim thiscall


__thiscall:
Vollkommen richtig. Bin sehr breit.
SmackJew is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Funktion Adressen + Parameter
01/31/2011 - Kal Online - 28 Replies
Hi, ich fang mal mit nem Quote von meak1 an. Wozu dir Pattern da sind etc habe ich verstanden. Die Frage die sich mir stellt: Woher weis ich welche Parameter die Methode KChatLog_v erwartet? Bzw gibt es Tipps, wie ich nach den Pattern für bestimmte funktionen suche kann? Hoffe die Fragen kann man beantworten, so dass ich weiterkomme.
[C++]Funktion einer Klasse in einer anderen Funktion der Klasse verwenden, aber wie?
07/25/2010 - C/C++ - 3 Replies
Mein Problem ist eigentlich recht simpel und die Lösung wahrscheinlich auch. Da ich bisher fast 0 mit Klassen am Hut hatte, wollte ich mich doch mit dem Thema anfreunden und hatte gleich angefangen: int test::Funktion2() { int temp; cin>>temp; return temp; }
WinAPI-Funktion in ollydbg aufrufen
05/08/2009 - General Coding - 5 Replies
Hi, ich versuche schon seit einiger Zeit eine Dll mit ollydbg so umzuändern, dass sie in einer bestimmten Stelle die WinAPI-Funktion Sleep aufruft. Bei einer Exe wäre das ja nicht so schwer. Da hätte ich einfach die Adresse aus den Imports ausgelesen, weil die ja für gewöhnlich immer in die virtuelle Adresse 0x00400000 geladen werden. Bei der Dll ist nun das Problem, dass die mal hierhin und mal dorthin geladen wird, sodass die Imports dementsprechend auch keine feste Adresse besitzen. Ich...
Auslesen der Parameter einer EXE
02/11/2009 - General Coding - 15 Replies
Hi! Hab mal ne Frage: Gibt es eine Möglichkeit die Parameter mit denen man eine EXE starten kann auszulesen? Beispiel: chkdsk /f Danke im Vorraus :)
Auslesen mit OLLYDBG gefährlich ?
04/16/2007 - General Coding - 6 Replies
Hallo liebe Leute, diesmal eine simple frage! Kann ich in WoW dafür gebannt werden, weil ich mit ollydbg die memory auslese ? Danke.



All times are GMT +2. The time now is 18: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.