Register for your free account! | Forgot your password?

You last visited: Today at 03:48

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

Advertisement



[Tutorial] Chams

Discussion on [Tutorial] Chams within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
[Tutorial] Chams

Und noch ein Tutorial von mir, erstmal das letzte.
Chams in DirectX 9 Spielen, über 17 Seiten anschaulich in CS:S demonstriert.
Zusammen entwickeln wir einen Logger und den Chamshack selber.
Vollständige sources liegen bei.
Man sollte vorher mein HookingTutorial (auch hier im forum: ) gelesen und verstanden haben.

Attached Files
File Type: rar Chams.rar (1.74 MB, 217 views)
Dr. Coxxy is offline  
Thanks
10 Users
Old 05/02/2013, 10:03   #2
 
elite*gold: 104
Join Date: Oct 2012
Posts: 2,720
Received Thanks: 593
Ganz ehrlich, das ist nicht DEIN Tutorial, das is von Silverdeath aus Oldschoolhack

#reported
Cambios is offline  
Old 05/02/2013, 13:03   #3


 
Jeoni's Avatar
 
elite*gold: 966
Join Date: Apr 2010
Posts: 1,105
Received Thanks: 681
Silverdeath aus OSH IST Dr. Coxxy aus Elitepvpers. Das kannst du gerne verifizieren, aber ich denke, dass er es schon irgendwann mal erwähnt hat.
MfG
Jeoni
Jeoni is offline  
Old 05/02/2013, 14:33   #4
 
elite*gold: 104
Join Date: Oct 2012
Posts: 2,720
Received Thanks: 593
Quote:
Originally Posted by Jeoni View Post
Silverdeath aus OSH IST Dr. Coxxy aus Elitepvpers. Das kannst du gerne verifizieren, aber ich denke, dass er es schon irgendwann mal erwähnt hat.
MfG
Jeoni
Und das weißt du woher, das es Silverdeath ist?
Ich mein, behaupten kann ja jeder das er Silverdeath wär^^
Sollte er es wirklich sein okay, aber ich bezweifle es.
Cambios is offline  
Old 05/02/2013, 18:56   #5
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Quote:
Originally Posted by Cambios View Post
Und das weißt du woher, das es Silverdeath ist?
Ich mein, behaupten kann ja jeder das er Silverdeath wär^^
Sollte er es wirklich sein okay, aber ich bezweifle es.
vergleich mal die sig und das avatar bild mit dem aus osh bob.
Dr. Coxxy is offline  
Old 05/02/2013, 19:51   #6

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
Quote:
Originally Posted by Dr. Coxxy View Post
vergleich mal die sig und das avatar bild mit dem aus osh bob.
Das hast du doch mit Absicht gemacht, damit das nicht so auffällt!!11!

Nettes Tutorial, vielen Dank.

Eine Frage hätte ich noch zu den DX-Hooks: Das sind ja alles Member-Funktionen der IDirect3DDevice9-Schnittstelle und dementsprechend werden die via thiscall aufgerufen (korrekt? this-Zeiger in ecx, ja?).
Wie übersetzt der Compiler den stdcall mit dem Parameter? Eignet sich da nicht eher ein fastcall, der ja auch Parameter in den Registern speichert? Ich hab mich noch nie großartig mit Calling Conventions beschäftigt, kann also sein, dass ich hier gerade mächtig falsch liege, aber die Technik wie man Member-Funktionen hookt, interessiert mich.
snow is offline  
Old 05/02/2013, 20:02   #7


 
Jeoni's Avatar
 
elite*gold: 966
Join Date: Apr 2010
Posts: 1,105
Received Thanks: 681
Das mit dem thiscall könnte man zwar denken, ist aber leider nicht so
Die VT-Funktionen der IDirect3DDevice9-Schnittstelle sind stdcalls, die als ersten Paramter den Device- bzw this-pointer (das, was beim thiscall ecx wäre) haben.
Also EndScene hat dementsprechend dann diesen Prototyp:
Code:
HRESULT __stdcall EndScene(LPDIRECT3DDEVICE9 pDevice);
Warum genau das so gehandhabt wird und nicht über den nähergelegenen thiscall weiß ich aber auch nicht
Hoffe, dass ich helfen konnte
Jeoni
Jeoni is offline  
Thanks
1 User
Old 05/02/2013, 20:21   #8
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Quote:
Originally Posted by snow911 View Post
Das hast du doch mit Absicht gemacht, damit das nicht so auffällt!!11!

Nettes Tutorial, vielen Dank.

Eine Frage hätte ich noch zu den DX-Hooks: Das sind ja alles Member-Funktionen der IDirect3DDevice9-Schnittstelle und dementsprechend werden die via thiscall aufgerufen (korrekt? this-Zeiger in ecx, ja?).
Wie übersetzt der Compiler den stdcall mit dem Parameter? Eignet sich da nicht eher ein fastcall, der ja auch Parameter in den Registern speichert? Ich hab mich noch nie großartig mit Calling Conventions beschäftigt, kann also sein, dass ich hier gerade mächtig falsch liege, aber die Technik wie man Member-Funktionen hookt, interessiert mich.
winapi ist afaik komplett stdcall um kompatibilität mit C zu wahren (und war halt damals normal...).
Dr. Coxxy is offline  
Thanks
1 User
Old 05/02/2013, 20:56   #9

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
Okay, das klingt plausibel. Danke.

