Uzman Üye
Merhaba arkadaşlar bugün size C++ Game Hacking öğreteceğim.
ilk olarak pointer - value ve varsa offset bulunması gerekiyor.
benim hedefledigim oyun wolftü
oyunun degiskenlerini aldıgı yerler = cshxxxx.tmp objxxxx.tmp crexxxx.tmp cfxxxxx.tmp ve wolftü.bin(yani kendi .exe sinden)
pointerlarımızı bulduk diyelim
->Visual Studio açıyoruz C++ Proje oluşturuyoruz > Ayarlardan > Common Langague Runtime Support bölümünden seçeneklerden /clr seçiyoruz.
-> Linker > System > SubSystem ' i Windows yapıyoruz
-> Linker > Advanced > EntryPoint ' e "Main" yazıyoruz.
Sonra Forma Add diyip > UI bolumune gelip Formu seçip Add diyoruz
Form eklendikden sonra bir .h bide .cpp gelecektir.
forma gelip 2 kez tıklıyoruz formun kodlarının üstüne şu kodu yapıştırıyoruz
[font=tahoma, verdana, geneva, lucida,].cpp yi açıp[/FONT]
[font=tahoma, verdana, geneva, lucida,][font=tahoma, verdana, geneva, lucida,]ekliyoruz.[/FONT]
[/FONT]
[font=tahoma, verdana, geneva, lucida,]bunu yazdıgımız için .exe olucak ve tıkladıgımızda form gelicek yoksa gelmez..[/FONT]
[font=tahoma, verdana, geneva, lucida,][font=tahoma, verdana, geneva, lucida,]#include bölümüne şunları ekleyelim[/FONT][/FONT]
[font=tahoma, verdana, geneva, lucida,][font=tahoma, verdana, geneva, lucida,][font=tahoma, verdana, geneva, lucida,]using namespace bölümüne ;[/FONT][/FONT][/FONT]
[font=tahoma, verdana, geneva, lucida,][font=tahoma, verdana, geneva, lucida,][font=tahoma, verdana, geneva, lucida,][font=tahoma, verdana, geneva, lucida,]Forma 2 kez tıklayıp Form_Load' a şunu yazıyoruz ve ya Timer'ada yazılabilir. Label ekleyip name sini CSH ve BIN yapın bu vereceğmi kod yukarda bahsettiğim cshxxx.tmp ve wolftü.bin 'i çeken koddur.[/FONT][/FONT][/FONT][/FONT]
[font=tahoma, verdana, geneva, lucida,][font=tahoma, verdana, geneva, lucida,][font=tahoma, verdana, geneva, lucida,][font=tahoma, verdana, geneva, lucida,][font=tahoma, verdana, geneva, lucida,]CheckBox ekleyelim ve ismini Name ESP yapalım. sonra 2 kez üstüne tıklayıp kod bölümüne :d[/FONT][/FONT][/FONT][/FONT][/FONT]
ilk olarak pointer - value ve varsa offset bulunması gerekiyor.
benim hedefledigim oyun wolftü
oyunun degiskenlerini aldıgı yerler = cshxxxx.tmp objxxxx.tmp crexxxx.tmp cfxxxxx.tmp ve wolftü.bin(yani kendi .exe sinden)
pointerlarımızı bulduk diyelim
->Visual Studio açıyoruz C++ Proje oluşturuyoruz > Ayarlardan > Common Langague Runtime Support bölümünden seçeneklerden /clr seçiyoruz.
-> Linker > System > SubSystem ' i Windows yapıyoruz
-> Linker > Advanced > EntryPoint ' e "Main" yazıyoruz.
Sonra Forma Add diyip > UI bolumune gelip Formu seçip Add diyoruz
Form eklendikden sonra bir .h bide .cpp gelecektir.
forma gelip 2 kez tıklıyoruz formun kodlarının üstüne şu kodu yapıştırıyoruz
Kod:
DWORD ProcessExists(char *ProcessName)//
{
HANDLE hProcessSnap;
PROCESSENTRY32 pe32;
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
pe32.dwSize = sizeof(PROCESSENTRY32);
do
{
if(strcmp(ProcessName,pe32.szExeFile)==0)
{
DWORD ProcessId = pe32.th32ProcessID;
CloseHandle(hProcessSnap);
return ProcessId;
}
} while(Process32Next(hProcessSnap, &pe32));
CloseHandle(hProcessSnap);
return 0;
}
Kod:
#include "eklenen .h dosyasının ismi .h"
using namespace PROJE İSMİNİZ;
[STAThreadAttribute]
int Main() {
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Application::Run(gcnew FORMUN İSMİ());
return 0;
}
[/FONT]
[font=tahoma, verdana, geneva, lucida,]bunu yazdıgımız için .exe olucak ve tıkladıgımızda form gelicek yoksa gelmez..[/FONT]
[font=tahoma, verdana, geneva, lucida,][font=tahoma, verdana, geneva, lucida,]#include bölümüne şunları ekleyelim[/FONT][/FONT]
Kod:
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <string>
#include <fstream>
#include <float.h>
#include <tlhelp32.h>
#include <tchar.h>
#include <sstream>
#include <Psapi.h>
Kod:
Kod:
using namespace System::Diagnostics;
Kod:
Process ^p = Process::GetProcessesByName("wolftü.bin")[0];
for each(System::Diagnostics::ProcessModule ^moz in p->Modules)
{
if(moz->FileName->IndexOf("csh")!=-1)
{
CSH->Text = moz->BaseAddress.ToString();
}
if(moz->FileName->IndexOf("bin")!=-1)
{
BIN->Text = moz->BaseAddress.ToString();
}
}
Kod:
DWORD VERI = Convert::ToInt32(CSH->Text); //csh mizi yani pointerimizi bi sonuca ulaştıran bölüm. eğer bin le çalışıyorsa pointer CSH yi BIN yapın yoksa hata verir
DWORD OFFSET = 0x01; // ofset varsa kullanın
DWORD ADRES = VERI + 0x353902; //+ OFFSET; ofset varsa kullanın
int DEGER = 2251829620; // value bölümümüz eğer değeri textboxtan alıcaksa int yerine DWORD yazın.
HANDLE MemHandle = OpenProcess(PROCESS_ALL_ACCESS,0,ProcessExists("wolftü.bin")); // oyunu degiskene tanıtıyoruz
WriteProcessMemory(MemHandle,(LPVO ID(ADRES)),&DEGER,4,NULL); // en sonunda valueyi adrese işleyen bolum VO ID İ birleştirin forum sansürlüy niye bilmiyorum