Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 20:55

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

Advertisement



D3D Model detection in WoW?

Discussion on D3D Model detection in WoW? within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Feb 2005
Posts: 1,013
Received Thanks: 19
Ja wie der Titel schon fragt, such ich einen Model detection code.

Ich weiss sind nicht viele "wow coder" hier bzw. garkeine aber vielleicht kennt ja wer eine methode.
d-aze is offline  
Old 09/16/2006, 22:06   #2
 
elite*gold: 0
Join Date: Mar 2006
Posts: 111
Received Thanks: 0
Hallo daze,

als aller erstes wirst du auf jeden Fall das Handle für das Interface brauchen. Solange du dich im Userland befindest, wirst du nicht ohne weiteres die geöffneten Handles eines Prozesses auflisten können(afaik = ich kann mich irren).
Um im DirectX Fenster rumstochern zu können, _brauchst_ du das Interface.
Ich hätte da vielleicht ein Beispiel *im alten code rumgrab* ... ach, da haben wir es ja. Ich brauchte in dem folgenden Beispiel das DirectDraw Interface, da zu der Zeit noch kaum jemand an 3D gedacht hat (das Spiel ist etwa 10 Jahre alt ). Das Prinzip ist das gleiche, nur das es sich um einen anderen Dll Namen und Funktion handelt. Du wirst warscheinlich nach "Direct3DCreate9" und/oder d3d9.dll suchen müssen. Schaue dir die Importtable der Spieldateien durch und wenn du nichts findest, wird die Direct3D Dll dynamisch geladen, somit gibt es irgendwo ein "LoadLibrary" Aufruf.

Hier wird die Dll geladen und das Handle in einer globalen Variable gespeichert(uninteressant):

Code:
.text:15012110 loc_15012110:
.text:15012110 * * * * * * * * mov * * eax, dword_15039B08
.text:15012115 * * * * * * * * mov * * dword_15039AF0, 1
.text:1501211F * * * * * * * * test * *eax, eax
.text:15012121 * * * * * * * * mov * * dword_15039AFC, 0
.text:1501212B * * * * * * * * jnz * * short loc_15012141
.text:1501212D * * * * * * * * push * *offset aDdraw_dll; "ddraw.dll"
.text:15012132 * * * * * * * * call * *ds:LoadLibraryA
.text:15012138 * * * * * * * * test * *eax, eax
.text:1501213A * * * * * * * * mov * * dword_15039B08, eax
.text:1501213F * * * * * * * * jz * * *short loc_1501215C
Kurz danach haben wir sofort den Aufruf von "DirectDrawCreate":

Code:
.text:15012141 * * * * * * * * push * *offset aDirectdrawcrea; "DirectDrawCreate"
.text:15012146 * * * * * * * * push * *eax * * * * * *; hModule
.text:15012147 * * * * * * * * call * *ds:GetProcAddress
.text:1501214D * * * * * * * * test * *eax, eax
.text:1501214F * * * * * * * * jz * * *short loc_1501215C
.text:15012151 * * * * * * * * push * *0
.text:15012153 * * * * * * * * push * *offset dword_15039B0C
.text:15012158 * * * * * * * * push * *0
.text:1501215A * * * * * * * * call * *eax
.text:1501215C
.text:1501215C loc_1501215C:
.text:1501215C
.text:1501215C * * * * * * * * mov * * eax, dword_15039B0C
.text:15012161 * * * * * * * * test * *eax, eax
Wenn wir uns die Deklaration von "DirectDrawCreate" ansehen, sehen wir, dass wir an die Funktion einen Pointer übergeben, unter dem wir nach dem Aufruf(zweiter Parameter) das Interface finden sollten - wenn alles geklappt hat. In unserem Fall liegt das unter "15039B0C". Das bedeutet wenn wir eine Dll injiziert haben, können wir sie mithilfe dieses Pointers auslesen und auch benutzen.
Dieser Teil des Codes sah bei mir so aus:

