Anti Hack & Akıllı Bot Kontrol Sistemi (V2)

  • Konuyu açan Konuyu açan Grafik3r
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 4
  • Gösterim Gösterim 133

Grafik3r

Üye
Üye
Mesaj
32
Beğeni
40
Puan
301
Ticaret Puanı
0
Merhaba arkadaşlar, bugün sizlere piyasadaki statik korumaların aksine, sunucu taraflı (Server-Side) çalışan ve kendi kendini kalibre edebilen Akıllı AntiHack Sistemi'ni tanıtacağım. Bu sistem, sadece hileyi engellemekle kalmaz; oyuncu davranışlarını analiz ederek botları gerçek oyunculardan ayırır. Daha önce de ilk çalışmamı paylaşmış, hep beraber bunların üzerinden kod geliştirelim demiştim. Bahse konu paylaşıma beğeni atanlara ayrıca teşekkür ederim.

Bu yaptığım çalışma yine açık kaynak kodları ile verilmektedir. Bu çalışma için yaklaşık 15 gün mücadele vermiş olabilirim tam hatırlamıyorum. Hiçbir forumdan vb yerden alınmamıştır. Amacım önceki paylaşımda da olduğu gibi kodlar üzerinden güzel bir geliştirme sağlayarak toplum olarak herkesin fikir koyabildiği bir sistem oluşturmak. Elbette ki eksikleri vardır ama elimden geldiğince stabil yapmaya çalıştım. Ben çalışmamı her zamanki gibi Martysama 5.8 üzerinden yaptım. Sizin sunucu yapınız farklı ise char_battle.cpp'den case yapılarınızı kendi item VNUM larınıza göre düzeltebilirsiniz. Şimdi neler yaptık;

Otomatik Öğrenme Modu (Learning Mode)

Sistemin en etkin özelliği belki de budur. Sabit limitler yerine, oyuncuların yasal sınırlarını (hız, menzil, saldırı hızı) anlık olarak izler.
Dinamik Güncelleme: Eğer bir oyuncu yasal bir sınırdaysa, sistem bunu "güvenli" olarak işaretler ve hackfix_ayar.txt dosyasına otomatik işler.
Sıfır Yanlış Ban: Bu sayede "lag nedeniyle ban yedim" şikayetleri tarihe karışır.

Gelişmiş Bot Algılama (Saldırı Sayacı)
Vuruş Takibi:
Bir oyuncu belirli bir saldırı sayısına ulaştığında sistem otomatik olarak doğrulama (Captcha) ister.
Okçu Bot Koruması: Menzilli saldırılarda (Bow) milimetrik mesafe ve hız kontrolü yaparak "Tüm haritaya vurma" hilelerini imkansız hale getirir.

Captcha Kontolü

Hareket Kilidi:
Captcha ekranı açıldığı an oyuncunun paket akışı (hareket, saldırı, skill) sunucu tarafında dondurulur.
Zaman Ayarlı İmha: 30 saniye içinde doğru kod girilmezse sunucu bağlantıyı otomatik olarak keser.
Senkronizasyon: Captcha sonrası oyuncu "En son geçerli koordinatına" geri çekilerek Wallhack kullanımı engellenir.

Sektree & Koordinat Doğrulama
Duvar Koruması (Wallhack):
Oyuncunun her hareketi harita verileriyle (Sectree) kıyaslanır. Geçilemez bir alandan geçmeye çalışıldığında sistem "ALARM" vererek oyuncuyu geri atar (Rollback).
Işınlanma Engelleyici: Paketler arasındaki koordinat farkı, oyuncunun hızına göre hesaplanır. Limit üstü sıçramalar (Teleport) anında engellenir.

Performans Dostu: Tüm kontroller thecore_pulse ve get_dword_time gibi düşük maliyetli fonksiyonlarla yapılır; sunucuya ek yük bindirmez.
Yönetim Kolaylığı: hackfix_ayar.txt üzerinden sunucuyu kapatmadan anlık olarak şu ayarları değiştirebilirsiniz:

