Jump to content


Photo

Cum sa scrii propiile linii de cod pentru un cheat de GTA San Andreas


  • This topic is locked This topic is locked
9 replies to this topic

#1
kalfanyy

kalfanyy

    -

  • Posts
    2,137
  • Topics
    44
  • Reputation
    97
  • Online
    10 days

Salut, pentru inceput trebuie sa va explic cateva chestii.

Cand faci un cheat pentru un joc, de la 0, editezi biti din hard care sunt trimisi de catre joc.

 

Ca sa ne scriem primiile linii de cod, avem nevoie de un IDE, cel mai folosit fiind Visual Studio.

Dupa ce instalam Visual Studio, trebuie sa facem un proiect in C++.

 

Ok, dupa ce ati facut proiectul, o sa dam #include la urmatoarele "chestii":
 

"iostream"

"windows.h" // pentru a creea o fereastra.

 

Dupa aceea, ca sa nu folosim orice functie oferita de STD ca si std::make_unique, putem folosii namespace-ul "std" (scrieti intr-o linie "using namespace std;"

 

Acum, creem o functie cu numele main, ar trebuii sa arate asa:

"int main() {

}"

 

() = Arata functiile atribuite acestui int, noi nu avem nevoie de nici una cat timp nu folosim o functie de genul vectoriilor, sau nu vrem sa definim ceva de genul iClientEntity in pLocal.

Ok, ca sa detectam jocul, avem nevoie sa scriem aceste linii de cod:

HWND hwnd = FindWindowA(0,("GTA : San Andreas")); //  Detectam numele windodwsului ca sa putem folosii functia GetWindowThreadProcessId (nu sunt sigur ca numele de la GTA este acesta, dar, puteti verifica voi punand GTA-ul in windowed mode.

Dupa aceea, inainte de functia noastra, vom scrie "DWORD processID"

ca sa putem folosii functia GetWindowThreatProcessId.

GetWindowThreatProcessId(hwnd, &processID); // aceasta este functia care o vom folosii ca sa gasim process id-ul sa actionam pe el

 

Dupa aceea, sub tot ce ati facut pana acum, puneti aceasta linie de cod:
    HANDLE pHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID);

Q:Ce face aceasta functie?

A:Ne da access complet sa editam orice memory address in joc, spre exemplu 0xB7CE50 (memory adressul baniilor.

 

Dupa aceea, incepe editarea bitiilor in joc, inainte de toate vom avea nevoie de variabila "NewMoney//ce nume vreti" si Money, care este un DWORD.

 

 
DWORD Money = 0xB7CE50;
 
int newMoney == 9999999999;
 
 
Ce vor face aceste functii?
Money = Verifica cati bani ai acum
int newMoney = actioneaza ca un float pentru noua suma de bani care o sa o ai, daca vrei sa ai 1337$ in loc de 9999999999$, schimba "9999999999" in suma dorita.
Insa, unde le vom folosi?
In linia aceasta:
    WriteProcessMemory(pHandle, (LPVOID)Money, &newMoney, sizeof(Money), 0);
Aici vom scrie biti, pHandle ne ofera acces complet.
Money si newMoney sunt utilizate, transformand functia money in newMoney, verificand cat este Money acum prin sizeof.
Dupa aceea, ca sa verificam ca totul este ok, scriem aceasta linie de cod:
    system("pause");
Ce va face aceasta?
Ne va arata in debug console "Press any key to continue...", putem apasa orice key si functia noastra va fii aplicata.
 
Cam asa trebuie sa arate tot dupa ce ati terminat.
 
"#include <iostream>
#include <windows.h>
 
using namespace std;
 
DWORD processID;
 
DWORD Money = 0xB7CE50;
 
int newMoney == 9999999999;
 
int main()
{
    HWND hwnd = FindWindowA(0,("GTA : San Andreas"));
    GetWindowThreatProcessId(hwnd, &processID);
 
    HANDLE pHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID);
    
    WriteProcessMemory(pHandle, (LPVOID)Money, &newMoney, sizeof(Money), 0);
    
    system("pause");
}"
 
Insa, putem folosii si alte memory adressuri // stringuri. Ele sunt facute publice, sau, daca chiar nu aveti ce face in timpul liber, le puteti cauta cu cheat engine
Toate memory adressurile: https://www.gtamoddi..._Addresses_(SA)
Sper ca am fost de ajutor, si acesta este un material de invatat, nu doar de dat copy+paste si sa incepeti sa va credeti coderi.
Va rog sa-mi corectati toate greseliile daca vedeti una, si eu o voi edita ca sa nu incurc alti incepatori.

Edited by kalfanyyy, 05 January 2018 - 19:16.

  • 1

#2
bosniak # MihneaTSA

bosniak # MihneaTSA

    Trag cu cardu' miliardu'

  • Posts
    369
  • Topics
    56
  • Reputation
    202
  • Online
    13 days

ugbase ne-a invatat deja


  • 0

#3
kalfanyy

kalfanyy

    -

  • Posts
    2,137
  • Topics
    44
  • Reputation
    97
  • Online
    10 days

ugbase ne-a invatat deja

in acest topic, poti adapta code-ul pentru orice joc chiar si fara cunostinte in c++ / c#


  • 0

#4
deleted_Einstein калашников

deleted_Einstein калашников
VInzi cheats de SAMP mai nou ? Fain tutorial, o sa vad ce iese.

#5
kalfanyy

kalfanyy

    -

  • Posts
    2,137
  • Topics
    44
  • Reputation
    97
  • Online
    10 days

VInzi cheats de SAMP mai nou ? Fain tutorial, o sa vad ce iese.

nu stau sa iau functia de la localplayer si sa adaptez mouseevent din ahk in c++, nu ma cheama pleata scz


  • 0

#6
neacristy

neacristy

    Backend Developer

  • Posts
    2,736
  • Topics
    615
  • Reputation
    1712
  • Online
    118 days
Daca pui alt nume inafara de main o sa creezi o funcție.
Functia trebuie folosita ca sa returnezi o valoare in main deci nu prea poti pune orice nume vrei
  • 0

#7
kalfanyy

kalfanyy

    -

  • Posts
    2,137
  • Topics
    44
  • Reputation
    97
  • Online
    10 days

Daca pui alt nume inafara de main o sa creezi o funcție.
Functia trebuie folosita ca sa returnezi o valoare in main deci nu prea poti pune orice nume vrei

oh, ai dreptate, acum dau edit, multumesc

dar cred ca ai putea sa faci functia dupa sa-i dai call intr-un nou int main


Edited by kalfanyyy, 05 January 2018 - 19:17.

  • 0

#8
neacristy

neacristy

    Backend Developer

  • Posts
    2,736
  • Topics
    615
  • Reputation
    1712
  • Online
    118 days
Asta am si zis, daca pui nume trebuie sa i dai call in main
  • 0

#9
bosniak # MihneaTSA

bosniak # MihneaTSA

    Trag cu cardu' miliardu'

  • Posts
    369
  • Topics
    56
  • Reputation
    202
  • Online
    13 days

Shad0w i-a spart pe live aseara pc-ul lui GooD si Xpeedo si le-a sters tot din pc si i-a amenintat cu politia, ca veni vorba de pletosu.


Edited by bosniak.TankMode, 06 January 2018 - 17:23.

  • 0

#10
DWIGHT

DWIGHT

    Oldish'

  • Posts
    15,000
  • Topics
    1140
  • Reputation
    20000
  • Online
    194 days

No thanks, cheats? Chestii de genul se posteaza aici? Damn.

 

t/c.


  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users