HACKING CPP DERSLERI / AI DEN BAGIMSIZ OLMAK ISTEYENLER BURAYA

1 EXTERNAL CHEAT NEDIR VE NASIL CALISIR
external cheat oyunun disindan yani oyunla ayni bilgisayarda calisan baska bir programdan oyunun icindeki degerleri okumak veya degistirmek icin kullanilir
bunun icin windows isletim sisteminin sundugu iki temel fonksiyon vardir readprocessmemory ve writeprocessmemory
bu fonksiyonlar sayesinde oyunun bellek alanina mudahale edebilirsin ama bunu yapabilmek icin once oyunun process ine yani calisan programina erismen gerekir
2 NEDEN PID KULLANIYORUZ
PID process identification number demektir yani her calisan programin windows tarafindan verilen benzersiz bir numarasidir
oyunu acarsan windows oyuna bir pid atar bu pid sayesinde hangi process e mudahale edecegini belirlersin
bir oyunda pid yi bulmak icin toolhelp32snapshot process32first ve process32next gibi fonksiyonlar kullanilir
cheat engine de pid yi gormek icin process listesine bakabilirsin
3 NEDEN HANDLE KULLANIYORUZ
handle windows ta bir kaynaga erisim icin kullanilan bir referans numarasidir
bir dosyayi acinca handle alirsin bir thread i acinca handle alirsin bir process i acinca da handle alirsin
handle olmadan process e yazamazsin veya okuyamazsin cunku windows her kaynagi guvenlikle korur
handle almak icin openprocess fonksiyonunu cagirman gerekir
4 OPENPROCESS NE ISE YARAR
openprocess windows api deki en temel fonksiyonlardan biridir
bu fonksiyon belirttigin pid ye sahip process e erisim saglar ve sana bir handle verir
eger yetkin yoksa veya process korumaliysa openprocess basarisiz olur ve null handle doner
bu yuzden her openprocess cagrisindan sonra handle in gecerli olup olmadigini kontrol etmen gerekir
5 NEDEN PROCESS_VM_READ VE PROCESS_VM_WRITE KULLANIYORUZ
process_vm_read bu yetki ile process in bellegini okuyabilirsin
process_vm_write bu yetki ile process in bellegine yazabilirsin
openprocess cagrisinda bu yetkileri belirtmezsen sadece process i acabilirsin ama okuyamazsin
ayrica bazen process_query_information veya process_vm_operation da eklemen gerekir
bunlarin hepsini bir arada kullanmak icin process_all_access yazabilirsin ama bu cok genis bir yetkidir ve anti cheat yazilimlari bunu fark eder
bu yuzden sadece ihtiyacin olan yetkileri vermen daha iyidir
6 READPROCESSMEMORY VE WRITEPROCESSMEMORY NASIL CALISIR
readprocessmemory fonksiyonu su parametreleri alir
ilk parametre process handle yani openprocess ten aldigimiz hProcess
ikinci parametre okumak istedigimiz adres
ucuncu parametre okunan veriyi kopyalayacagimiz buffer
dorduncu parametre kac byte okuyacagimiz
besinci parametre kac byte okundugunu alacagimiz degiskenin adresi
writeprocessmemory de ayni sekilde calisir ama buffer daki veriyi adrese yazar
bu fonksiyonlar basarili olursa sifir olmayan bir deger dondurur basarisiz olursa sifir dondurur
bu yuzden her okuma veya yazma isleminden sonra kontrol yapmalisin
7 EXTERNAL CHEAT NEDEN BAZEN CALISMAZ
birinci sebep openprocess basarisiz olabilir bunun icin yonetici olarak calistirmak gerekir
ikinci sebep oyun anti cheat kullaniyordur mesela eac veya battleye openprocess i engeller veya sahte handle dondurur
ucuncu sebep adresler statik degildir yani her oyun acilisinda adres degisir
dorduncu sebep okumak istedigin adres korumalidir mesela page_guard veya page_noaccess ile korunuyordur
besinci sebep readprocessmemory calisir ama yanlis offset kullandigin icin anlamli veri gelmez
8 EXTERNAL CHEAT NE ZAMAN ISE YARAR
oyun anti cheat kullanmiyorsa
oyun eski bir oyunsa ve bellek korumasi zayifsa
sadece okuma yapacaksan ve degistirmeyeceksen
hizli bir prototip yapmak istiyorsan
9 INTERNAL CHEAT NEDIR
internal cheat oyunun kendi icinde calisan bir koddur yani oyunun process ine enjekte edilmis bir dll dir
bu yontemde readprocessmemory kullanmazsin cunku zaten oyunun icindesindir
direkt olarak degiskenlere veya fonksiyonlara erisebilirsin
internal cheat daha hizlidir cunku process disindan cagri yapmazsin
10 NEDEN INTERNAL CHEAT DAHA RIZKLIDIR
cunku oyunun icindesindir ve anti cheat seni kolayca tespit edebilir
ozellikle call stack dedigimiz fonksiyon cagri zincirini incelerler
eger bir fonksiyonu cagirdiginda cagri zincirinde senin modulun gorunuyorsa yakalanirsin
bu yuzden internal cheat yazarken return address spoofing yapman gerekir
11 RETURN ADDRESS SPOOFING NEDIR
bir fonksiyon cagrildiginda geri donecegi adres stack te saklanir
anti cheat bu adrese bakar ve eger bu adres oyunun modulune ait degilse seni tespit eder
return address spoofing ile bu adresi oyunun icindeki legit bir fonksiyonun adresi gibi gosterirsin
boylece anti cheat senin modulunu gormez ve seni tespit edemez
bu islemi yapmak icin stack i manuel olarak duzenlemen gerekir
bu cok zordur ve AI nin asla yapamayacagi bir seydir
12 NEDEN KERNEL DRIVER KULLANIYORUZ
external cheat de openprocess calismazsa veya readprocessmemory anti cheat tarafindan engellenirse bir ust seviyeye cikman gerekir
bu ust seviye kernel driver dir
kernel driver windows un cekirdek katmaninda calisir yani isletim sisteminin en yetkili katmanidir
bu katmanda process ler arasi erisim kisitlamalari yoktur
direkt olarak fiziksel bellege veya process bellegine erisebilirsin
kernel driver ile rpm ve wpm yi taklit edebilirsin hatta daha hizli ve gizli sekilde
13 KERNEL DRIVER NE ZAMAN GEREKLIDIR
anti cheat openprocess i engelliyorsa
readprocessmemory basarisiz oluyorsa
oyunun bellegi page_guard ile korunuyorsa
yuksek hizda okuma yapman gerekiyorsa
oyunun icindeki korumali alanlara erismen gerekiyorsa
14 KERNEL DRIVER ILE CHEAT YAPMANIN RIZKLERI NEDIR
driver windows un en yetkili katmaninda calistigi icin bir hata yaparsan mavi ekran alirsin
driver i imzalaman gerekir yoksa windows yuklemez
anti cheat driver lari da kontrol eder eger imzasiz veya bilinmeyen bir driver gorurlerse seni banlarlar
driver gelistirmek cok zordur ve cok zaman alir
15 AI NEDEN HEP ISE YARAMAZ
AI sana sadece syntax verir yani kodun nasil yazilacagini soyler ama mantigini anlamaz
ornegin ai sana openprocess kullan der ama neden bazen basarisiz oldugunu soylemez
ai sana readprocessmemory kullan der ama address i neden bulamadigini soylemez
ai sana kernel driver yaz der ama driver i nasil imzalayacagini soylemez
ai sana return address spoofing yap der ama bunun nasil calistigini bilmez
ai statik bilgiyle calisir ama oyun surekli guncellenir ve adresler degisir
ai hata ayiklama yapamaz ve pratik cozum uretemez
16 EN BUYUK FARK NEDIR
AI sana kod verir ama kod neden calismaz onu soylemez
AI sana fonksiyon verir ama hangi durumda hangi fonksiyonun kullanilacagini bilmez
AI sana ornek verir ama ornekteki hatalari gormez
AI sentaksla ugrasir ama ben sana mantikla ugrasmayi ogretirim
17 SONUC OLARAK
external cheat basittir ama anti cheat varsa calismaz
internal cheat hizlidir ama yakalanma riski yuksektir
return address spoofing ile internal cheati gizleyebilirsin
kernel driver en guclusudur ama en zorudur ve risklidir

