←  Tutoriale

AMXX.pl: Support AMX Mod X i SourceMod

»

C++
Piszemy czita do GTA SA

Zablokowany

  • +
  • -
Fili:P - zdjęcie Fili:P 05.07.2011

Jeśli bawiłeś się kiedyś w c++, na pewno zastanawiało cię kiedyś, jak napisać prostego czita. Jest to wręcz banalne. Do dzisiejszej lekcji wymagane programy to : Cheat Engine, oraz jakiś kompilator do C++. Nasz cheat będzie zmieniał ilość pieniędzy.

Krok 1: Otwórz Gta San Andreas.
Krok 2: Udaj się do miejsca w którym możesz coś kupić.
Krok 3: Otwórz Cheat Engine.
Krok 4: W cheat engine kliknij na ikonę komputera.
Krok 5: Wybierz gta-sa.exe
Krok 6: W pole "value" wpisz ilość swojej kasy w gta, po czym kliknij first scan.
Krok 7: Wróć do gry i wydaj trochę kasy.
Krok 8: Wpisz po raz kolejny w pole "value" ilość swojej kasy, po czym kliknij next scan
Krok 9: Powtórz kroki 7 i 8, aż po lewej stronie pozostaną 3 adresy(hexy).
Krok 10: Kliknij 2 razy LPM na każdy rekord.
Krok 11: Zmieńmy wartość każdego rekordu, aby sprawdzić, który odpowiada za ilość pieniędzy.
Krok 12: U mnie wychodzi na to że rekord nazywa się : 00B7CE50
Krok 13: Zamknij Gta oraz cheat engine.
Krok 14: Otwórz kompilator c++, w moim przypadku microsoft visual c++ 2010 express
Krok 15: Wybierz jakiś projekt.(konsolowy)
Krok 16: Wklej poniższy kod do projektu.

#include <iostream>
#include <Windows.h>

#define WIN32_LEAN_AND_MEAN
#define AD_CASH 0x00B7CE50 // Tu wpisujemy nazwe makrodefinicji i 0xNazwa_rekordu
using namespace std;

int kasa_set;
int opt;


int main() {
// pobieranie uchwytu okna
HWND hFind = FindWindow(0, L"GTA: San Andreas");

// pobieranie ID procesu
DWORD dwProcId;
GetWindowThreadProcessId(hFind, &dwProcId);

// otwieranie procesu
HANDLE proc = OpenProcess(PROCESS_ALL_ACCESS, false, dwProcId);

cout<<"Wybierz funkcje\n\t1. Ustaw kase";
cin>>opt;
switch(opt)
{
case 1:
cout<<"Kasa = ";
cin>>kasa_set;
WriteProcessMemory(proc,(void *)AD_CASH,&kasa_set,8,NULL);
break;
}

return 0;

}



Kompilujemy, i wo-ula(czy jak się to tam piszę),
aby czit działał najpierw włącz grę a potem niego.

Jeśli chcesz sprawdzić obecną wartość jakiegoś rekordu(często zwanego adresem) użyj tego kodu.

 int kasa;
ReadProcessMemory(proc, // uchwyt okna
(void *)AD_CASH, // adres który odczytamy
&kasa, // wskaznik na bufor w którym zapiszemy wartość adresu
4, // ile bajtów chcemy odczytać
NULL);


Fili:P, nie odpowiada za wszelkie szkody.
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 05.07.2011

a co jeśli adres się zmienia ?
omów DLL injection
Użytkownik DarkGL edytował ten post 05.07.2011 18:07
Odpowiedz

  • +
  • -
Fili:P - zdjęcie Fili:P 05.07.2011

na razie chciałem to tylko pokazać w prosty sposób

Edit:jutro postaram się napisać poradnik o dll injection
Użytkownik Fili:P edytował ten post 05.07.2011 19:50
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 07.07.2011

czekam na poradnik o DLL injection
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 07.07.2011

przeciez pisal ze napisze jutro :D no i pewnie sobie to czyta codziennie i mysli no musze im to jutro napisac :D
Odpowiedz

  • +
  • -
Fili:P - zdjęcie Fili:P 10.07.2011

cały czas po trochu piszę na dysku ^^
Odpowiedz
Zablokowany