OldSchoolHack

Registrieren / Anmelden Deutsch

Detected Detour


icon Detected Detour #1

Anmeldungsdatum: Mai 2012

Beiträge: 13

Hallo OSH!

Habe die Tutorials von purple.d1amond und SilverDeath (die mir sehr gefallen haben) durchgemacht.
Derzeit versuche ich mit einem Logger die Chams von BrickForce (mit XTrap) zu finden, aber
der Hack wird detected, und das erst mit der DetourFunc (habe das mit MessageBoxen herausgefunden)  

Nun frage ich mich, wie ich eine eigene/undeceted Detour schreibe bzw.
ob es eine andere Möglichkeit gibt das zu lösen.

mfg Tom

icon #2

Anmeldungsdatum: Mär 2011

Beiträge: 978

Benutzer-Bewertung:

89 positiv
6 negativ
xtrap ist glaub ich recht aggressiv, kannst mal versuchen anstatt den anfang der funktion zu überschreiben die einträge in der vtable zu ersetzen.

für endscene also z.b. vTable[42] = (DWORD) MyEndscene;

musst natürlich vorher die originaladresse speichern und dann von myendscene aus aufrufen.

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Zitat von xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Zitat von f4gsh0t_h4x
VAC ist an,immer,überall
Zitat von gibson.w
Ich mag braune Würstchen
Zitat von irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Zitat von irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Zitat von irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Zitat von irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Zitat von Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif
icon #3

Anmeldungsdatum: Nov 2010

Beiträge: 181

Du kannst auch mitten in die Funktion dein hook setzen.
musst die Hookfunktion so schreiben:
__declspec(naked) void hook()
{

__asm
{
}

}

wenn du parameter einsetzt so
__declspec(naked) void __fastcall hook( int a, int b, int c)
{

__asm
{
}

}

hier noch was zu __fastcall:
http://msdn.microsoft.com/de-de/library/6xa169sk(v=vs.110).aspx

wegen den parametern benutzt man am besten __fastcall dadurch werden die parameter in die register geladen statt auf den stack geladen wird.

Silver meint das de mal mit nem call die Funktion aufrufen sollst vielleicht scannt xtrap auf jumps(E9)

__________________

Ich liebe Kekse

Um Links zu sehen, musst du dich registrieren

CHEAT CODING IS NOT A CRIME
icon #4

Anmeldungsdatum: Mär 2011

Beiträge: 978

Benutzer-Bewertung:

89 positiv
6 negativ
das fastcall bringt bei parametern garnichts, wenn du mitten in die funktion reinhookst sind die parameter idr. inzwischen wer weiß wo.

musste naked nehmen und dann mit asm befehlen dir die parameter wieder rausfischen, aber wahrscheinlich sind code changes eh detected.

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Zitat von xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Zitat von f4gsh0t_h4x
VAC ist an,immer,überall
Zitat von gibson.w
Ich mag braune Würstchen
Zitat von irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Zitat von irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Zitat von irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Zitat von irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Zitat von Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif
icon #5

Anmeldungsdatum: Mai 2012

Beiträge: 13

Was ich vielleicht noch erwähnen könnte wäre ist, dass der Hack nicht
gleich detected wird sondern erst nach ca. 30sek bis max. 2min.
E9 hält länger als E8 ... E8 wird sofort nach der Injection erkannt!

Außerdem habe ich HideModule(hinstDll); probiert.
XTrap erkennt leider das etwas nicht stimmt, aber weiß nicht genau was.
Also bei der HackShield-Meldung wird kein Pfad zur Datei angezeigt.
Spoiler
CPP Code:
  1.  
  2. void HideModule(HINSTANCE hModule)
  3. {
  4. DWORD dwPEB_LDR_DATA = 0;
  5. _asm
  6. {
  7. pushad;
  8. pushfd;
  9. mov eax, fs:[30h];
  10. mov eax, [eax+0Ch];
  11. mov dwPEB_LDR_DATA, eax;
  12. mov esi, [eax+0Ch];
  13. mov edx, [eax+10h];
  14. LoopInLoadOrderModuleList:
  15. lodsd;
  16. mov esi, eax;
  17. mov ecx, [eax+18h];
  18. cmp ecx, hModule;
  19. jne SkipA
  20. mov ebx, [eax]
  21. mov ecx, [eax+4]
  22. mov [ecx], ebx
  23. mov [ebx+4], ecx
  24. jmp InMemoryOrderModuleList
  25. SkipA:
  26. cmp edx, esi
  27. jne LoopInLoadOrderModuleList
  28. InMemoryOrderModuleList:
  29. mov eax, dwPEB_LDR_DATA
  30. mov esi, [eax+14h]
  31. mov edx, [eax+18h]
  32. LoopInMemoryOrderModuleList:
  33. lodsd
  34. mov esi, eax
  35. mov ecx, [eax+10h]
  36. cmp ecx, hModule
  37. jne SkipB
  38. mov ebx, [eax]
  39. mov ecx, [eax+4]
  40. mov [ecx], ebx
  41. mov [ebx+4], ecx
  42. jmp InInitializationOrderModuleList
  43. SkipB:
  44. cmp edx, esi
  45. jne LoopInMemoryOrderModuleList
  46. InInitializationOrderModuleList:
  47. mov eax, dwPEB_LDR_DATA
  48. mov esi, [eax+1Ch]
  49. mov edx, [eax+20h]
  50. LoopInInitializationOrderModuleList:
  51. lodsd
  52. mov esi, eax
  53. mov ecx, [eax+08h]
  54. cmp ecx, hModule
  55. jne SkipC
  56. mov ebx, [eax]
  57. mov ecx, [eax+4]
  58. mov [ecx], ebx
  59. mov [ebx+4], ecx
  60. jmp Finished
  61. SkipC:
  62. cmp edx, esi
  63. jne LoopInInitializationOrderModuleList
  64. Finished:
  65. popfd;
  66. popad;
  67. }
  68. }

