Skocz do zawartości

[Tutorial] Call Of Duty 2 - Norecoil


x0Ph

Rekomendowane odpowiedzi

Witam.

Chciałbym wam zaprezentować jak zrobić NoRecoil w grze Call of Duty 2 v1.3.

 

 

 

 

Potrzeba:

-MS Visual C++

-OllyDBG

-MS Detours 1.5

-Podstawy C++

 

 

 

 

A wiec najpierw uruchamiamy OllyDBG i otwieramy CoD2MP_s.exe.

PPM->Search for->All Referenced Strings

Wciskamy Ctrl+F i i wyszukujemy funkcji CG_FireWeapon która odpowiada za strzelanie bronią.

83523697.png

 

 

 

 

Widzimy teraz calą funkcję strzelania.

Gdzieś w tym obszarze powinna być rownież funkcja odpowiadająca za odbijanie broni do góry.

Sprawdzałem metodą prób i blędów która jest to funkcja i jest to ta:

88962785.png

 

 

 

Teraz żeby zedytować tą funkcje należy to zrobić w c++ ponieważ gdy zedytujemy binaria to przy próbie połączenia z serwerem wywali błąd.

A więc:

- W Visual C++ tworzymy nowy projekt DLL

- W dllmain.cpp przed funkcja DLLMain wpisujemy :

#include <windows.h>
#include <detours.h>
void myNOrecoil()
{
}

Funkcja nic nie robi ponieważ nie chcemy zeby bron sie odbijala do gory ;)

Teraz musimy zhookować tą funkcję do Call of Duty.

	case DLL_PROCESS_ATTACH:
	{
       DetourFunction((PBYTE)0x04F5860,(PBYTE)myNOrecoil);
}

 

Pierwszy parametr funkcji to offset do procedury którą chcemy podmienić, a drugi parametr to jaką funkcją ma to zastąpić.

Kompilujemy i gotowe!

 

 

Teraz jeśli chcemy zinjectować plik DLL, sciągamy sinJect, zaznaczamy CoDMP_s i DLL do zinjectowania.

Uruchom grę i ciesz się NoRecoilem :D

Pozdrawiam

 

 

Jesli cos jest nie jasne -> PM

Odnośnik do komentarza
Udostępnij na innych stronach

fajnie, tylko czy nie byłoby prościej na 0x4D7120 podmienić pierwszy bajt na 0xEB korzystając z powszechnie znanej funkcji WriteProcessMemory i przeskoczyć ten nieładny call :P

 

Hmm, jeszcze żeby detoursy działały trzeba dodać windows.h nie wszyscy o tym wiedzą, no i ten wskaźnik pNOrecoil jest niepotrzebny bo go nie używasz,

 

dobra już nie marudzę, na pewno ktoś się ucieszy, rep+ B)

 

PS. Ten sposób działa również w CoD 4, CoD 5

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 miesiąc temu...

        case DLL_PROCESS_ATTACH:
               {
       DetourFunction((PBYTE)0x04F5860,(PBYTE)myNOrecoil);
}

 

Nie rozumiem skąd to, ani dokąd to...?

 

byłoby prościej na 0x4D7120 podmienić pierwszy bajt na 0xEB korzystając z powszechnie znanej funkcji WriteProcessMemory i przeskoczyć ten nieładny call

 

Czy wtedy też potrzeba zewnętrznej Dll'ki, czy można już podmienić ręcznie w Olly?

 

Jaka dla programu / hackshielda / punkbustera czy czego tam jest różnica, czy podmiana ( 1 sposób ) binarna, czy przez dll injection?

 

Niewykrywalne?

 

2x +

Ta sygnatura jest pusta.

Odnośnik do komentarza
Udostępnij na innych stronach

bo może sprawdza binarke przy połączeniu ? A jak wstrzykniemy funkcje po połączeniu to nic się nie stanie ?

 

 

DetourFunction((PBYTE)0x04F5860,(PBYTE)myNOrecoil);

 

Zamień funkcje pod adresem 0x04F5860 na funkcje myNOrecoil która jest w dll'ce

liczylem na barce lecz ona niemogla wygrac.

Przez kibicow ktorzy przy rzutach roznych wolnych swiecili w messiego laserami

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Dokładnie to co powiedział [email protected]

 

I ten, i ten sposób jest wykrywalny. :)

Wszystko, co zdarza się raz, może już się nie przydarzyć nigdy więcej, ale to, co zdarza się dwa razy, zdarzy się na pewno i trzeci.

Paulo Coelho

Walkirie

 

ZBIERAM - !!!

 

Więc jeśli już coś masz walnąć to walnij MiNuSa ;]

 

proszę cię! Zbieram - ! Więc jeśli się nie podoba walnij +, ale proszę o -------------!!!

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 miesiąc temu...
  • 1 miesiąc temu...
  • 1 miesiąc temu...

Zarchiwizowany

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

  • Ostatnio przeglądający forum [Tutorial] Call Of Duty 2   0 użytkowników
    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...