Basit bir oyun hilesi yapımı - Ders 2 - Basit tanımlar

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
İnsanların senin sesiyle dalga geçmesini umursama
Banlı Üye
Katılım
25 Mar 2018
Mesajlar
260
Çözümler
1
Tepki puanı
42
8 HİZMET YILI
Selam ben Arda tekrardan bugün sizle Ders 2'de yapcaklarımızı kısaca anlatayım önceki çektiğimiz pointerı hemen kullanmıcaz ilk başda amacımız basit tanımlar HWND , HANDLE gibi tanımları öğrenmek hadi başlayalım o zaman​
Bildiğiniz gibi C++ içerisinde bazı terimler var ancak bu terimler "Windows.h" adlı kütüphane içinde yer alıyor
En basitinden;
FindWindowA = Bir pencereyi bulmamızı sağlar
HANDLE = Bir şeyi ele almak gibi düşünebilirsiniz örnek olarak HANDLE gameHandle = OpenProcess(PROCESS_ALL_ACCESS,FALSE,procID);
process id = procID = bu kısaca bir işlem kimliği gibi düşünebilirsiniz yani özetlemek gerekirsek oyun penceresi görmek gibi
GetWindowThreadProcessID = Bunuda bir pencerenin procIDsini alıp az önceki gibi HANDLE atmak gibi düşünebilirsiniz


Evet farkındayım birazcık detayına inmedim ancak bunlar zamanla öğreneceğiniz şeyler şimdi size basit bir Bir modülün ana addresini alma kodunu göstereyim
C++:
DWORD GetModuleBaseAddress(char* moduleName, DWORD ProcessID)
{
    DWORD baseAddress = 0;
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ProcessID);

    if (hSnapshot != INVALID_HANDLE_VALUE)
    {
        MODULEENTRY32 modEntry32 = { 0 };
        modEntry32.dwSize = sizeof(MODULEENTRY32);

        if (Module32First(hSnapshot, &modEntry32))
        {
            do
            {
                if (!strcmp(modEntry32.szModule, moduleName))
                {
                    baseAddress = (DWORD)modEntry32.modBaseAddr;
                    break;
                }
            } while (Module32Next(hSnapshot, &modEntry32));
        }
        CloseHandle(hSnapshot);
    }
    return baseAddress;
}
[CENTER]

Bunuda main fonksiyonumuza çağırmak için şöyle basit bir kodla çağırıyoruz gibi düşünebilirsiniz

ACModule = GetModuleBaseAddress((char*)"ac_client.exe", procID);

Ancak unutmayın ACModule global bir değişken olarak tanıyın aksi takdirde öyle bir parametre olmadığını söylicektir

Evet basit kodlardan bahsettiğimize göre son olarak basit bir kod yazıp dahada iyi kavramaya çalışalım


Öncelikle vs 2019 üzerinde bir console projesi açınız C++ dilinde

Ardından bir proje oluşturup şu şekilde özellikler kısmında şunları açınız

Özellikler vs 2019.png


Evet kütüphanelerimiz bağladık ardından global değişkenlerimizi tanımlıyoruz başlıca şunlar
Screenshot_1.png



Şimdi diceksiniz neden AssaultCubeAmmo olarak bir değişken tanımlayıp atama yaptırma çalıştın arkadaşlar önceki videoda aldığımız pointerı kullanıcaz tekrardan ama sadece manual olarak eklicez ve geçici addresi alıcaz burda sadece pointer bu iş için kullanıyoruz diğer derslerde size pointer ve offsetsleri kullanıp yapmayı göstericem
Evet şimdi Cheat Engine adlı programına dönüp eski dersden aldığım pointer otomatik olarak eklicem tam olarak böyle
pointer-zerinden-geici-addresi-b.gif


Evet kalıcı addresim benim tam olarak bu 029FA320 sizde farklı çıkabilir lütfen copy paste yapmaya çalışmayın
Screenshot_2.png

Son olarak addresimi böyle ekliyorum

Evet kodumuzun son hali böyle mantığı zaten dediklerimi anlattım birazcık incelerseniz anlarsınız
Screenshot_3.png




Evet son olarak WriteProcessMemory olayını yapıcam evet üstte anlatmadım olayını ancak ReadProcessMemory ve WriteProcessMemory mantığını bir dahaki konuda anlatıcam şu anlık sadece görün

Screenshot_5.png



Arkadaşlar (PVOID)&AssaultCubeAmmoyu direk olarak (PVOID)AssaultCubeAmmo yapın bende şimdi fark ettim sorry :D


Bu arada int maxammo diye bir int değeri açtım global ordakini değerini referans olarak alıyorum gibi düşünün evet bakalım kodumuzu deneyelim

Screenshot_6.png


Gördüğünüz gibi kodumuz çalışıyor neyse bu derslik bu kadar diyelim basit bir kod yazdık tanımları anlamanız ve mantığı çözmeniz açısından



Notlar : Büyük ihtimalle anlamayanlar yapamıcaklar olucak o yüzden bir discord açtım paylaşmam yasak o yüzden yardıma ihtiyacı olan arkadaşlar bu discordu eklesin yardım ederiz Discord : sure sure#0644 [/CENTER]
 
omertrans505
Efsane Üye
Katılım
17 Ara 2016
Mesajlar
3,223
Çözümler
63
Tepki puanı
361
Ödüller
13
Sosyal
9 HİZMET YILI
Eline sağlık bu konu ciddi faydalıdır basit bypass kodlama bekliyoruz
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst