1 poin oleh GN⁺ 2023-12-06 | 1 komentar | Bagikan ke WhatsApp

Meretas game: mencapai win rate 100% di Magic: The Gathering Arena

  • Ditemukan cara membuat lawan otomatis menyerah di Magic: The Gathering Arena
  • Menyatakan niat untuk melaporkan masalah tersebut serta menawarkan kode sumber dan usulan solusi

Pendahuluan

  • Pandangan tentang obfuscation kode sisi klien: obfuscation memang menaikkan hambatan bagi orang yang berinvestasi sedikit, tetapi menjadi penghalang bagi pengembang bersemangat yang ingin melaporkan kerentanan keamanan
  • Dalam game kartu, status permainan sepenuhnya dikelola di sisi server dan klien hanya menerima informasi yang diperlukan
  • Karena klien hanya memiliki informasi terbatas, peretasan menjadi sulit

Memulai

  • Peretasan game dimulai dengan menganalisis komunikasi jaringan
  • MTGA yang ditulis dalam C# mudah memanipulasi objek game saat runtime
  • Menggunakan reflection yang dapat mengakses field dan method privat

Mencari petunjuk

  • Decompilasi C# menggunakan metadata token untuk menghubungkan ke nama yang dapat dibaca manusia
  • Menemukan fungsi JoinMatch, yang diduga sebagai titik pertama terhubung ke server game

Implementasi Sparky

  • Sparky, maskot MTGA, adalah tutorial dan bot latihan untuk pemain baru
  • Logika bot berjalan secara lokal, dan seluruh proses pengambilan keputusan berlangsung di komputer pengguna

Iblis dalam implementasi (detail)

  • Saat memulai match bot, logika bot sebenarnya diproses melalui kelas HeadlessClient
  • Bot terhubung ke server game dan menjalankan permainan tanpa perlu merender papan permainan

Mengambil alih pertandingan

  • Dengan menggunakan reflection, perilaku objek game dapat diubah
  • Menulis kode untuk mengidentifikasi kursi sendiri lalu menghubungkan klien ke kursi lain sehingga lawan menyerah

Opini GN⁺

Poin terpenting dari tulisan ini adalah tindakan bertanggung jawab dari pengembang yang membagikan temuannya untuk membantu memperbaiki kerentanan keamanan game. Sangat menarik bahwa bahkan dalam sistem seperti game kartu, di mana server sepenuhnya mengelola status permainan, masih ada kerentanan yang memungkinkan hasil pertandingan dimanipulasi melalui modifikasi sisi klien. Informasi seperti ini memberi pelajaran penting bagi pengembang game untuk memperkuat keamanan dan membuat permainan lebih adil.

1 komentar

 
GN⁺ 2023-12-06
Komentar Hacker News
  • Pengalaman pertama mengenal Linux sambil menganalisis lalu lintas jaringan

    • Menggunakan program ShowEQ untuk game EverQuest guna menganalisis trafik yang tidak terenkripsi
    • Menggunakan hub untuk menyalin trafik ke mesin Linux, menggambar peta secara real-time, dan menampilkan posisi karakter
    • Bisa memeriksa item yang dimiliki mob, serta mendukung perburuan selektif terhadap mob tertentu
    • Metodenya pasif dan tidak bisa dideteksi, tetapi kemudian SOE mulai mengenkripsi trafik
  • Efisiensi luar biasa AI untuk game Magic: The Gathering

    • Takjub dengan kecilnya penggunaan memori AI yang bisa berjalan di mesin lokal
    • Menjalankan AI secara lokal mungkin lebih masuk akal daripada di server
    • Pertimbangan tentang perbedaan CPU antara server dan mesin lokal serta dukungan multi-core
  • Kompleksitas dan efisiensi pengembangan AI untuk Magic: The Gathering

    • Meluruskan kesalahpahaman tentang pengembangan AI MTG yang kompleks
    • Aksesibilitas logika Sparky dan pilihan implementasi para pengembang
    • Menyebut permainan ini yang hampir Turing-complete serta pengembangan strategi AI
  • Ketertarikan pada proyek pribadi terkait MTGA dan peretasan game

    • Sedang mengembangkan klien MTGA tidak resmi, tetapi masih pada tahap awal
    • Mengungkapkan pengalaman meretas game, mempublikasikan bug, dan ketertarikan pada struktur klien
  • Keseruan bermain Magic 93/94 bersama anak

    • Menikmati bermain bersama anak menggunakan kartu fisik
    • Mengikuti kejuaraan dunia di Madrid dan membanggakan pencapaian anaknya
  • Pentingnya logika game di sisi klien dan perlunya validasi server

    • Menekankan responsivitas logika sisi klien dalam game real-time
    • Pentingnya validasi server dalam game kartu serta pembatasan informasi lawan
  • Bug di game League of Legends dan dampaknya

    • Kesalahan server dan manipulasi hasil game akibat kombinasi champion dan item tertentu
  • Pertanyaan tentang koneksi AI dan penanganan lawan yang menyerah saat bermain

    • Pertanyaan tentang apakah koneksi AI diizinkan dalam pertandingan nyata dan bagaimana penanganan saat lawan menyerah
  • Pengalaman menggunakan kembali paket koneksi server di game Diablo 2

    • Berbagi cara menghubungkan karakter server LAN ke server internet resmi
  • Ketertarikan pada pengembangan emulator server dan match LAN

    • Menjelajahi kemungkinan mengembangkan emulator server untuk match LAN dengan semua kartu terbuka