CheatEngine'i buradan baştan sona öğretemem fakat genel olarak RAM manipülasyonu yapmanıza ve "offline/savunmasız" oyunlarda oyun akışını değiştirmenize yarar. Evet, sadece RAM değil başka manipülasyonlar hatta farklı teknikler de var ama bugün sadece basit, en temel ve etkili RAM manipülasyonlarını göstereceğim.
Bunun etik çerçevelere uyması için açık kaynaklı "Assault Cube" oyununu indirip denemenizi ve kendinizi test etmenizi öneririm. Şimdi de CheatEngine'i yükleyelim.
NOT: CheatEngine'nin doğrulanmış bir dijital imzası zaten var ama orjinal siteden yüklemenize rağmen antivirüsünüz engelliyorsa korkacak bir şey yok.
ÇOK ÖNEMLİ NOT: Sakın! bu işlemleri yaparken online oyun/anticheat açıkken yapmayın. Aksi takdirde oyundan uzaklaştırma alabilirsiniz. Valorant'ı bilmiyorum ama kendi oyuncularının yalancısı olarak sanırım bilgisayarınıza da bakıyor. Zaten en kötü anticheat bile bu tür execleri kullanmanıza izin vermez. Ayrıca online oyunlarda server-side çalıştığı için oyunlar (genelde) RAM manipülasyonu sadece sizde geçerli olur ve görüntü olur. Son olarak da, RAM'de tutulan veriler şu anki deneyeceğimiz açık kaynaklı savunmasız oyundaki gibi salt-text olmaz. Sadece dipnot olsun diye söyleyeyim, gelen giden paketleri yakalayıp manipüle etmek gerekir ama o bile yeterli bir işlem değil.
CheatEngine'i yönetici olarak çalıştıralım. (yönetici izni gerektiren uygulamalar için şart fakat bizim senaryomuz için şart değil.) Sonra Assault Cube'u çalıştırıp CheatEngine'den sol yukarıda bulunan task seçme aracıyla Assault Cube'u seçelim:
Şimdi en temel mantık şöyle işliyor:
İlgili RAM'i bulmak için mantıklı aramalar yap ve RAM'i bulunca değerini değiştir. Basit gibi görünüyor, çünkü öyle.
Görselde belirttiğim nuramalar yeni başlayanların ilk başta bilmesi gereken en temel konulardır:
Mesela canım şu anda full ve ilk tarama olarak 100 yapalım:
Ama gördüğünüz gibi RAM'de 100 değeri onlarca kez tutulmuş. Bundan dolayı, canımın değişmesi için bir şey yapmalıyım ve next scan ile değiştiğini söylemeliyim:
Şimdi canım 43'e düştü ve 43'ü next scan ile (ilk değerden sonra oluşan değer) arıyorum:
Gördüğünüz gibi basit bir oyun ve RAM'de tutulan şeyler de az olduğundan direkt sonuçlar karşımızda.
Görseldeki 11. buton, items listesindeki addressleri siler.
Adreslerin bir tanesi görsel (TEXT için) diğeri de "GERÇEK" tutulan can. Her oyunda böyle olmayabilir.
Şimdi onları isterseniz direkt çift tıklayıp değiştirebilirsiniz ya da listeye ekleyip listenizde isim vererek kullanabilirsiniz. Ben önce listeye ekleyeceğim ve sonra da isim vereceğim:
Gördüğünüz gibi alttaki listeye 2 tane eklendi ve hangisinin sadece görüntü ve hangisinin gerçek olup olmadığını anlamak için, önce üsttekini deneyeceğim. Bu arada isimler aynı olmaz ve üstteki de her zaman sizinkinde de aynı sonuç vermez.
Gördüğünüz gibi yazı değişti. Ama alttaki gerçek can. Yâni şu an alttaki olan gerçek can ve onu değiştirmediğimiz için canımız "999" gözükse bile bir bombada öleceğiz.
Her neyse şimdi sol tarafında Description "Açıklama" kısmından birinin health_text diğerinin de health olduğunu belirtelim:
Evet şimdi kendimize bomba atıp test edelim:
Gördüğünüz gibi bu kadar basit.
Diğer bütün değerleri de benzer şekilde alabilirsiniz. Listeyi temizlemek için de 11. butona basabilirsiniz.
Şimdi gelelim biraz teorik kısıma: Bu yaptığımız sadece anlık ve tek seferlik oluşuyor. Bunu kalıcı olarak değiştirmek için farklı yöntemler var, list olarak kaydetme vb. Ayrıca mesela direkt methodları da değiştirebiliyoruz. Örneğin: bomba'nın bizim canımızı düşürmeye yarayan methodu bulup aksine canımızı da yükselttirebiliriz. Kolay şeyler.
Örnek olarak reClass, dnSpy, ILspy ve JetBrains'in RE tool'larıyla yapabilirsiniz. İnternetten basic örnekler bulabilirsiniz.
Neyse, şimdilik bu kadar. Meraklıların, diğer bütün değiştirebildiği değerlerin de değiştirip bir görsel paylaşmasını isterim. Bakalım güzel anlatabilmiş miyim?
Herkese iyi günler ve iyi çalışmalar dilerim.
Bunun etik çerçevelere uyması için açık kaynaklı "Assault Cube" oyununu indirip denemenizi ve kendinizi test etmenizi öneririm. Şimdi de CheatEngine'i yükleyelim.
NOT: CheatEngine'nin doğrulanmış bir dijital imzası zaten var ama orjinal siteden yüklemenize rağmen antivirüsünüz engelliyorsa korkacak bir şey yok.
ÇOK ÖNEMLİ NOT: Sakın! bu işlemleri yaparken online oyun/anticheat açıkken yapmayın. Aksi takdirde oyundan uzaklaştırma alabilirsiniz. Valorant'ı bilmiyorum ama kendi oyuncularının yalancısı olarak sanırım bilgisayarınıza da bakıyor. Zaten en kötü anticheat bile bu tür execleri kullanmanıza izin vermez. Ayrıca online oyunlarda server-side çalıştığı için oyunlar (genelde) RAM manipülasyonu sadece sizde geçerli olur ve görüntü olur. Son olarak da, RAM'de tutulan veriler şu anki deneyeceğimiz açık kaynaklı savunmasız oyundaki gibi salt-text olmaz. Sadece dipnot olsun diye söyleyeyim, gelen giden paketleri yakalayıp manipüle etmek gerekir ama o bile yeterli bir işlem değil.
CheatEngine'i yönetici olarak çalıştıralım. (yönetici izni gerektiren uygulamalar için şart fakat bizim senaryomuz için şart değil.) Sonra Assault Cube'u çalıştırıp CheatEngine'den sol yukarıda bulunan task seçme aracıyla Assault Cube'u seçelim:
Şimdi en temel mantık şöyle işliyor:
İlgili RAM'i bulmak için mantıklı aramalar yap ve RAM'i bulunca değerini değiştir. Basit gibi görünüyor, çünkü öyle.
Görselde belirttiğim nuramalar yeni başlayanların ilk başta bilmesi gereken en temel konulardır:
- Girdiğiniz değerin "ilk" aramasını yapar. Yâni seçtiğiniz exe'nin tam o anda RAM'de tuttuğuyla eşleşen değerler.
- İlk taramadan sonra ilkiyle eşleşip, sıradakiyle eşleşen değerler.
- Taramayı geri alır.
- Value yâni arayacağınız değer.
- Arayacağınız değerin HEX karşılığı.
- Arama tipi:
Sırasıyla: Eşleşen, büyük olan, küçük olan, değer arasında, başlangıcı bilinmeyen değerler. - Değer tipi:
Sırasıyla: Binary, Bytelar, Float, Double, String, Byte dizini, Hepsi, Grup - Lua formatında
- Değil yâni tam zıttı. Örn:
Exact value == 1araması yaptınız ama 1 olmayanlar sonuçlanır. Yâni şartın tam zıttı, şart sağlanmayanlar. - Listede seçmiş olduğunuz değerleri items listesine atar.
Mesela canım şu anda full ve ilk tarama olarak 100 yapalım:
Ama gördüğünüz gibi RAM'de 100 değeri onlarca kez tutulmuş. Bundan dolayı, canımın değişmesi için bir şey yapmalıyım ve next scan ile değiştiğini söylemeliyim:
Şimdi canım 43'e düştü ve 43'ü next scan ile (ilk değerden sonra oluşan değer) arıyorum:
Gördüğünüz gibi basit bir oyun ve RAM'de tutulan şeyler de az olduğundan direkt sonuçlar karşımızda.
Görseldeki 11. buton, items listesindeki addressleri siler.
Şimdi bunlar ne anlama geliyor?
Özetle: RAM'de bir veri tutulur ve bu veriyi daha sonra bulabilmek için bir isim verilir. Görseldeki "00761CC4" gibi. Daha sonra her değişiklik yapılacağı zaman o RAM ismiyle bulunup, içerdeki veri çekilir/değiştirilir.
Özetle: RAM'de bir veri tutulur ve bu veriyi daha sonra bulabilmek için bir isim verilir. Görseldeki "00761CC4" gibi. Daha sonra her değişiklik yapılacağı zaman o RAM ismiyle bulunup, içerdeki veri çekilir/değiştirilir.
Şimdi onları isterseniz direkt çift tıklayıp değiştirebilirsiniz ya da listeye ekleyip listenizde isim vererek kullanabilirsiniz. Ben önce listeye ekleyeceğim ve sonra da isim vereceğim:
Gördüğünüz gibi alttaki listeye 2 tane eklendi ve hangisinin sadece görüntü ve hangisinin gerçek olup olmadığını anlamak için, önce üsttekini deneyeceğim. Bu arada isimler aynı olmaz ve üstteki de her zaman sizinkinde de aynı sonuç vermez.
Gördüğünüz gibi yazı değişti. Ama alttaki gerçek can. Yâni şu an alttaki olan gerçek can ve onu değiştirmediğimiz için canımız "999" gözükse bile bir bombada öleceğiz.
Her neyse şimdi sol tarafında Description "Açıklama" kısmından birinin health_text diğerinin de health olduğunu belirtelim:
Evet şimdi kendimize bomba atıp test edelim:
Gördüğünüz gibi bu kadar basit.
Diğer bütün değerleri de benzer şekilde alabilirsiniz. Listeyi temizlemek için de 11. butona basabilirsiniz.
Şimdi gelelim biraz teorik kısıma: Bu yaptığımız sadece anlık ve tek seferlik oluşuyor. Bunu kalıcı olarak değiştirmek için farklı yöntemler var, list olarak kaydetme vb. Ayrıca mesela direkt methodları da değiştirebiliyoruz. Örneğin: bomba'nın bizim canımızı düşürmeye yarayan methodu bulup aksine canımızı da yükselttirebiliriz. Kolay şeyler.
Örnek olarak reClass, dnSpy, ILspy ve JetBrains'in RE tool'larıyla yapabilirsiniz. İnternetten basic örnekler bulabilirsiniz.
Neyse, şimdilik bu kadar. Meraklıların, diğer bütün değiştirebildiği değerlerin de değiştirip bir görsel paylaşmasını isterim. Bakalım güzel anlatabilmiş miyim?
Herkese iyi günler ve iyi çalışmalar dilerim.