EXTERNAL CHEAT ORNEK KOD
bu kod oyunun disindan calisir ve oyunun icindeki bir degeri okur
#include <windows.h>
#include <iostream>
#include <tlhelp32.h>
int main()
{
DWORD pid = 0;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
PROCESSENTRY32 pe = { sizeof(pe) };
if (Process32First(hSnapshot, &pe))
{
do
{
if (strcmp(pe.szExeFile, "oyun.exe") == 0)
{
pid = pe.th32ProcessID;
break;
}
} while (Process32Next(hSnapshot, &pe));
}
CloseHandle(hSnapshot);
if (pid == 0)
{
std::cout << "oyun bulunamadi" << std::endl;
return 1;
}
HANDLE hProcess = OpenProcess(PROCESS_VM_READ | PROCESS_VM_WRITE, FALSE, pid);
if (hProcess == NULL)
{
std::cout << "process acilamadi" << std::endl;
return 1;
}
int mermi = 0;
DWORD adres = 0x12345678;
SIZE_T bytesRead = 0;
if (ReadProcessMemory(hProcess, (LPCVOID)adres, &mermi, sizeof(mermi), &bytesRead))
{
std::cout << "mermi sayisi: " << mermi << std::endl;
}
else
{
std::cout << "okuma basarisiz" << std::endl;
}
CloseHandle(hProcess);
return 0;
}
simdi bu kodda gecen her seyi acikliyorum
DWORD pid
DWORD windows ta 32 bitlik unsigned integer demektir yani 0 dan 4 milyara kadar deger alabilir
pid dedigimiz sey process id dir yani oyunun windows icindeki kimlik numarasi
bu numarayi kullanarak oyunu diger processlerden ayirt ederiz
pid sifirsa oyun bulunmamistir veya hata vardir
HANDLE hSnapshot
HANDLE windows ta bir kaynagin referansidir mesela dosya process thread hepsi bir handle ile temsil edilir
hSnapshot bir anlik sistem goruntusudur yani o anda calisan tum processlerin listesini tutar
CreateToolhelp32Snapshot fonksiyonu bu goruntuyu olusturur
TH32CS_SNAPPROCESS parametresi process listesini almak istedigimizi belirtir
ikinci parametre sifirdir cunku belirli bir process e ozel degil tum processleri istiyoruz
PROCESSENTRY32 pe
bu yapi her bir process hakkinda bilgi tutar mesela process adi pid process in dosya yolu gibi
sizeof(pe) ile yapinin boyutunu belirtiriz ki windows dogru sekilde doldurabilsin
Process32First ve Process32Next
bu iki fonksiyon snapshot icindeki process listesinde gezinmemizi saglar
Process32First ilk processi alir Process32Next ise sonraki processlere gecer
her seferinde pe yapisina o processin bilgileri doldurulur
strcmp ile su anki processin adi ile oyun.exe yi karsilastiririz
eger eslesme varsa pe.th32ProcessID ile pid yi aliriz

devamı
 
beyler babam evden kovdu evenie alcak varmı istanbul içi pasif ler yaazsın sadece
 

Şuanda konuyu görüntüleyen kullanıcılar

Geri
Üst Alt