Gönderen Konu: anti cheat olayları falan  (Okunma sayısı 14490 defa)

anti cheat olayları falan

« : 04.04.2012 00:21:16 »
Hızlı düğmeleri aç

Ragnor

İleti: 901

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://ozanemirhan.blogspot.com
selam beyler, cs'deki aimbot gibi client taraflı hileleri engellemek adına ne gibi yöntemler mevcuttur? neler yapılabilir? ilerleyen günlerde bu konuda birşeyler yapmam gerekecekte sizden alabileceğim şu anda pek detay vermediğim için haliyle genel tavsiyeler var mı? Teşekkür ettim.

anti cheat olayları falan

« Yanıtla #1 : 04.04.2012 10:28:28 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
1) Client hook hacklerine karşı elinden geldiğince release exe'sini obfuscate et, client'ı reverse edip modifiye etmelerini mümkün olduğunca zorlaştırmaya bak. Örneğin ben normalde C++/CLI kullanmama rağmen, C++/CLI'ı yeterince, benim arzu ettiğim ölçüde obfuscate edebilen bir tool bulamadığım için yazdığım programın bir bölümünü (licensing module) C# ile yazıp, C#'ı iyi obfuscate edebilen bir tool kullanmış, daha sonra kendim reverse etmeye çalışıp, işin içinden kolay kolay çıkılamadığını görüp tatmin olmuştum. Tabii performansı etkilemeyecek ancak reverse edilmesini istemeyeceğiniz kritik noktalara kafa karıştırıcı, aslında çok da bir işlevi olmayan kodlar serpiştirmek de en azından reverse edecek kişinin saatlerini, günlerini ama sizin 2 dk'nızı alacağı için mantıklı olabilir.

2) Çoğu aimbot RGB tabanlı olarak çalışıyor biliyorsun. Buna karşı yapılabilecek radikal çözümlerden biri oyunun tasarımını buna özel olarak değiştirmek olabilir. Combat halinde playerlar hafif ghost mode takılabilir, enviroment'dan biraz RGB çalabilirler, ara sıra random renk değiştirebilirler (tabii çirkin gözükmeyecek şekilde), bukalemun gibi takılabilirler v.s. v.s. Ama bunlar dediğim gibi çok radikal yöntemler. Eğer oyunda solid color taşıyan modeller olacaksa client koduna hiç dokunmadan kolayca aimbot yazılabileceğini düşünüyorum.

3) Eğer olay ekran kartına bulaşmaya başlarsa tahmin ediyorum alınabilecek önlemlerin çoğu performans düşürücü olacaktır ki yine de işin önüne geçemeyebilir. Sık sık modellerin referanslarını değiştirmek, destruct edip construct etmek v.s. gerekebilir. Bu bence en sakat yöntem ki aimbot yine de sürekli modelleri scan ederek değişimleri algılayıp hedefi sabit tutmayı başarabilir. Bence bu konudaki en radikal çözüm (hemen hemen imkansız, kabul ediyorum), DirectX/OpenGL kullanmayıp, kendi 3D Graphic API'ni yazmak olabilir. Elbette ki ekran kartlarının özelliklerinden sonuna kadar faydalanabilecek böyle birşeyi yapmak günümüzde imkansıza yakın ve bu tür rare caselerin haricinde son derece de anlamsız olacaktır. Ben sadece sesli düşünüyorum.

Yani bu da man in the middle attack gibi önlemenin yolları olduğu iddia edilen ancak hemen hemen her durumda da gerçekleştirilebilen birşey. Video analiz teknikleri işimin bir parçası olduğu için iyi biliyorum, yeterli CPU gücü olduğu sürece inanılmaz kompleks analizler yapılabiliyor. Yani aslında renk değiştiren, bukalemun v.s. de hikaye, insan gözü algılıyorsa algoritması da bulunuyor. Ama dediğim gibi bu tür konularda bence amaç tamamen kurtulmak değil, hackerın işini zorlaştırmaktan ibaret olacaktır. Sonuçta kendi grafik API'ni de yazsan, onu da reverse edip yine doğrudan 3d objeye erişebilirler. Tamamen önlemek çok zor.

anti cheat olayları falan

« Yanıtla #2 : 04.04.2012 11:45:40 »
Hızlı düğmeleri aç

tesla

İleti: 426

Çevrimdışı
  • ****
  • Sr. Member
    • Profili Görüntüle
    • http://
Amaç multiplayer'deki hileleri önlemekse zaten kullanımda olan sistemleri lisanslayabilirsin. Yani ilerleyen günlerde bu konuda bir şeyler yapman gerektiğinde, patrona "3000$ (fiyatı attım) verirsen hile olayını kökten çözüyorum" diyebilirsin :P
Counter Strike steam üzerinden oynanıyorsa VAC diye bir sistemle korunuyor ama diğer resmi olmayan sunucular Sxe-injected kullanıyor. (şart koşuyor)
Bir de Punkbuster var, satın alıp oyuna entegre etme açısından daha uygun gibi duruyor. Battlefield 3 bunu kullanıyor.