Des weiteren: FreezeXTrap per Thread (Keine Ahnung derzeit wie man das benutzt)
Spoiler
CPP Code:
  1.  
  2. DWORD WINAPI FreezeXTrap()
  3. {
  4. while(1)
  5. {
  6. DWORD XTrapPID = GetProcessId("XTrap.xt");
  7.  
  8. if(XTrapPID != 0)
  9. {
  10. _NtSuspendProcess NtSuspendProcess = (_NtSuspendProcess) GetProcAddress( GetModuleHandle( "ntdll" ), "NtSuspendProcess" );
  11. HANDLE XTrap = OpenProcess(PROCESS_ALL_ACCESS, false, XTrapPID);
  12. NtSuspendProcess(XTrap);
  13.  
  14. return 0;
  15. }
  16. Sleep(5000);
  17. }
  18. }

Ich danke für eure Hilfe bzw. euren Ideen
Habe heute keine Lust mehr dazu  

mfg Tom
icon #6

Anmeldungsdatum: Sep 2010

Beiträge: 136

Augen aufmachen und staunen: https://www.oldschoolhack.me/forum/tutorials/3546,gamehacking-tutorial-part-11.html

__________________

[21:43:44] <-> Reita heißt jetzt R|GW2
[21:44:08] <-> Igromanru heißt jetzt Reita
[21:44:20] <-> Cycode2 heißt jetzt Igromanru
[21:44:27] <-> R|GW2 heißt jetzt Cyode2
icon #7

Anmeldungsdatum: Nov 2010

Beiträge: 181

Haste auch versucht etwas weiter in der funktion zu hooken ?

__________________

Ich liebe Kekse

Um Links zu sehen, musst du dich registrieren

CHEAT CODING IS NOT A CRIME
icon #8

Anmeldungsdatum: Mai 2012

Beiträge: 13

An C++Freak:

Inwiefern soll ich das machen? Bisjetzt habe ich nur die 2 oben
genannten Tutorials durchgemacht.  

An sMp:

Dieses Tutorial aus deinem Link wurde für D3D8 geschrieben bzw.
ist leider schon etwas alt :/

An SilverFire:

Warum die Funktion überschreiben? Was würde sich da ändern?


Ich bitte um ein bisschen mehr Theorie
Danke für die Hilfe/Unterstützung
mfg Tom
icon #9

Anmeldungsdatum: Mär 2011

Beiträge: 978

Benutzer-Bewertung:

89 positiv
6 negativ
ne vtable enthält pointer auf die virtuellen funktionen des objektes/der klasse.
wenn du den entsprechenden vtable eintrag ersetzt zeigt er nun auf deine funktion.

siehe:
http://www.elitepvpers.com/forum/coding-tutorials/1487152-c-vtable-hook.html

@ c++freak
direkt in ne funktion reinhooken kannst du mit ner naked funktion, die hat am anfang und am ende keinen compiler erzeugten code, weshalb es damit kein problem ist mitten in  die funktion zu hooken.

nachteil hieran ist, dass du dann meist die parameter i-wo aus dem stack rausfischen musst, etc...

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Zitat von xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Zitat von f4gsh0t_h4x
VAC ist an,immer,überall
Zitat von gibson.w
Ich mag braune Würstchen
Zitat von irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Zitat von irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Zitat von irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Zitat von irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Zitat von Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif
icon #10

Anmeldungsdatum: Mai 2012

Beiträge: 13

Danke SilverFire, aber bei mir crasht das Spiel (egal welches Dx9 Game),
wenn ich die Funktion im HookThread aufrufe. Code:

HookThread:
Spoiler
CPP Code:
  1.  
  2. DWORD WINAPI HookThread(void)
  3. {
  4. while(!hModule)
  5. {
  6. hModule = GetModuleHandle ("d3d9.dll");
  7. Sleep(200);
  8. }
  9.  
  10. dwGlobal = dwFindPattern((DWORD)hModule, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx");
  11. memcpy(&VTableStart, (void*)(dwGlobal+2), 4);
  12. pEndScene = ( EndScene_t )HookVTable( (DWORD**) dwGlobal, 42, (PBYTE) hkEndScene);
  13. return 0;
  14. }

HookVTable:
Spoiler
CPP Code:
  1.  
  2. PBYTE HookVTable(DWORD** VTablePtr, int VTableIndex, PBYTE HookPtr)
  3. {
  4. DWORD oldProtect;
  5. VirtualProtect((void*)((*VTablePtr)+(VTableIndex*sizeof(DWORD))),sizeof(DWORD),PAGE_EXECUTE_READWRITE,&oldProtect);
  6. PBYTE original=((BYTE*)(*VTablePtr)[VTableIndex]);
  7. (*VTablePtr)[VTableIndex]=(DWORD)HookPtr;
  8. VirtualProtect((void*)((*VTablePtr)+(VTableIndex*sizeof(DWORD))),sizeof(DWORD),oldProtect,&oldProtect);
  9. return original;
  10. }
icon #11

Anmeldungsdatum: Sep 2010

Beiträge: 136

Ist egal wie alt das tut ist. Die Technik ist die selbe.

__________________

[21:43:44] <-> Reita heißt jetzt R|GW2
[21:44:08] <-> Igromanru heißt jetzt Reita
[21:44:20] <-> Cycode2 heißt jetzt Igromanru
[21:44:27] <-> R|GW2 heißt jetzt Cyode2