Mengapa mengedit memori klien game berfungsi? Mengapa begitu banyak alat "perlindungan Hack" yang datang bersama klien?
Jika saya merancang game client-server, semuanya akan terjadi di server (simulasi dunia game) dan klien hanya akan menjadi konsumen pasif yang menerima pembaruan status dari bagian dunia di dekat karakter mereka, hanya mengirimkan beberapa informasi seperti penekanan tombol atau perintah move / action. Mungkin saya melewatkan sesuatu di sini, tetapi dengan desain itu, setiap retasan seperti meningkatkan STR saya sebesar 200 di memori klien (jika nilainya ada sama sekali), tidak akan berpengaruh apa pun.
Satu-satunya penjelasan yang dapat saya pikirkan adalah bahwa permainan di mana pengeditan memori berfungsi membiarkan bagian-bagian dari simulasi berjalan di klien dan server kemudian hanya menyinkronkan semua klien secara berkala. Saya dapat memahami bahwa desain untuk game Strategi Waktu Nyata dengan jumlah pemain tetap setelah pertandingan dikonfigurasikan, tetapi, mengapa di MMORPG? Apakah ini strategi untuk mengurangi beban server?
sumber
Jawaban:
Walaupun ideal, secara praktis tidak mungkin untuk memvalidasi setiap input tunggal terhadap server, baik dalam hal beban komputasi maupun latensi dalam konfirmasi input untuk klien.
Akibatnya biasanya ada beberapa hal yang tidak divalidasi pada server di banyak MMO. Dalam beberapa kasus ini termasuk kelas gerakan karakter tertentu, itulah sebabnya ada teleportasi dan peretasan kecepatan. Perlindungan sisi klien membantu memberikan penghalang ekstra untuk peretasan tersebut, meskipun tentu saja dengan waktu yang cukup, peredaran tersebut dapat dilewati. Untuk mengatasi hal ini, banyak game semacam itu akan menggunakan strategi logging dan verifikasi setelah-fakta dan rotasi perlindungan aktual yang digunakan.
Ada juga masalah layar hack hacking memori sederhana lainnya yang dapat menyusun informasi dan mengirimkan penekanan tombol dan input lainnya kembali melalui klien lebih cepat daripada manusia biasanya dapat bereaksi. Atau mereka dapat mencari informasi yang dapat dikirimkan ke klien tetapi belum tentu terlihat (seperti posisi makhluk yang dekat tetapi belum ditampilkan di mana pun, seperti yang biasa terjadi pada peretasan peta Diablo awal).
sumber
Salah satu alasan mengapa ada perlindungan adalah bahwa membaca keadaan permainan dapat memungkinkan bot untuk mengetahui keadaan permainan dan bertindak sesuai.
Misalnya, menggiling dalam MMO: jika "bot" tahu apa yang ada di sekitar, ia dapat mengirim perintah ke gim-gim permainan untuk memilih gerombolan itu, memukulnya sampai umurnya 0, mengambil jarahan, bilas, dan ulangi. Dengan ini, bahkan jika semua perubahan pada simulasi dilakukan / dikonfirmasi sisi server, beberapa pemain mungkin curang. Perintah dapat dikirim melalui klik mouse palsu atau key-down, atau melalui penulisan memori.
Ini adalah salah satu alasan mengapa MMO menggunakan perlindungan memori.
sumber
Banyak MMO dirancang dengan prediksi hit sisi klien. Jadi jika ada klik pada klien, ia mengirimkan hasil itu ke server bahwa ada hit. Dalam hal ini server tidak benar-benar berwibawa, dan dengan demikian curang dimungkinkan.
Sejujurnya, jika saya merancang MMO, saya akan membuat server sepenuhnya otoritatif, dengan klien hanya mengirim nilai input yang dijepit ke server, dan server menyelesaikan hasilnya.
Mengenai mengapa hal ini belum dilakukan oleh banyak MMO, saya hanya dapat memikirkan beban server tambahan dan 'lag respons' yang datang dengan memiliki server yang sepenuhnya berwibawa, karena itu hanya memecah perasaan dan responsif dari permainan.
sumber