1. sayfa (Toplam 1 sayfa)

Oyun Dosyalarını CRC ile Koruma (Anti-Modlama Sistemi)

Gönderilme zamanı: Sal Haz 24, 2025 5:43 pm
gönderen admin
🔐 [REHBER] Oyun Dosyalarını CRC ile Koruma (Anti-Modlama Sistemi)
📅 Haziran 2025 | MMO.net.tr Geliştirici Alanı Güvenlik Rehberi
Açıklama yazdı: Oyuncuların client dosyalarını değiştirerek hile yapmalarını engellemek istiyorsan, oyun dosyalarının hash kontrolünü (CRC veya MD5) yapmalısın. Bu rehberde, Metin2 ve Knight Online PvP sunucularında sık kullanılan CRC kontrol sistemlerini nasıl kurabileceğini anlatıyoruz.
[hr]
📌 Nedir CRC Koruması?
  • CRC32: Dosya bütünlüğünü kontrol etmek için kullanılan bir tür dijital parmak izi
  • Launcher açıldığında belirli dosyaların hash değeri kontrol edilir
  • Dosyada oynama varsa oyun başlamaz veya log tutar
[hr]
📁 1. Metin2 için Basit CRC Sistemi

Lua tabanlı launcher sistemlerinde hash kontrolü yapılabilir. Aşağıdaki örnek “root.epk” dosyasını kontrol eder.

1. CRC Kontrol Scripti (crc_check.py)

Kod: Tümünü seç

import zlib

def get_crc(filepath):
    prev = 0
    for eachLine in open(filepath, "rb"):
        prev = zlib.crc32(eachLine, prev)
    return "%X" % (prev & 0xFFFFFFFF)

expected_crc = "8A1C93F0"  # root.epk dosyasının orijinal CRC değeri
actual_crc = get_crc("pack/root.epk")

if actual_crc != expected_crc:
    print("Dosya değiştirilmiş! Oyunu başlatamazsınız.")
    exit()
Kullanımı:
  • Launcher.exe içine gömülür (py2exe ile EXE'ye çevrilebilir)
  • Her açılışta dosyalar kontrol edilir
  • Fark varsa uyarı verir
[hr]
📁 2. Knight Online için CRC / MD5 Kontrolü

Knight Online clientlerinde dağınık TBL, FX ve UI dosyalarını kontrol etmek için MD5 kullanımı yaygındır.

1. MD5 Hash Kontrol Scripti (verify_files.php)

Kod: Tümünü seç

<?php
$expected = [
  "Data/Skill.tbl" => "d41d8cd98f00b204e9800998ecf8427e",
  "Data/Item.tbl" => "2d2d2d8e84d8fa25e54d5e58d3fa6ff9"
];

foreach ($expected as $file => $md5) {
  if (md5_file($file) !== $md5) {
    echo "Hatalı dosya: $file";
    exit;
  }
}
echo "Dosyalar doğrulandı.";
?>
Launcher Kullanımı:
  • Launcher EXE’si PHP veya Python betiğini çalıştırır
  • Dosyalar doğrulanmazsa oyun başlamaz
  • “clean.log” veya benzeri bir log tutabilir
[hr]
📌 Alternatif: .crc Dosyasıyla Kontrol
Oyun dizinine özel bir “hashlist.crc” dosyası yerleştirilip, her açılışta bu dosya ile client dosyalarının birebir karşılaştırılması yapılabilir.

Örnek satır:

Kod: Tümünü seç

root.epk: 8A1C93F0
root.eix: 2B1D9987
intro.mpg: 7C3A8EF1
Bu listeyi launcher “C” veya “C++” modül ile karşılaştırır.

[hr]
🛠️ Ekstra Dosyalar (Yakında eklenecek):
  • Python tabanlı CRC karşılaştırıcı GUI arayüz
  • PHP MD5 kontrol paneli (.htaccess korumalı)
  • Hazır launcher EXE örneği (shell wrapper)
[hr]
🧠 Geliştirici Notları:
  • Oyuncuların client tarafında dosya değiştirmesini %100 engellemek zordur. Ama tespit etmek mümkündür.
  • En iyi çözüm: Launcher → Dosya kontrolü → Güncel değilse update → Hash kontrolü → Oyun başlat
  • Dosyaların yedeğini alırken hash değeri de saklanmalı
[hr]
✔️ Sıradaki Rehberler:
  • [REHBER] Otomatik Sunucu Restart (Çökme Sonrası)
  • [SCRIPT] Oyun Giriş Loglama Sistemi (PHP + MySQL)
  • [PAYLAŞIM] Güncel AntiCheat Yapılandırmaları
🎯 MMO.net.tr Geliştirici Ekibi olarak başarılar dileriz!
CRC kontrolü konusunda daha gelişmiş örnekleri yakında yayınlayacağız. ✌️