Wie mache ich das denn, wenn ich einen Prototypen für eine Member-Funktion, die wirklich ein thiscall ist, erstellen will? Ich habe gerade mal die Calling Conventions angeschaut. Der this-Zeiger landet ja im ecx-Register, aber einen thiscall Prototypen kann man nicht einfach so erstellen, korrekt?
Ein fastcall hat die ersten 2 Argumente im ecx & edx Register, richtig? Das würde doch heißen, dass ich einen Memberfunktion-Prototypen so aufbauen kann:
int (__fastcall *Hook)(void *thisptr, void *spam, int arg0, int arg1 /* Parameter der Funktion */);
Korrekt oder liege ich komplett daneben?
snow is offline  
Old 05/02/2013, 22:47   #10




 
Omdi's Avatar
 
elite*gold: 1
Join Date: Apr 2010
Posts: 13,772
Received Thanks: 15,036
Quote:
Originally Posted by snow911 View Post
Okay, das klingt plausibel. Danke.

Wie mache ich das denn, wenn ich einen Prototypen für eine Member-Funktion, die wirklich ein thiscall ist, erstellen will? Ich habe gerade mal die Calling Conventions angeschaut. Der this-Zeiger landet ja im ecx-Register, aber einen thiscall Prototypen kann man nicht einfach so erstellen, korrekt?
Ein fastcall hat die ersten 2 Argumente im ecx & edx Register, richtig? Das würde doch heißen, dass ich einen Memberfunktion-Prototypen so aufbauen kann:
int (__fastcall *Hook)(void *thisptr, void *spam, int arg0, int arg1 /* Parameter der Funktion */);
Korrekt oder liege ich komplett daneben?
Das ist korrekt

Nur mal so ein kleines Beispiel :

Code:
typedef void (__thiscall *tSetHP)(void*, float);
tSetHP oSetHP = nullptr;

//hook sethp blablabla

void __fastcall hkSetHP(void *pThis, void *pFastcall, float fHP)
{
    return oSetHP (pThis, 9999999.9999);
}
Omdi is offline  
Thanks
1 User
Old 05/02/2013, 23:01   #11
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
wozu ich natürlich auch ein tutorial gemacht habe...:
Dr. Coxxy is offline  
Old 05/13/2013, 20:45   #12


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
Originally Posted by Jeoni View Post
Das mit dem thiscall könnte man zwar denken, ist aber leider nicht so
Die VT-Funktionen der IDirect3DDevice9-Schnittstelle sind stdcalls, die als ersten Paramter den Device- bzw this-pointer (das, was beim thiscall ecx wäre) haben.
Also EndScene hat dementsprechend dann diesen Prototyp:
Code:
HRESULT __stdcall EndScene(LPDIRECT3DDEVICE9 pDevice);
Warum genau das so gehandhabt wird und nicht über den nähergelegenen thiscall weiß ich aber auch nicht
Hoffe, dass ich helfen konnte
Jeoni
Der Deviceptr WIRD im ECX-Register übergeben.
MrSm!th is offline  
Old 05/13/2013, 22:32   #13


 
Jeoni's Avatar
 
elite*gold: 966
Join Date: Apr 2010
Posts: 1,105
Received Thanks: 681
Tut mir Leid, aber da muss ich wiedersprechen
Bei den Funktionen eines IDirect3DDevice9-Objekts ist das zumindest nicht so (EndScene gehört ja dazu). Diese Funktionen sind nicht thiscall, hier wird der deviceptr (thisptr?), der bei thiscall-Funktionen im ECX-Register liegt, als 1. Argument übergeben über den Stack übergeben (stdcall). In ECX steht nicht der Deviceptr (das impliziert deine Aussage ja, oder?).

Hier ein Bild dazu (mein Schulprojekt in Olly):

Die aktuelle Position ("call edx") ist der Call zu EndScene. Der Push davor pusht den deviceptr (wie man sehen kann hier 0x02665060). In ECX befindet sich währenddessen ein anderer Wert (0x02667DFC), welcher einen Pointer zur D3D9-VTable darstellt. Bei Hooks o.Ä. anzunehmen, dass der deviceptr in ecx ist, würde also vermutlich zum Crash führen.
Das ganze gilt nur für D3D9 unter 32Bit (von 'dort' stammt auch der Screenshot). Wie es mit D3D10/11 und / oder auf 64 Bit aussieht, weiß ich nicht.
Natürlich ist das bei den 'normalen' Klassen, die man in C++ (andere Sprachen ggf auch, da kenne ich mich nicht aus) erstellt, natürlich nicht der Fall. Memberfunktionen sind dann ganz normal thiscall und der thisptr liegt auch in ECX, statt über den Stack übergeben zu werden

Mit freundlichen Grüßen
Jeoni
Jeoni is offline  
Reply


Similar Threads Similar Threads
tutorIAL PARA GUMANA YUNG GREEN CHAMS
01/22/2011 - Soldier Front Hacks, Bots, Cheats & Exploits - 14 Replies
1.DOWNLOAD YUNG INJECTOR PATI FILE NG GREEN CHAMPS 2.MAG DOWNLOAD NG TATLONG SETUP 3.IINSTALL MO YUNG ISANG SETUP 4.IINJECT MO NA YUNG GREEN CHAMS
White chams and wireframe tutorial
03/28/2010 - Soldier Front Philippines - 60 Replies
* Moderated ~ Darnoc
[Tutorial] Define your chams
10/27/2008 - WarRock - 4 Replies
Credits to LilCrazed Sorry if it has been posted i searched and didn't find it In d3d8dev.cpp under the includes put #define Player (m_Stride == 44) #define Walls (m_Stride == blah) #define Flags (NumVertices == blah)



All times are GMT +1. The time now is 03:49.


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