Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Tutorial] Enemy Territory Wallhack


t3ix

Rekomendowane odpowiedzi

Opublikowano

ET 2.55 / 2.60 / 2.60b Wallhack

 

Obrazki z ET 2.60b

 

1. Do założenia hooka potrzebny nam jest offset funkcji RE_AddRefEntityToScene (funkcja z Quake 3 SDK).

2. Odapalamy Ollydbg, File -> open -> ET.exe.

3. Prawy przycisk myszki -> search for -> all referenced strings.

4. Wyszukujemy string "RE_AddRefEntityToScene: bad reType %i" i przechodzimy do niego naciskając enter.

 

wh1.png

 

5. Funkcja zaczyna się w 0x48D110 i o ten offset nam chodziło :)

6. No to teraz bardzo prosty kod, wszystko opisane ;)

 

 

#include <windows.h>
#include <detours.h>
#include "types.h"

#define     MAX_CLIENTS		64
#define	RF_DEPTHHACK	        0x000008

void (__cdecl *org_R_AddRefEntityToScene)(refEntity_t *re); // tworzymy wskaźnik na oryginalną funkcję
void hook_R_AddRefEntityToScene(refEntity_t *re)
{
	if( re->frame && re->entityNum >= 0 && re->entityNum < MAX_CLIENTS ) // filtr tylko na graczy
    re->renderfx |= RF_DEPTHHACK; // wallhack

org_R_AddRefEntityToScene( re ); // powrót do oryginalnej funkcji
}

BOOL APIENTRY DllMain( HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved )
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
DetourFunction((PBYTE)0x48D110,(PBYTE)hook_R_AddRefEntityToScene); // przekierowujemy oryginalną funkcję na naszą z wh
__asm mov [ org_R_AddRefEntityToScene ], eax;  // ustawiamy wskaźnik
break;
       }

return true;
}

 

Credits:

~ Quake 3 SDK

~ OllyDbg

 

W załączniku types.h, ETwh.cpp z listą offsetów dla leniwych :P

 

Biblioteka MS Detours 1.5 Download

 

Tutorial własnoręcznie pisany, komentarze jak zawsze mile widziane xD

592a55c2896d0_post-163544-0330224001281807556_thumb.jpg

ETwh.rar

Opublikowano

Poradnik dość prosty i przejrzysty ale mam kilka uwag. :P

Przydałoby się zarzucić linkiem do źródeł detoursów, bo nie są one w standardowych includach oraz M$ już nie supportuje wersji 1.5.

 

__asm mov [ org_R_AddRefEntityToScene ], eax;

Nie prościej byłoby zrobić tak?

org_R_AddRefEntityToScene = (void (__cdecl *)(refEntity_t *re) )DetourFunction((PBYTE)0x48D110,(PBYTE)hook_R_AddRefEntityToScene); // nie sprawdzalem rzutowania

To używanie inline asma może być nieco niezrozumiale dla początkujących...

Opublikowano

rzutowanie dobre ewentualnie 're' można pominąć :) Jak kto lubi, początkowo też tak robiłem jak pokazałeś. Zaraz dam link bo bez detoursów nie ma zabawy : (

Opublikowano

Imo nie używałbym tutaj detoursów, bo z tego, co wiem, to w tej grze jest PB, więc chyba takie hooki wykrywa(?).

Hotpatche, te od M$ dobrze się sprawują i pewnie przez to, że nie są tak popularne w czitach, są też niewykrywalne.

Technika polega na nadpisaniu 5 bajtów przed funkcja(widzę, ze tu jest dość miejsca) skokiem do swojej funkcji, a pierwsze bajty funkcji nadpisuje się skokiem do jmp'a powyżej (2 bajty zalatwiają sprawę (short jmp) ) :)

Chociaż widzę, że Ty napisałeś bypassa, więc takimi rzeczami raczej się nie przejmujesz. xD

Opublikowano

PB wykryje w grze podmianę nawet 1 bajtu i po paru minutach dostaniesz kicka Corrupted File/Memory. O tej technice 'Hotpatchy' nie słyszałem ;p . Jest wiele sposobów na wh.. :) W sumie to jestem ciekawy czy jak wpisze w te puste bajty skok na moją funkcje to pb to znajdzie.

Opublikowano

W sumie to zapomniałem, że edytujemy główny moduł gry - ja tą technikę stosuję w grze z DirectX9, gdzie takie rzeczy robi się w module d3d9.dll, a anty cheat, nie skanuje tej dll'ki tak dokładnie jak exe'ca, tylko pierwsze bajty funkcji d3d na różne skoki, ale akurat techniki hotpatch nie wykrywa. :)

Opublikowano

Możesz to wrzucić do reverse engine..... ?

liczylem na barce lecz ona niemogla wygrac.

Przez kibicow ktorzy przy rzutach roznych wolnych swiecili w messiego laserami

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...