1 puan yazan GN⁺ 2023-12-06 | 1 yorum | WhatsApp'ta paylaş

Oyun hackleme: Magic: The Gathering Arena'da %100 kazanma oranına ulaşmak

  • Magic: The Gathering Arena'da rakibin otomatik olarak oyundan çekilmesini sağlamanın bir yolu keşfedildi
  • Sorunu bildirme niyetiyle birlikte kaynak kodu ve çözüm önerisi sunulması teklif ediliyor

Giriş

  • İstemci tarafı kod karmaşıklaştırmasına dair görüş: obfuscation, az emek harcayan kişileri caydıran bir bariyer oluşturur, ancak güvenlik açıklarını bildiren tutkulu geliştiriciler için bir engeldir
  • Kart oyunlarında oyun durumunu tamamen sunucu tarafı yönetir ve istemci yalnızca gerekli bilgileri alır
  • İstemci sınırlı bilgiye sahip olduğundan hacklemek zordur

Başlarken

  • Ağ iletişimini analiz ederek oyun hackleme sürecine başlandı
  • C# ile yazılan MTGA'da çalışma zamanında oyun nesnelerini manipüle etmek kolaydır
  • Özel alanlara ve metotlara erişebilen reflection kullanıldı

İpucu bulma

  • C# decompilation, metadata token'larını kullanarak bunları insanların okuyabileceği adlarla eşler
  • JoinMatch fonksiyonu bulundu; bunun oyun sunucusuna ilk bağlanılan yer olduğu tahmin ediliyor

Sparky'nin implementasyonu

  • MTGA'nın maskotu Sparky, yeni oyuncular için eğitim ve pratik amaçlı bir bottur
  • Bot mantığı yerelde çalışır ve tüm karar alma süreci kullanıcının bilgisayarında gerçekleşir

Uygulamanın şeytanı (ayrıntılar)

  • Bot maçı başladığında gerçek bot mantığı HeadlessClient sınıfı üzerinden işlenir
  • Bot, oyun tahtasını render etmeye ihtiyaç duymadan oyun sunucusuna bağlanarak maçı oynar

Maçı ele geçirmek

  • Reflection kullanılarak oyun nesnesinin davranışı değiştirilebilir
  • Kendi koltuğunu tespit edip istemciyi diğer koltuğa bağlayarak rakibin oyundan çekilmesini sağlayan kod yazıldı

GN⁺'nin görüşü

Bu yazıdaki en önemli nokta, bir geliştiricinin oyun güvenlik açığını keşfedip bunu iyileştirmek için paylaşırken gösterdiği sorumlu tutumdur. Kart oyunları gibi oyun durumunun tamamen sunucu tarafından yönetildiği sistemlerde bile, istemci tarafı manipülasyonlarla oyun sonucunu etkileyebilen açıkların bulunması oldukça ilgi çekicidir. Bu tür bilgiler, oyun geliştiricilerine güvenliği güçlendirme ve oyunu daha adil hale getirme konusunda önemli dersler sunar.

1 yorum

 
GN⁺ 2023-12-06
Hacker News görüşü
  • Linux ile ilk kez tanışırken ağ trafiğini inceleme deneyimi

    • EverQuest oyunu için ShowEQ programını kullanarak şifrelenmemiş trafiği analiz etme
    • Hub kullanarak trafiği Linux makinesine kopyalama, gerçek zamanlı harita çizme ve karakter konumunu gösterme
    • Mob'ların taşıdığı eşyaları görme, belirli mob'ları seçerek avlamayı destekleme
    • Pasif ve tespit edilemez bir yöntemdi, ancak daha sonra SOE trafiği şifrelemeye başladı
  • Magic: The Gathering oyunu için yapay zekanın şaşırtıcı verimliliği

    • Yerel makinede çalışabilen yapay zekanın düşük bellek kullanımı karşısında şaşkınlık
    • Yapay zekayı sunucu yerine yerelde çalıştırmanın daha mantıklı olabileceği
    • Sunucu ile yerel makine arasındaki CPU farkı ve çok çekirdek desteği üzerine değerlendirme
  • Magic: The Gathering yapay zekası geliştirmenin karmaşıklığı ve verimliliği

    • MTG için karmaşık yapay zeka geliştirmenin sanıldığı kadar zor olmadığına dair yanlış kanıların düzeltilmesi
    • Sparky mantığının erişilebilirliği ve geliştiricilerin uygulama tercihleri
    • Oyunun neredeyse Turing-tam olması ve yapay zeka stratejisi geliştirmeye dair notlar
  • MTGA için kişisel proje ve oyun hack'leme ilgisi

    • Resmi olmayan bir MTGA istemcisi geliştirilmekte, ancak hâlâ erken aşamada
    • Oyun hack'leme deneyimi, hata ifşası ve istemci yapısına duyulan ilginin ifade edilmesi
  • Oğluyla birlikte Magic 93/94 oynamanın keyfi

    • Gerçek kartlarla oğluyla oyun oynama
    • Madrid'de düzenlenen dünya şampiyonasına katılım ve oğlunun başarısıyla gurur duyma
  • İstemci tarafı oyun mantığının önemi ve sunucu doğrulaması gerekliliği

    • Gerçek zamanlı oyunlarda istemci tarafı mantığın tepkiselliğinin vurgulanması
    • Kart oyunlarında sunucu doğrulamasının önemi ve rakip bilgisinin sınırlandırılması
  • League of Legends oyunundaki hata ve etkisi

    • Belirli şampiyon ve eşya kombinasyonlarının sunucu hatasına yol açması ve oyun sonucunun manipüle edilmesi
  • Oyun sırasında yapay zekaya bağlanma ve rakibin pes etmesi işlemlerine dair soru işaretleri

    • Gerçek maç sırasında yapay zekaya bağlanılmasına izin verilip verilmediği ve pes etmenin nasıl işlendiğine dair sorular
  • Diablo 2 oyununda sunucu bağlantı paketlerini yeniden kullanma deneyimi

    • LAN sunucusu karakterini resmi internet sunucusuna bağlama yönteminin paylaşılması
  • Sunucu emülatörü geliştirme ve LAN maçlarına ilgi

    • Tüm kartların kilidi açılmış LAN maçları için bir sunucu emülatörü geliştirme olasılığının araştırılması