Seite 1 von 1

Globale Hooks (fps,overlay...)

Verfasst: 21.12.2004 11:19
von Agent
Hallo PBler.

Ich weiß, solche Fragen wurden hier schon gestellt. Leider aber noch nicht ausreichend beantwortet finde ich.

Soweit ich weiß, werden solche Sachen über globale hooks gemacht...

Folgendes:
Ich möchte einen fps-counter proggen, der bei directx-anwendungen auf oberster ebene angezeigt wird (ähnlich fraps oder Teamspeak-Overlay...)

Hat jemand in dieser Richtung schonmal was gecoded?
Die overlays die hier im Forum stehen funktionieren leider nicht ausreichend.

Wir haben doch hier im Forum unsere "Super-Cracks" wie real, GPI, Nic usw... ;-)

Verfasst: 21.12.2004 18:10
von real
Na da bin ich auch mal gespannt. :D

Das Problem ist hier wirklich das DirectX-Hooking. Schau Dir auch mal die Seite http://www.tommti-systems.de an. Da gibt's im Shop einen interessante DirectX9-Wrapper-DLL. Die kann man dafür z.B. nutzen - kostet allerdings ne Menge (125 €).

Allerdings möchte ich auch gern mal in PB proggen - wurde bis dato allerdings hier nicht fündig.

Verfasst: 21.12.2004 20:36
von Agent
WOW....125€ ist aber fett.

Naja, dann warte ich mal lieber ab. Wäre halt schön wenn man(n) das irgendwie, einfach und elegand lösen könnte.

Zumal ich auch ein Zocker bin, könnte ich da einiges mit anfangen.

fps, cpu-usage, mem, das ganze Programm.

Wenn man sich mal fraps anschaust, das prog ist nur 60kb oder so. also purebasic mässig. da steckt bestimmt ne api dahinter.

Verfasst: 22.12.2004 14:49
von real
das problem ist - wie gesagt - das directx-hooking. directx ist (korrigiert mich, wenn ich was falsches schreibe) objektorientiert (COM = Component Object Model). ein directx-objekt wird erstellt, dann dafür die dazugehörige surface (oberfläche), hierfür der frontbuffer und ggf. backbuffer. in dem backbuffer wird gemalt etc... irgendwann wird der backbuffer zum frontbuffer und DAS ist der grund, weshalb einfache overlays eines anderen programm flackern: das, was gerade noch dargestellt war, wird jetzt von directx durch den backbufferinhalt übermalt. also mußt du beim hooking feststellen, wann der backbuffer zum frontbuffer wird und dann das overlay updaten. wie du siehst: nicht so simpel. zumal durch die objectorientierung in der d3d9.dll kein Present() oder EndScene() definiert ist. ;)

wenn ich mit meinen anstrengungen dahingehend weiterkomme werd ich das hier selbstverständlich posten.

Re: Globale Hooks (fps,overlay...)

Verfasst: 22.12.2004 17:01
von traumatic
Es gibt ein sehr schönes Tutorial zum Thema (Code-Beispiele in ASM
- aber selbst mit begrenzten ASM-Kenntnissen durchaus verständlich
und nachvollziehbar IMHO) => google.com -> "nanobot2k" + "tut6"