Ceza Puanları (Penalty Score)
Silah Menzilleri (Kılıç, Bıçak, Çift-El, Binek Menzilleri vb.)
Hız Toleransları

NOT: Sistemi herhangi bir sunucum olmadığı için denemedim ama çalışma prensibini normalde RAM olarak verecektim. Daha sonra RAM olarak verince verilerin kaybolma riski olabileceğinden Core yapılı bir ayar sistemi oluşturdum. Bunu yapma sebebim de; Martysama için söylemek gerekirse Core 1 de Küçük Moblar, Core 2'de diğer map türleri ve farklı büyüklükte moblar vardı. Bu da tek tarafta ayar alınca diğer tarafta menzil sorunu yaratabiliyordu.

Arada video'da fazla uyarı geldi. Onlara takılmayın yeteri kadar Hız ve Menzil Kalibre etmek videoyu uzatacak diye erken kapattım :)

BOT Kontrol Sistemi'nde Metin Taşlarından ve etrafındaki canavarlardan puan yapısını kaldırdım. Bu sayede oto metin vs sistemleriniz ile çakışmaz.

Çözemediğim tek sorunum: SYSERR: Jan 26 22:03:08 :: buffer_read_proceed: buffer_proceed: length argument bigger than buffer (length: 16, buffer: 8)

Konuya vakıf arkadaşlar bu konuda yardımcı olursa sevinirim. Captcha ile alakalı bir sorunum var ama onu çözemedim. Ayrıca 6 Byte yi dummy ile 8 Byte çektim, Metin2 algoritması genelde 8 katları diye bildiğim için yine uzman arkadaşlar konu altına yorum yaparsa sevinirim.

Küçük Bilgiler

[GENEL_AYARLAR]

ENABLE: 1 → Sistemi tamamen açar (1) veya kapatır (0).
DEBUG: 0 → Gelişmiş log kaydını açar. (1) Genel Oyuniçi Log (0) Sadece Hile Tespit.
LEARNING_MODE: 0 → Öğrenme Modu. 1 olursa sistem oyuncuları izleyerek limitleri otomatik günceller.
SCORE_LIMIT: 100 → Ceza puanı sınırı. Bu puana ulaşan oyuncu Captcha ekranına düşer.
BOT_ATK_LIMIT: 100 → Bot koruması. Oyuncu hiç durmadan 100 vuruş yaparsa Captcha tetiklenir. (Metintaşı Hariç)
PENALTY: 35 → Her hile tespitinde (Speed, Wall vb.) oyuncuya eklenecek ceza puanı.
IMMUNITY_TIME: 2000 → Işınlanma/Giriş sonrası dokunulmazlık süresi (Milisaniye).
SAFE_LIMIT: 5000.00 → Maksimum güvenli mesafe. Bunu çok fazla düşürmeyin Okçuların Limitleri yüksek oluyor.
AF_TIME: 500 → Ceza puanının azalması için gereken bekleme süresi.
AF_AMOUNT: 5 → Belirlenen sürede silinecek ceza puanı miktarı.
TIMER_LIMIT: 50 → İki paket arasındaki kabul edilen minimum yasal süre.

[KALIBRASYON]
CALIB_ATK_REF: 1200.00 → Standart saldırı hızı baz çarpanı. Hile paketlerine göre hasar silmek üzere hazırlanmıştır. Fazla atak silerse arttırılabilir.
CALIB_ATK_MAX: 250 → Sunucunun kabul edeceği maksimum saldırı hızı (Stat penceresindeki değer).
CALIB_ATK_BASE: 100 → Temel saldırı hızı (Hiç hız bonusu yokken).
CALIB_SHOT_REF: 4500.00 → Ok atış hızı baz çarpanı.
CALIB_SHOT_MAX: 250 → Okçular için izin verilen maksimum atış hızı statı.
CALIB_SHOT_BASE: 100 → Okçular için temel atış hızı.

ARKADAŞLAR VİDEO ÇEKERKEN HATAYLA DURDU, O YÜZDEN 1. VİDEO Kalibrasyon Örneği, 2. VİDEO Hile Testleri (Ekranı çekmemiş aslında orada Test için CheatEngine açmıştım)



 

