Uzman Üye
thanks for helping buddy
Arkadaşlar hile yapmak ikiye ayrılır birincisi "internal" yani oyunun içine dahil edilir yazdığımız kod aslında oyunun bir parçası olur diğer taraf da ise "external" türünde hileler de vardır.
Bu konu altında externalı işliycez. Genel olarak bunda farklı bir programdan diğer programa erişim ve hafızasındaki bilgileri değiştirme olarak işliyor. Performans olarak internal den daha kötüdür ama zaten gözle görülür bir fark GDI haricinde göremezsiniz ki doğru mimari ile yapılan her program kusursuz olabilir.
Temelde biz hile kodlarken
Bağlantıları görmek için lütfen Giriş YapveBağlantıları görmek için lütfen Giriş Yap
fonksiyonlarını kullancaz.
C++:BOOL ReadProcessMemory( HANDLE hProcess,//hadnle LPCVOID lpBaseAddress,//ramdan okunacak adresimiz LPVOID lpBuffer,//okunan değerin kaydedileceği değişken SIZE_T nSize,//kaydedilen değişkenin boyutu SIZE_T *lpNumberOfBytesRead//bytle lik bir işimiz yok burda );C++:BOOL WriteProcessMemory( HANDLE hProcess, //Bizim penceremizle alakalı bilgilerin tutulduğu değişken LPVOID lpBaseAddress, //İçine yazacağımız address LPCVOID lpBuffer, //Yeni değerimiz genelde "int yeni = 999;" SIZE_T nSize, //int değer yazacağımız için "int" büyüklüğünde olduğunu belirtmemiz lazım SIZE_T *lpNumberOfBytesWritten //byte yazmıyoruz sadece değer yazıyoruz şuanda. );
C++:int main(){ HANLE pencere = FindWindowA(NULL, "AssaultCube"); //Pencere ismini bulur ve bilgileri pencere isimli HWND değişkeni içinde tutar. DWORD pID; GetWindowThreadProcessId(pencere,&pID);//Videoda anlatıldı buralar HANDLE hnd = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pID); int yeni = 999; ReadProcessMemory(hnd, (LPCVOID)(StaticAdres), &LocalPlayer, sizeof(DWORD), 0); WriteProcessMemory(hnd, (LPVOID)(LocalPlayer + 0xF8), ¥i, sizeof(yeni), 0); std::cout << "Hile başarılı.!!"; }
Video Ders