MMO'lar için Anti-Cheat sorunları ve çözümleri? [kapalı]


14

Çoğu çevrimiçi oyun bu sorun için acı çekiyor ve bunu kapsamak için bazı yazılım şirketleri var, ancak son zamanlarda çoğu şirketin kendi sistemlerini (bu durumla kar fırtınası, kendi kontrolleri olan aion, vb.) Bu programlardan kaçınmaya çalıştıklarını gördüm. ...) ama böyle önlemek çok zor bir durumdur ...

Sadece uygulamaları göndermek için topluluk wiki olarak başka bir soru konusu yaptığımı söylemek istedim ve bu özellikler ve bu sorunun arkasındaki fikirler bunları listelemek değil, bunun yerine girişimleriniz, yoldaki sorunlar ve olası çözümler hakkında daha fazla bilgi edinmek , uygulama vb. kodlar.

Bu tür eylemleri önlemek (önlemek) için ne tür bir koruma kullanıyorsunuz:

  1. Hile Karşıtı Yazılım? (lütfen karşılaştığınız, neden ve olası sorunların olduğunu belirtin, örneğin aion GameGuard'ı beta aşamasında çok büyük uyumluluk sorunları ve kullanıcılarından şikayet nedeniyle kullanmayı bıraktı)
  2. Kendi kodunuz mu? (örneğin speedhack gibi kötü niyetli oyunculardan emin olmak için genellikle ne tür bir doğrulama yapıyorsunuz, hıza karşı son konumu + son konum vb.)
  3. Yok, umrumda değil mi? (paylaşmak istediğiniz herhangi bir kişisel neden veya girdi?)

Göndermek istediğiniz sorunla ilgili ilginç bir kod parçası var mı?

İngilizcem bu kadar harika benim metin yeniden çalışmaktan çekinmeyin? **


1
Etiket yapıldı. Bunun çok sayıda cevabı olmasını bekliyorsanız lütfen topluluk wiki yapın. Birden fazla kişinin, yanıtları sürekli olarak yeniden ifade etmeleri yerine bireysel yanıtları düzenlemesine olanak tanır.
Jesse Dorsey

1
Bunun nasıl faydalı olabileceğine dair bir örnek için. Şuna bir
Jesse Dorsey

Yorum ve bağlantılar için teşekkürler ben şimdi kontrol ve göreceğim, benim görüşüme göre, oyun geliştirme için bu tür bir soru tartışmak için çok iyi bir nokta ama çoğu inanıyorum MMO oyunları için bu yüzden emin değilim, ayrıca topluluk şu anda oldukça küçük ve ben böyle bir soru ile başlamak için negativated korkuyorlardı bu yüzden emin değilim, etiketi oluşturduğunuz için teşekkürler :)
Prix

Yanıtlar:


22

Ne yazık ki insanların hile yapmasını durdurmak gerçekten zor, bu yüzden Punkbuster gibi yazılımlar bazılarını yakalamaya çalışmak için yaratıldı.

Bir MMO için yapabileceğiniz en büyük şey , müşterinin size gönderdiği hiçbir şeye güvenmemek . İstemci size oynatıcının nereye taşındığını, kime ne kadar hasar verdiklerini söyleyememelidir. Bunun yerine, sunucuya kontrol girişi göndermeniz, pratik olduğunu doğrulamanız gerekir ("saldırı" düğmesine basarak) Örneğin, 1 saniyede 1000 kez geçerli değildir), ardından simülasyonu sunucuda güncelleyin. Daha sonra oyunun yeni durumunun ilgili kısımlarını müşteriye geri gönderirsiniz.

Kullanıcı girişini doğrularken, girdilerindeki eğilimleri aramak da mümkündür. Makrolara izin vermezseniz, kullanıcının son 30 dakika boyunca aynı 1 saniye aralıklarla tam olarak aynı piksel koordinatlarında aynı düğmeyi tıkladığını fark ederek onları yakalayabilirsiniz.

Müşterinin kendisi, insanların hile yapabileceği ana yerdir, bu nedenle Punkbuster gibi programlar duvar kâğıtlarını, nişanları vb.


Katkınız için teşekkürler, daha fazla insanın girdisini yapmasını umuyorum; Gerçekten bu karşı koymak çok zor bir konu ... Ayrıca anti-hile motoru devre dışı bırakmak için oyunu çatlaklar var ve ondan çağrı ... şeyleri daha da zor hale getirir ... bir çevrimiçi yoksa GM verilen kişi veya belirttiğiniz gibi diğer doğrulama doğrulamak için. topluluk wiki için bu soru olarak ne düşünürdünüz? olduğu gibi tutmalı mıyım?
Prix

Belirli bir cevap aramadıkça muhtemelen topluluk wiki'si.
Sean James

Daha eksiksiz bir cevap için Punkbuster'ın nasıl çalıştığı hakkında daha fazla ayrıntı var mı?
Chris Lloyd

İyi cevap - 'hepsini yönetecek tek bir çözüm' yok - çoğu oyunda birden fazla 'saldırı vektörü' var. Genellikle risk değerlendirmesiyle ilgili her şeyden daha fazla, yani birisi X sistemini hile yapabilirse toplum üzerindeki etkisi nedir
zebrabox