Dosya Eklentileri

  • HackFIX.rar
    HackFIX.rar
    7,9 KB · Gösterim: 9
  • hackfix_ayar.txt
    hackfix_ayar.txt
    755 byte · Gösterim: 8
Son düzenleme:
Eline emeğine sağlık güzel bir iş çıkarmışsın
 
başarılı eline sağlık oyuncuyu dağlara çıkarmadan çıkar çıkmaz dclemen daha iyi olur bence vuruş hızı hareket hızı yükseldiğinde log olarak geliyorum hangi oyuncunun aştığı ve bot kontrol ekranı çıkınca hala atak yapabiliyormu vuruş animasyonları değiştiğinde hızlı vurmaya başladığında direk oyundan atmak daha mantıklı bence
 
başarılı eline sağlık oyuncuyu dağlara çıkarmadan çıkar çıkmaz dclemen daha iyi olur bence vuruş hızı hareket hızı yükseldiğinde log olarak geliyorum hangi oyuncunun aştığı ve bot kontrol ekranı çıkınca hala atak yapabiliyormu vuruş animasyonları değiştiğinde hızlı vurmaya başladığında direk oyundan atmak daha mantıklı bence
Yorum için teşekkür ederim. Dağlara çıkmadan DC sistemi için çok kolay bir yol ekledim; 30 saniye muafiyeti var, dilerseniz onu 10 saniyeye de düşürebilirsiniz. Ben oyuncunun yazma hızını düşünerek biraz esnek bıraktım. Captcha atma sebebi, her zaman doğru Duvar tespiti yapamayabilir (Lag vb farktörler), hilesiz oyuncuyu mağdur etmemek adına, hileli oyuncuya da geçiş vermemek adına böyle bir plan oluşturdum. Puan sistemine göre işliyor 100 puana göre skor belirleyip bunu da 35 artacak şekilde yaptım. Dilerseniz tek puana da çekebilirsiniz 35 i direk 100 e tamamlayabilirsiniz. Böylece normal oyuncuya ara ara gelecek uyarı, hile kullanıcısına direk gelir ve sıkar. Yüksek hızlarda log mantığını lInterval eklemesi ile iki vuruş arası ms süresini baz alarak hilecinin imkansız vuruşlarını yakalamayı hedefledim. Ama oyuncuyu sıkmamak adına herhangi bir captcha değil de kalibrasyon sonrası fazla yapılan atakları return false mantığı ile boşa çıkardım. Bunu da battle.cpp deki eklemelerle netleştirmeye çalıştım. Captcha geldikten sonra oyuncuyu ataksız bıraktım ki hile ise ölmeyi beklesin. Hile yapan saniyelik captcha alır mantığı ile kurdum aslında. Log konusuna gelecek olursak Debug 1 oyundaki attığın adıma kadar bütün logları kapsar onu ölçümlemeleri yaparken kullandım daha öğrenme prensibini kurmadan önce ölçümler alıyordum Cheat Engine ile vs... daha sonra onu 2 bir eklenti ile Debug 0 olduğu zaman sadece hile uyarılarını log tutacak bir yapı kurdum. Bot kontrol olayını da sabit süreler ile ezberlenmesinden ziyade vuruşa dayalı bir sistem koydum. Kişi oyundan düşmediği veya ışınlanmadığı sürece Moblara vurduğu atak sayılır ve belirlenen değere ulaşınca Bot Kontrol gelerek oyuncudaki atak yapsa bile vuruşu boşa düşürür. Bot sistemi için de yine ayar menüsünde istediğin kadar vuruş ekleme özelliği koydum. Bunun dışında oto av sistemi olan oyunları düşünerek Metin taşlarına ve Metin slotlarına metine vurarak öldürdüğün sürece sayı saymayacak yani bot takibi yapmayacak ekleme yaptım GetTarget yapısı ile Metin taşına vurduğu sürece Bot Kontrolünü kapattım bir nevi. Aklınıza takılan başka birşey varsa memnuniyet ile cevap verebilirim :)
 
Geri
Üst