Hey Leute,
ich habe eine kleine
DLL geschrieben, welche die
DirectX(9) Funktionen Present() und Reset() hookt. Klappt auch alles wunderbar, ist ja keine große Sache. Die Probleme gibt es nun aber, wenn ich z.b. FRAPS oder andere Videoaufnahme-Programme geöffnet habe. Diese Programme hooken ebenfalls benannte Funktionen, sind sich allerdings zu fein vorher meine geänderten Instruktionen zu sichern, oder meinen Hook zu verfolgen. Resultat: Crash!
Nun habe ich über andere Hooking Methoden nachgedacht und wollte mal einen simplen VTable Hook ausprobieren. Diesen anzubringen funktioniert auch sehr gut, allerdings werden meine Änderungen in periodischen (sehr kurzen) Intervallen wieder rückgängig gemacht.
Eine Möglichkeit wäre es meine Hook in einer Endlosschleife neu zu attachen, allerdings sagt mir diese Lösung absolut nicht zu.
Um andere Lösungen zu finden, würde ich gerne verstehen, warum die VTable des IDirect3DDevice9 Interfaces immer wieder neu geschrieben wird. Kann mir hier eventuell jemand genauere Infos geben?
Vielen Dank und viele Grüße
Zacherl