Saldırıların kaçınılmaz olduğuna inanıyorum, hatta en güçlü anit-hile programına sahipler. Hile teknik olarak çevrimdışıysa ancak çevrimiçi değilse sorun olmaz. Çevrimiçi oynamak daha doğrudur. Öyle mi?
David Dimalanta

8

Kerestecilik. Sunucuda gerçekleşen her şey ve ideal olarak istemciden gelen her şey günlüğe kaydedilmelidir. İstemci doğası gereği güvenilmezdir, ancak güvenilmeyen verilerin günlüğe kaydedilmesi bile aydınlatıcı olabilir.

Her şey günlüğe kaydedildikten sonra, hile tespiti verileri analiz etme meselesi haline gelir. Bazı hileler açıktır (örneğin, avatarın normalde izin verdiğinden çok daha hızlı noktalar arasında hareket edebilmek için kabul edilebilir aralıkların dışındaki değerler), diğerleri daha sinsidir (yapay kısa zaman dilimlerinde pikselin mükemmel hedeflenmesine izin veren hedef botları gibi). Bazılarının algılanması daha zordur (wallhacks gibi), ancak mümkün olduğunca kayıt yapmak hem otomatik hem de manuel algılamaya izin verir. Üzerinde çeşitli makaleler var, ancak genellikle hileler otomatik algılamada çok kolay bir şekilde tespit edilir, çünkü tam olarak insan oyuncuların olmadığı şekilde tahmin edilebilir / tekrarlanabilirler.

Kesinlikle her şey kaydedilmesi büyük olasılıkla mümkün olmadığından, katmanlı günlük kaydı yararlıdır. Örneğin, kullanıcıların hile raporları veya hile olasılığını (istatistiksel eğrinin çok üstünde olan puan) algılayan basit temel günlük kaydı, daha ayrıntılı günlük kaydı için belirli bir istemci / hesap / CD anahtarını işaretlemek için yeterli olacaktır. o zaman bir hile kullanımda olduğunu şüphe ötesinde kanıtlamak için kullanılabilir.

Bir hile tespit ettiğinizde yaptığınız şey başka bir konudur. Hesaptan sonra bandaj iyi, özellikle de yeterince güvenilir bir otomatik algılama mekanizmanız olduğunda. Erken yasaklanması hem tespit edildikleri hileleri uyarır hem de sonuçsuz tespit mekanizmalarından dolayı yanlış pozitif risk taşır. Çok geç yasaklanması, oyun deneyimini başkaları için mahvetme riski taşır. Bu çok gri bir alandır ve geliştiricilerin karar vermesini gerektirir.


2

Oyununuzdaki tüm önemli çalışmaların sunucu tarafında olduğu varsayılarak, çok az hile olabilir veya hiç hile yapılmamalıdır. Makrolamayı kısıtlamak veya kişilerin paket düzenleme yapmasını zorlaştırmak istiyorsanız, programınızın düzenli olarak sürecinde etkin olan modülleri taramasını sağlayın. Örneğin WpeSpy.dll'yi bulursanız, bunların WPE eklenmiş olduğunu bilirsiniz. Bunu diğer yaygın araçlar için yapın. Bu çözülebilir ve bir silahlanma yarışı ve kayıp bir nedendir, ancak oyununuz nispeten küçükse, yaklaşık on kat daha fazla vidalanan insan sayısını kolayca kesebilirsiniz ... ve bu iyi olabilir senin için yeterli.


Katkınız için teşekkürler, herhangi bir hile önleme yazılımı kullandınız mı veya ilgilenmeniz gereken bu tür bir sorunla karşılaştınız mı? eğer öyleyse bunu duymak güzel olurdu.
Prix

2
Herhangi bir üçüncü taraf hile önleme yazılımı kullanmadım, hayır. Bununla birlikte, çevrimiçi bir RPG kodlamaya ilk başladığımda, istemcim isteği bir kuyruğa koymak yerine "saldırı" gönderdiğinde sunucum "saldırı" olarak adlandırdı. Bunlar hile önlemek için en önemlileridir. Hız kesmek, sunucudaki tüm zamanlamayı yapın, böylece az avantaj elde ederler, aynı zamanda zaman damgaları gönderirler ve çok fazla sürüklenme alırsanız, bir tane kullandıklarını bilirsiniz. Hesaplarını işaretleyin, ancak hemen tekme atmayın - anında geri bildirim, birisinin yazılımınızın ne algıladığını bilmesi için harika bir yoldur.
James Bellinger

1
Ben but also send timestamps, and if you get too much drift, you'll know they are using one. Mark their account, but don't kick them immediately -- immediate feedback is a great way for someone to know what your software detects.son zamanlarda işaretli kullanıcılardan bir zaman damgası ve uyarı sistemi uygulamak içine bakıyordu bu kısmı beğendim , şu anda ben şu anda üzerinde çalıştığım bir listede oyuncu koymak ne bazı yüksek kötüye kullanım varsa bir uyarı gönderecektir doğrulama için çevrimiçi bir GM ...
Prix
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.