The Witcher 3 için hazırladığım trainerin güncelleme, uyumluluk ve sorun bildirimlerini bundan sonra bu konu altında toplayacağım.
Trainer şu anda 24 farklı özellik içeriyor ve ORGA Hub üzerinden kullanılabiliyor. ⚔️
The Witcher 3 tarafında tek bir trainer yöntemi kullanmak yerine oyunun farklı sistemlerine göre birkaç yöntemi bir araya getiriyorum.
Özellikle:
Runtime Capture
Pointer Freeze
Memory Patch
Code Cave
Teleport
Konum kaydetme / geri yükleme
gibi sistemler trainer içerisinde birlikte kullanılıyor.
Yani The Witcher 3 traineri klasik anlamda sadece birkaç pointer bulan basit bir yapı değil.
🎯 Runtime Capture Neden Kullanıyorum?
Bazı oyunlarda istediğimiz değere ulaşmak için uzun pointer zincirleri oluşturmak mümkün.
Ama her zaman en iyi çözüm bu değil.
The Witcher 3 tarafında bazı gerçek oyun nesnelerine, oyunun ilgili fonksiyonu çalışırken ulaşmak daha sağlıklı olabiliyor.
Örneğin oyun bir oyuncu değerini güncellerken CPU register’larından biri o anda gerçek oyuncu nesnesinin adresini taşıyor olabilir.
Ben de ilgili kod noktasını kullanarak bu adresi runtime sırasında yakalayabiliyorum.
Genel mantık:
Oyun ilgili fonksiyonu çalıştırır → gerçek nesne yakalanır → ORGA Hub adresi kullanır
şeklinde.
Bu sistemi ORGA Hub tarafında captureWrite benzeri işlemlerle yönetiyorum.
🧠 Neden Direkt Pointer Bulmuyoruz?
Pointer kullanmak kötü bir yöntem değil.
The Witcher 3 trainerinde zaten ihtiyaç olan yerlerde pointer yöntemlerinden de faydalanıyorum.
Ama bazı nesneler:
Save yüklenince
Bölge değişince
Oyuncu state’i değişince
Oyun yeniden nesne oluşturunca
farklı adreslere taşınabiliyor.
Eğer oyun bize gerçek nesneyi zaten çalışan fonksiyon içerisinde gösteriyorsa bazen onu doğrudan yakalamak daha mantıklı oluyor.
Bu nedenle trainerde pointer ve capture yöntemlerini ihtiyaca göre birlikte kullanıyorum.
📋 Runtime Verisini Kopyalama
The Witcher 3 entegrasyonunda kullandığım diğer sistemlerden biri runtime sırasında gerekli veriyi kopyalamak.
Bazı durumlarda tek bir pointer değil, daha geniş bir veri yapısının veya bir nesne içerisindeki gerekli bölümün takip edilmesi gerekiyor.
Bu tür durumlarda captureCopy tarzı işlemler devreye girebiliyor.
Amaç yine aynı:
Bellekte rastgele milyonlarca adres arasında değer aramak yerine oyunun gerçekten kullandığı veriyi doğru anda yakalamak.
🕳️ Code Cave
Bazı özelliklerde sadece değer bulmak yeterli olmuyor.
Oyunun çalışma davranışını değiştirmek gerekebiliyor.
Burada Code Cave kullanıyorum.
Genel yapı:
Oyunun kodu → Hook → ORGA işlemi → Oyunun normal koduna dönüş
şeklinde.
Böylece trainer özelliğinin aktif olup olmadığına göre oyunun davranışını runtime sırasında değiştirebiliyorum.
Code Cave özellikle:
Koşullu işlemler
Runtime pointer yakalama
Değer değiştirme
Belirli oyun davranışlarını kontrol etme
gibi durumlarda kullanışlı.
🧊 Pointer Freeze
Bazı özelliklerde ise klasik pointer yöntemi daha mantıklı.
Doğru nesne ve değer güvenilir şekilde bulunabiliyorsa ORGA Hub ilgili değeri belirlenen seviyede tutabiliyor.
Oyun değiştirdikçe Hub tekrar istediğimiz değeri yazıyor.
Bu tarz özelliklerde daha karmaşık Code Cave veya capture sistemi kurmaya gerek yok.
Trainer geliştirirken benim için önemli olan:
En karmaşık yöntemi kullanmak değil, en uygun yöntemi kullanmak.
🖱️ Tek Seferlik Pointer İşlemleri
Her özellik sürekli freeze olmak zorunda değil.
Bazen bir değerin yalnızca kullanıcı butona bastığında değiştirilmesi yeterli.
Bu tür seçeneklerde sürekli belleğe yazmak yerine tek seferlik pointer işlemleri kullanabiliyorum.
Örneğin kullanıcı bir değeri istediği seviyeye getirir ve ardından oyun normal şekilde devam eder.
Bu tarz işlemler sürekli çalışan trainer özelliklerine göre daha hafif olabilir.
🔧 Memory Patch
The Witcher 3 trainerinde bazı özellikler doğrudan oyun kodu üzerinde geçici patch kullanabiliyor.
Özellik açıldığında ilgili instruction değiştiriliyor.
Kapatıldığında orijinal kod geri yükleniyor.
Burada özellikle oyun sürümü önemli.
Yeni güncellemede geliştirici ilgili fonksiyonu değiştirirse eski patch artık doğru kodu temsil etmeyebilir.
Bu nedenle patch tabanlı özellikleri oyun güncellemelerinden sonra ayrıca kontrol ediyorum.
📍 Teleport Sistemi
The Witcher 3 gibi büyük açık dünya oyunlarında teleport basit görünse de teknik olarak dikkat gerektiren sistemlerden biri.
Oyuncunun üç koordinatını bulup değiştirmek teoride yeterli gibi görünüyor:
X / Y / Z
Ama gerçekte işin içerisinde:
Player state
Dünya
Yükseklik
Fizik
Streaming
Bölge sistemi
gibi başka şeyler de var.
Bu nedenle trainer içerisinde teleport ve pozisyon işlemlerini ayrı bir sistem olarak ele alıyorum.
📌 Konumu Kaydet / Geri Dön
The Witcher 3 trainerinde pozisyonu runtime sırasında kaydedip daha sonra tekrar aynı noktaya dönebilmek için konum saklama sistemi de bulunuyor.
Bu tarz özellikler özellikle:
Haritada belirli noktaya dönmek
Bir bölgeyi tekrar ziyaret etmek
Tehlikeli bir yere girmeden önce konum kaydetmek
gibi kullanım senaryolarında işe yarayabiliyor.
Ama teleport kullanırken yine dikkatli olmak gerekiyor.
Oyunun normalde yürüyerek veya fast travel ile yükleyeceği çok uzak bir alana doğrudan gitmek bazı durumlarda dünya streaming sistemini zorlayabilir.
🧩 Alan Bazlı Runtime İşlemleri
The Witcher 3 tarafında kullandığım başka bir yöntem de yakalanan nesnenin içerisindeki belirli field değerleri üzerinde işlem yapmak.
Bazı özelliklerde gerçek ana nesneyi bir kere yakaladıktan sonra onun içerisindeki belirli alanlara ulaşmak mümkün oluyor.
Bu sayede aynı temel runtime nesnesinden birden fazla trainer özelliği türetebiliyorum.
Bunun avantajı şu:
Bir nesneye nasıl ulaşacağımızı bir kere doğru çözdüğümüzde aynı sistem içerisindeki diğer değerlere de daha düzenli ulaşabiliyoruz.
🔄 The Witcher 3 Güncellendiğinde Trainer Neden Bozulabilir?
Yeni bir güncellemede oyunun:
Fonksiyon adresleri
Instruction yapıları
Register kullanımı
Object layout’ları
Field offsetleri
Pointer zincirleri
değişebilir.
Bu durumda ilgili trainer özelliğinin de yeniden incelenmesi gerekebilir.
Özellikle runtime capture tarafında kullandığım fonksiyon değişirse aynı anda o capture sistemine bağlı birkaç özellik etkilenebilir.
⚠️ Bir Sistem Bozulunca Birden Fazla Özellik Etkilenebilir
Diyelim 5 farklı trainer özelliği aynı player nesnesini kullanıyor.
Bu player nesnesini de ortak bir capture sistemiyle yakalıyorum.
Yeni oyun güncellemesinde bu capture noktası değişirse:
5 özelliğin birden çalışmayı bırakması
mümkün.
Bu aslında 5 ayrı hata olduğu anlamına gelmez.
Tek bir ortak sistem bozulmuştur.
Bu yüzden hata bildirirken hangi özelliklerin birlikte çalışmadığını belirtmeniz özellikle önemli.
🤔 Sadece Bir Özellik de Bozulabilir
Tam tersi de geçerli.
Örneğin 24 özellikten yalnızca bir tanesi belirli bir memory patch kullanıyorsa ve oyun güncellemesi sadece o fonksiyonu değiştirdiyse:
23 özellik çalışır, 1 özellik bozulur.
Bu nedenle traineri:
Çalışıyor.
veya:
Çalışmıyor.
diye değerlendirmek yerine özellik bazında kontrol etmeyi tercih ediyorum.
🧪 Güncelleme Sonrası Nasıl Test Ediyorum?
The Witcher 3 güncelleme aldığında özellikle:
Oyuncu değerleri
Savaş sistemleri
Hareket
Envanter
Dünya
Teleport
Konum kaydetme
Runtime capture kullanan özellikler
ayrı ayrı kontrol edilmeli.
Bunun yanında:
Save yükleme
Fast travel
Bölge değiştirme
Ölüm / yeniden yükleme
Özelliği açıp kapatma
Birden fazla özelliği beraber kullanma
gibi senaryoları da test etmek gerekiyor.
🌍 Bölge Değişimi Özellikle Önemli
The Witcher 3’te farklı haritalar ve bölgeler bulunuyor.
Bir özellik Velen tarafında düzgün çalışırken bölge değişiminden sonra farklı davranabilir.
Bunun nedeni oyuncu veya dünya nesnelerinin yeniden oluşturulması olabilir.
Bu nedenle:
Özellik ilk bölgede çalışıyor ama başka haritaya geçince bozuluyor.
gibi bir durum yaşarsanız özellikle belirtin.
Bu doğrudan runtime object tarafına bakmam gerektiğini gösterir.
🔁 Save Yükledikten Sonra Çalışmıyorsa
Bu da benzer şekilde önemli bir hata belirtisi.
Trainer gerçek player nesnesini yakalamış olabilir.
Sonra başka bir save yüklediniz.
Oyun eski player nesnesini yok edip yenisini oluşturdu.
Eğer trainer eski adresi kullanmaya devam ederse özellikler artık çalışmayabilir.
Bu yüzden runtime capture sistemlerinde yeni nesnelerin tekrar yakalanabilmesi önemli.
💾 Save Yedeği Almak İyi Fikir
The Witcher 3 uzun süre oynanan ve save dosyalarının oldukça değerli olabildiği bir oyun.
Bu yüzden özellikle kalıcı olabilecek trainer işlemlerini kullanmadan önce manuel save almanızı öneriyorum.
Özellikle:
Envanter
Para
Kalıcı karakter değerleri
Dünya veya ilerleme sistemleri
ile ilişkili değişikliklerde bu önemli.
Geçici bir savaş özelliğiyle save içerisine kaydedilebilecek bir değeri değiştirmek aynı şey değil.
⚠️ Aşırı Değer Kullanmayın
Manuel değiştirilebilen değerlerde mümkün olduğunca oyunun normal sınırlarına yakın değerler kullanmanızı öneriyorum.
Trainer:
999999999
yazmanıza izin verebilir.
Ama oyun geliştiricisi ilgili sistemi böyle bir sayı düşünerek hazırlamamış olabilir.
Bu durumda:
UI sorunları
Taşmalar
Save problemleri
Beklenmeyen oyun davranışları
oluşabilir.
Trainer oyunun bazı kurallarını değiştirebilir ama oyun motorunun matematiğini yeniden yazmıyoruz. 😄
🚫 Kullanım Amacı
ORGA Hub trainerlerini temel olarak tek oyunculu oyun deneyimini kişiselleştirmek amacıyla geliştiriyorum.
Amacım anti-cheat sistemlerini aşmak veya rekabetçi multiplayer ortamlarında avantaj sağlamak değil.
The Witcher 3 tarafında da kullanım amacı tamamen kişisel tek oyunculu deneyim.
🖥️ ORGA Hub Üzerinden Çalışıyor
The Witcher 3 için ayrı bir trainer EXE’si dağıtmıyorum.
ORGA Hub:
Oyunu algılıyor
Trainer paketini yüklüyor
24 özelliği gösteriyor
Runtime capture sistemlerini yönetiyor
Memory işlemlerini gerçekleştiriyor
Hotkey ve özellik durumlarını takip ediyor
ve bütün traineri tek uygulama üzerinden kullanabiliyorsunuz.
🔐 Trainer Paketleme Sistemi
Geliştirme sırasında kullandığım trainer tanımları kullanıcı tarafına açık JSON olarak bırakılmıyor.
Yayınlama sırasında tanım:
paketleniyor → şifreleniyor → imzalanıyor
ve .bin paketine dönüştürülüyor.
ORGA Hub paketin imzasını doğruladıktan sonra trainer tanımını çalışma sırasında kullanıyor.
Böylece The Witcher 3 gibi native memory ağırlıklı trainerler de diğer ORGA içerikleriyle aynı dağıtım sistemi içerisinde tutulabiliyor.
🐛 Sorun Bildirirken
The Witcher 3 trainerinde sorun yaşarsanız bu konu altında bildirebilirsiniz.
Mümkünse şu bilgileri ekleyin:
The Witcher 3 oyun sürümü
Steam / GOG / Epic vb. platform
Çalışmayan özelliğin adı
Daha önce çalışıyor muydu?
Sorun oyun güncellemesinden sonra mı başladı?
Özellik hiç çalışmıyor mu?
Bir süre çalıştıktan sonra mı bozuluyor?
Save yükledikten sonra mı oluyor?
Bölge değiştirdikten sonra mı oluyor?
Teleport ile mi ilgili?
Oyun crash oluyor mu?
Başka mod kullanıyor musunuz?
Varsa ekran görüntüsü
Özellikle hangi özelliklerin aynı anda bozulduğunu yazarsanız ortak capture veya pointer sisteminde problem olup olmadığını daha hızlı anlayabilirim.
🔎 Sorunu Nasıl İnceliyorum?
Çalışmayan özelliğin kullandığı yönteme göre ilerliyorum.
Runtime Capture kullanıyorsa:
Hook noktası aynı mı?
Register kullanımı değişmiş mi?
Gerçek nesne hâlâ doğru yakalanıyor mu?
Pointer Freeze ise:
Pointer zinciri hâlâ geçerli mi?
Offset değişmiş mi?
Memory Patch ise:
Orijinal byte’lar değişmiş mi?
Patch doğru instruction üzerinde mi?
Teleport ise:
Player pozisyon yapısı aynı mı?
Dünya veya actor state’i değişmiş mi?
kontrol ediyorum.
Böylece 24 özelliğin tamamını baştan yapmak yerine gerçekten değişen bölümü bulabiliyorum.
📝 Güncellemeleri Burada Tutacağım
Trainerde önemli bir değişiklik olduğunda bu konu altında paylaşacağım.
Örneğin:
🔄 Güncellendi
Yeni The Witcher 3 sürümüyle uyumluluk sağlandı.
🐛 Düzeltildi
Değişen runtime capture noktası nedeniyle çalışmayan özellikler düzeltildi.
🔧 Değiştirildi
Belirli özellik daha stabil pointer veya capture yöntemine geçirildi.
⚠️ Bilinen Sorun
Belirli özellik mevcut oyun sürümünde geçici olarak uyumsuz.
gibi.
❤️ Kısaca
The Witcher 3 traineri şu anda 24 özellik içeriyor ve ORGA Hub üzerinden kullanılabiliyor.
Teknik tarafta:
Runtime Capture
Runtime Copy
Code Cave
Pointer Freeze
Tek seferlik pointer işlemleri
Memory Patch
Teleport
Konum kaydetme / geri yükleme
Yakalanan nesnelerin field’ları üzerinde işlemler
gibi farklı yöntemler birlikte kullanılıyor.
The Witcher 3 gibi büyük bir oyunda her şeyi tek bir yönteme zorlamak yerine her sistem için en uygun çözümü kullanmaya çalışıyorum.
Yeni oyun sürümleri geldikçe 24 özelliğin uyumluluğunu kontrol edip önemli değişiklikleri bu konu üzerinden paylaşmaya devam edeceğim.
Bir sorun yakalarsanız buradan bildirebilirsiniz. ⚔️
Gringos