Mengapa mengedit memori klien di beberapa MMO memungkinkan mereka untuk menipu?

19

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?

Hatoru Hansou
sumber
2
Selain beban server, ada juga masalah latensi. Misalnya Minecraft menangani semua gerakan sisi klien hanya karena itu solusi termudah (keluar dari gerakan sisi klien murni, prediksi sisi klien, atau gerakan lambat). (Minecraft tidak memiliki kerangka kerja prediksi karena biasanya ini adalah permainan yang berjalan lambat, jadi memprediksi pergerakan akan banyak pekerjaan dan mungkin tidak dapat diandalkan)
user253751

Jawaban:

21

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
Itu akan menjelaskan minat untuk melihat ingatan klien game dan minat mencegahnya terjadi. Retas teleportasi yang saya lihat secara pribadi di game terakhir yang saya mainkan.
Hatoru Hansou
2
Menariknya, game Ark: Survival Evolved mengatakan mereka memiliki semua yang divalidasi di server (hingga ke input, iirc). Tidak persis tipe WoW MMO tetapi mendukung server 70ppl di alpha (ditambah ton NPC dino dan struktur yang dibangun pemain). Anda tentu bisa merasakan lag tetapi itu semakin baik. Saya membayangkan bahwa ini akan menjadi semakin populer seiring dengan semakin baiknya teknologi.
slicedtoad
5
"70 orang" setidaknya merupakan urutan besarnya (beberapa, pada kenyataannya) lebih sedikit orang per server daripada MMO yang saya kerjakan didukung. Perlu diketahui juga bahwa hampir semua orang mengatakan mereka melakukan segalanya di server, hanya sebagai cara untuk tidak memberikan peretas langkah untuk mengembangkan peretasan.
@slicedtoad Saya akan menyebutkan itu. Perhatikan bahwa karena sebagian besar MMO menggunakan instancing, maka metode ARK dapat bekerja di dalamnya. Tidak layak (belum) melakukan ini untuk sejumlah besar pemain.
Tiang
10

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.

Vaillancourt
sumber
Ok, bot lebih masuk akal, bahkan jika Anda tidak dapat menempatkan diri dalam mode dewa, memiliki program melakukan segalanya untuk Anda juga curang. Tapi, mengapa "peretas" dalam game yang saya mainkan dapat membunuh dalam satu pukulan? Bukankah itu indikasi mengedit memori permainan dan server entah bagaimana memvalidasi perubahan itu.
Hatoru Hansou
1
@HatoruHansou Ya. Dan bagian yang mengganggu adalah bahwa bot tak berawak dapat berjalan dengan sendirinya, jadi bayangkan sekelompok 10 komputer dipantau oleh satu karyawan petani emas, karakter online dan aktif 24 jam sehari .... MMO Anda hancur. Beberapa bahkan akan memiliki penanganan khusus untuk pemain lain ("Jangan tinggal di rumput saya, ini kamar saya " (ada di sana .. Lineage II pada awalnya)).
Vaillancourt
Biarkan populasi bot tumbuh tanpa kendali dan game Anda mungkin akan gulung tikar segera. Ok, bot saja sudah cukup untuk membenarkan perlindungan anti hack. Saya akan menunggu beberapa saat lebih lama sebelum menerima jawabannya.
Hatoru Hansou
@HatoruHansou yakin :) Saya tidak yakin saya memiliki semua alasan untuk perlindungan memori :)
Vaillancourt
6

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.

Greg Quinn
sumber
Itu akan menjelaskan peretasan memori menjadi efektif. Apakah Anda memiliki beberapa tautan ke artikel / makalah tentang tidak ada desain server yang otoritatif?
Hatoru Hansou
4
Load bukan satu-satunya masalah - responsif adalah kuncinya. Game real-time jaringan apa pun harus menggunakan teknik menyembunyikan latensi. Untuk memastikan semua orang setuju, server harus memiliki cara memesan peristiwa yang terjadi pada masing-masing klien - mencoba menghindari situasi seperti "Aku yang menembakmu terlebih dahulu" "Tidak, aku menembakmu lebih dulu". Speedhacks untuk gim seperti Counter-Strike mengandalkan penyalahgunaan sinkronisasi ini dengan memanipulasi latensi yang dirasakan oleh server, dll. (Itu salah satu alasan kebanyakan server CS menendang pemain dengan latensi lebih tinggi dari 100-200 ms).
Luaan
3
Kecuali jika Anda membuat game yang benar-benar berbasis giliran, ini tidak bisa dihindari. Latensi akan selalu ada, dan semua komputer yang terlibat dalam game jaringan perlu menyepakati "waktu bersama" untuk memesan acara. Bahkan dengan sistem terbaik untuk mengelola latensi, akan selalu ada inkonsistensi, tetapi kami telah menjadi sangat pandai menyembunyikannya. Masalahnya adalah begitu Anda mulai membuat hal-hal kecil, lebih mudah membiarkan bug halus lewat - katakanlah, memungkinkan klien memposting membunuh monster yang sama dua kali jika berpura-pura bahwa pembunuhan kedua terjadi sebelum pembunuhan pertama. Itu sulit .
Luaan