Code:
#include <windows.h>
#include "C:\DXSDK\Include\ddraw.h"

HMODULE g_hDll;
IDirectDraw *g_pDD;

// blah ...

// 1: Offset, 2: bufout, 3: len
ReadLocalMemory(0x15039B0C, g_pDD, sizeof(g_pDD));
(*schäm*)

DirectX/OpenGL ist leider nicht mein Lieblingsbereich, deshalb habe ich für dich kein aktuelles Beispiel. Trotzdem hoffe ich das es hilfreich war.

Eine Möglichkeit um immer an das Handle zu kommen, wäre es einen Loader zu Programmieren der als erste Aktion (Break beim Entrypoint der Exe) deine Dll läd (Dll-Injection) und wenn die d3d9 sich noch nicht im Prozess befindet, kannst du z. B. ein Hook auf LoadLibrary(Ex) setzen. In deiner Hooked_LoadLibrary, lädst du selbst die d3d9.dll (deinen Hook kannst du an dem Punkt vorher schon ausschalten, wirst du dafür nicht mehr brauchen) und mithilfe der Exporttable von d3d9 findest du dann den Entry zu Direct3DCreate9. Nur noch ein Hook auf diese Funktion und sich den Rückgabewert(Interface) abgreifen ;-)
Damit ist dir das Interface vor dem Spiel bekannt und bevor das Spiel ein Fenster erstellt hat ... wie wären ein paar Hooks mehr für eine andere Auflösung, Windowmode etc. ? :-)

Das wenn du es selbst machen willst. Wenn du es einfach haben willst, suchst du dir den "alten" Quellcode des hacks von Bubbafate für WoW - ich persönlich habe mir den nicht angeschaut, er sollte aber das beinhalten was du suchst.
SilonVier is offline  
Reply


Similar Threads Similar Threads
LU/GG Third Party Detection using Rad Eng 7.5
08/05/2009 - Grand Chase Philippines - 20 Replies
guys.. suggestion.. if u experience this.. try to use ur decoy acct first, then do ur scanning and changes on ur engine before using it on ur original acct.. i tried to do it that way and it seems that i avoided the third party detection. we dont know what may happen if u continue getting that prompt using ur original account. i have a friend that has been getting the same message and now he's account was suspended for 30-days... pls be mindful... try to create decoy accounts if u feel...
BOT detection How to?
06/18/2008 - Cabal Hacks, Bots, Cheats, Exploits & Macros - 1 Replies
how do they detect bot players? i would like to know and for everybody to know to prevent further accounts being banned. do's and don'ts while botting. some of us are bot users but we are just plain users and being careless and getting your account 1,2,3 poof and become coco crunch(BANNED)
detection
12/06/2007 - Planetside - 12 Replies
is t-search safe to use or cheat engine in kernel mode? :) and i used to ammo hack a lot of the time awhile ago is that detected? i dont know what is detected and what is not. thanks
new bot detection?
08/27/2006 - Conquer Online 2 - 1 Replies
Uh oh, someone just warned me that TQ has developed some new bot detection software, and that they are currently testing it on some servers. just a heads up, could be TQ trying to scare us, or could be the real deal. hope its not like 4312 (that was a pain).
Forceshock .. Detection?!
05/27/2005 - World of Warcraft - 13 Replies
hi.. mich wunderts das es hier jetzt sogar ne eigene forceshock section gibt.. soweit ich weis wird das doch detected .. ich wurde auch deswegen gebannt.. und 2 weitere leute die ich kenne auch... wird der jetzt nichmehr erkannt oder wie oder was.. kann mich ma einer da aufklären.. danke ^^ denn ich hab keine lust mit nem neuen accont nochma bis lvl 60 zu spielen... das macht einfach kein spaß mehr wenn man schonma 60 war



All times are GMT +2. The time now is 20:55.


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.