Yaklaşık 6 yıllık programlama ve 2 yıllıkda hile programlama tecrübelerimi izlediğim yolu sana aktarıcam. Bu soru daha önce forumda onlarca kez soruldu.
Burada asıl önemli olan şey sağlam bir iradeye sahip misin ? Sonuna kadar götürebilecek misin ? Yoksa yarı yolda pes mi edeceksin ? Hile programlamayı öğrenmek öyle günde 2-3 saat video izleyeyim hiç kodlama yapmayayım diyerek öğrenilmez bir kere bunu bilmemiz lazım. Eğer ben bunların hepsini sıkılmadan kaldırabilirim abi diyorsan o zaman konunun içeriğine dalalım.
Programlama geçmişin ne kadar var onu öncelikle bilmiyorum ama programlama bilmek özelliklede C++ bilmek anahtar gibi birşey. Bazılarının C# önerdiğini görüyorum yapmayın arkadaşlar. C#, C++ gibi güçlü ve daha derine inebilen bir dil değil. Yani ilk önce C++ temel seviyede öğrenmen gerek tavsiyem Udemyden kurs alıp bitirmen ve kursuda youtube'dan takıldığın konunun videolarıyla desteklemen.Bu dili pekiştirmen zaten 1-1.5 ayını alıcak(Sadece temeli) Çünkü C++ derin bir dil ve bu dil ile yapabileceğin çok şey var ve aynı zamanda güncellenen bir dil. Sürekli C++ kodlarken yeni şeyler öğrendiğini farkediceksin zaten.
C++ TEMELİNİ KAPTIM PEKİ YA SONRA?
Peki şimdi işin asıl mutfak tarafına gelelim. Hile nasıl kodlanır hangi yöntemler kullanılır ?
- Oyunun hafızasındaki değerleri değiştirerek yararımıza kullanma
( Bu değerler RAM'de rastgele addresslere yerleştirilir ve bu değerleri değiştirmek için ya CheatEngine gibi hafızaya müdahale eden program kullanırsın yada kendin kodlama dilini kullanarak C++ ile Windowsun bize sunduğu hafıza değiştirme fonksiyonlarından bazılarını kullanırsın. ReadProcessMemory WriteProcessMemory gibi) bu sayede hafızadaki Can Mana gibi değerleri değiştirebiliriz.
- Oyunun kod akışını değiştirerek yararımıza kullanma
Oyunlarda bazı işlemleri gerçekleştirmek için kodlama dillerindende aşina olucağımız fonksiyon denilen kod bloklarını çağırır. Örneğin DiğerOyuncuyaHasarVer() Oyun bu tür işlemleri gerçekleştirmek için bu gibi fonksiyonları çağrır.Peki biz naparız ? DiğerOyuncuyaHasarVer() fonksiyonunun yapıcağı işlemleri değiştiririz.Örneğin bu fonksiyonda diğer oyuncuya ne kadar hasar vuracağımız hesaplanıyor olabilir.Biz bu fonksiyonun kodunu kendi kodumuz ile değiştirebiliriz örneğin diğer oyuncuya 50 hasar vermek yerine 9999 hasar verebiliriz. İşte bu tür fonksiyon işleyişini değiştirdiğimiz olaylara fonksiyon hooklama deriz.Hooklama işlemi aslında programın işleyişini değiştirmek için araya soktuğumuz kendi kodu çalıştırmamız olayıda denilebilir. Hooklar fonksiyonun işleyişine değiştirmenin aksine fonksiyona gelen bilgileri okumamızada yardımcı olabilir. Hooklama işlemini yapabilmemiz için Temel-Orta Seviye Programlama ve Çok basit seviyede Assembly bilgisi gereklidir.
Tabi siz bunları yaparken AntiCheatin eli armut toplamıyor
Günümüzde eski oyunlarda sağlam Anticheat olmayabilir fakat artık yeni çıkan oyunların çoğunda güçlü Anticheat var diyebiliriz ve yukarda saydığım işlemleri yapmanız epey zor olabilir. Yukardakiler zaten basit seviye bu yolda devam etmek istiyorsan daha ileri seviye ve daha karmaşık işlerin içine girmen gerek. Debugger kullanıp runtimeda oyunun hafızasını gözetliyebilirsin yada fonksiyonlara breakpoint koyup program akışına pause atıp arkaplanda neler gerçekleştirdiğini görebilirsin. Tabi bunun için Assemblyde bilmen gerek artık ve tabikide Anticheatler debugger programlarını sevmez
Debuggerlin olayı programı çalışırken analiz etmemiz içindir aslında. Bunun dahada ilerisinde gidip Tersine mühendislik öğrenip programın kodlarını statik olarak IDA gibi programlarla inceleyerek oyunun genel işleyişi hakkında daha iyi bilgiye sahip olabiliriz. Tabiki bu yeni başlayan birisi için çok çok ileri seviye. Bunları yazarken yoruldum
Sana tavsiyem benim yaptığım gibi youtubedan Guidedhacking hile serisini izleyip bitirmen. Malesef az çok ingilizce bilmen gerek ve Türkçe kaynak yok denicek kadar az bu konuda. Bu seriyi bitirdikden sonra zaten hile kodlama konusunda az çok bir bilgiye sahip olucaksın. Benim Guidedhacking tavsiye etmemin sebebi bu hile kodlama işini bu adamlardan başka daha güzel ve yeni başlayanlara güzel olucak şekilde anlatan başka bir yer yok benim gözlemlediğim kadarıyla. Benim bugüne gelmemin sebepleridir kendileri. Zamanında 10 dolara 1 senelik key almıştım siteleri için şuan çok pahalı keyi önermem. Yukarda yazdıklarımın çoğu giriş seviyesi içindir dahada ileri gidip günümüz Anticheatlerini aşman için artık Windowsun nasıl işlediğini ve Windowsa nasıl müdahale ediceğini veya Windowsda kendi kodlarını nasıl çalıştırabileceğini (Kendin driverini yazıp kendi kodunu Anticheatlerde gözükmeyek şekilde kodlamak) gibi daha ileri seviye yöntemleri öğrenmen gerek.