OldSchoolHack

Register / Login English

Prob mit Detour

icon Thread: Prob mit Detour

Join Date: Sep 2010

Posts: 38

Hey ho, ich habe mich gerad an dem D3d8 Hook tut von Knavker versucht und bekomme Probleme.
Wer das Tut nicht kennt:
Man sucht die Stelle im Speicher, wo die BeginScene Funktion liegt und detourt dann in der Funktion.
Mein erstes Problem:
Wenn ich Olly1.x verwende finde ich eine andere Funktionsadresse, als wenn ich Olly2.x benutze:
Olly1 Funktionebsginn :
CPP Code:
  1. 6E3043A0 8BFF MOV EDI,EDI
Olly2 Funktionsbeginn :
CPP Code:
  1. 6E4243A0 8BFF MOV EDI,EDI
Nun gut, ich habe dann also versucht das ganze zu detourn: (nicht am Funktionsanfang)
CPP Code:
  1. #include <Windows.h>
  2. #include "d3d8.h"
  3. #include "detours.h"
  4. #pragma comment (lib,"detours.lib")
  5.  
  6.  
  7.  
  8. IDirect3DDevice8* deviceptr = NULL;
  9. typedef void (*oBeginScene)();
  10. oBeginScene pBeginScene;
  11.  
  12. void __declspec (naked) GetDevicePointer(){
  13. if (deviceptr == NULL){
  14. __asm{
  15. push eax
  16. mov eax, [esp + 0x34 + 0x04]
  17. mov deviceptr,eax
  18. pop eax
  19. jmp pBeginScene
  20. }
  21. }else{
  22. __asm jmp pBeginScene
  23. }
  24. }
  25.  
  26. void initHook(){
  27. pBeginScene = (oBeginScene)DetourFunction((PBYTE)0x6E3043BE,(PBYTE)GetDevicePointer);
  28. }
  29.  
  30. BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved){
  31. if (fdwReason == DLL_PROCESS_ATTACH){
  32. initHook();
  33. }
  34. }
Der Prozess stürzt ab beim Injecten. Wenn ich mir den Detour Jump anschaue:
6E4243BE    JMP 6E3B1258
kann ich der Adresse in Olly nicht folgen, Olly sagt
Quote
No Memory at this address
MsDetous setzt den Jump also nicht zu meiner Funktion, sondern irgendwo anders hin.
Könnte mir jemand sagen, was da falsch läuft, bzw was ich falsch mache ?
mfg Krusty.