Nasıl çalıştıkları hakkında teknik bir bilgim yok ama sanırım sürekli oyun mekaniklerini kontrol eden bir yapıları var, yani oyundaki limitler (koşma hızı vs), network paketleri gibi. Tabi bunu sağlaması için oyunun bazı API'lerine yada kodun belli bir kısmına erişim istekleri olabilir. Tabi bunu sağlayan servisleri de crackleyebilirler, o durumda da hile yapmış sayılıyorsun. Yani arka planda çalışan hile koruma görevi kapatılırsa yada değiştirildiğini anlarsa, güncel değilse hemen sunucudan atılıyorsun :)

anti cheat olayları falan

« Yanıtla #3 : 04.04.2012 14:52:32 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Bu işin çıkmazda olduğu nokta bu konuda (koruma değil hack kısmında) çok gelişmiş AI'ların halihazırda bulunması. Yani limitleri kontrol eden uygulamalara karşı limitlerin dışına çıkmayan ama normal bir oyuncudan daha başarılı olacak, sürekli oyuncunun kafasına kilitlenmiş derecede nişan almayan ama tam vuracağı an şans eseri (!) kafaya isabet ettiren, arada bir de ıskalayan AI'lar yazmak çok da zor değil. Kısacası server'ın en iyi oyuncusu ile AI kapıştığında belki de gerçek oyuncu kazanacak şekilde de yazılabiliyor bunlar. O durumda ne denersen dene nafile. Ya da botları tespit edebilmek için hata payını büyültmeye başladığımızda ve serverdaki en iyi oyuncular bot oldukları şüphesiyle kicklenmeye başladıklarında oyuncuların yaşayacağı memnuniyetsizlik ve basacakları küfürler hiçbir game development yapan firmanın göze almak istemeyeceği bir risktir diye düşünüyorum. Yani kusursuz AI yakalanabilse de kusursuza yakın bir AI'ı yakalamak bence çok çok zor.

Tabii işi gücü sadece bu olan insanlar eminim botların %90'ını etkisiz hale getirecek koruma kalkanları yapmışlardır. Ama %100 zor gibi görünüyor. Örneğin mouse, klavye hookların da denetleyen çok kasacak birşey yapmışlarsa bile sorunu o bilgisayar üzerinde yazılımla değil, mouse/klavye portlarına bağlanan bağımsız bir bilgisayarla bile çözebiliriz, ya da komple mouse klavye kullanan robot üretiriz. :) Kaçış yok! :D

anti cheat olayları falan

« Yanıtla #4 : 04.04.2012 22:14:26 »
Hızlı düğmeleri aç

Ragnor

İleti: 901

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://ozanemirhan.blogspot.com
Cevaplar için teşekkürler. şimdilik bizim oyunda gördüğüm tek hile multiplayer modda kapalı olan otomatik blok (manuel blokta bloklama yönünü senin belirlemen gerekiyor, otomatik blokta blok tuşuna basman yetiyor, yönü oyun otomatik tayin ediyor) özelliğinin multiplayerda çalışmasını sağlamak olmuş tek yaptıkları. Bunu da sanırım oyuncunun karşısındaki modelin oynattığı animasyonu kontrol edip ona göre belirliyor, ya da bizim kodun hangi yönden saldırı geldiğini belirlediği kısmını hafızadan okuyor. ışin aslı eski oyunun kodlarıyla pek uğraşmadığım için şu anda emin değilim. 2 gündür yeni çıkacak dlc'nin çeviri işiyle uğraştığımızdan konuya eğilmeye fırsat bulamadım. Biraz inceleyip konu hakkındaki detaylar artıkça daha doğru sorular sorarım artık size ama şu anda bile bu hızlı update iyi oldu :).

Hazır bir çözüm işe yarasaydı bizimkiler çoktan kullanırdı. Vaktinde VAC'ı denemişler ama bazı sorunlar olmuş anladığım kadarıyla. Bende ilk iş VAC ile başlayacağım. Genelde hazır ve işe yaradığı kanıtlanmış çözümleri tercih ediyoruz. VAC'ın Steam ile sınırlı olması biraz sıkıntı yaratıyor gerçi, o yüzden VAC'ı çalıştırmayı becerebilirsem bir de Steamsiz oynayanlar için birşeyler hazırlamam gerekecek.

anti cheat olayları falan

« Yanıtla #5 : 09.04.2012 14:51:05 »
Hızlı düğmeleri aç

bluesnessman

İleti: 2

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
Bahsedilen DirectX Interception burda detaylıca açıklanmış : http://www.altdevblogaday.com/2012/04/02/extravagant-cheating-via-direct-x/
Gerçekten Skate'in bahsettiği gibi önlemek çok zor, adamlar bunu kullanarak Starcraft 2 AI bile yapmışlar.