BSP Protection ve sızıntılar

BSP Obfuscation nedir: GMod haritaları için ne sağlar

BSP Obfuscation, derlenmiş bir haritayı normal çalışacak ama zor geri kurulacak şekilde değiştirir. Nasıl çalışır, neler ters gidebilir, sınırı nerede.

BSP Obfuscation, derlenmiş bir haritanın temsil ediliş biçimini değiştirir. Motor haritayı normal şekilde yüklemeye devam eder, yeniden yapılandırma araçları ise daha az kullanışlı sonuçlar üretir. Haritayı okunamaz hale getirmez ve bir kopya koruması değildir. Amacı, rahatça decompile edip üzerinde çalışmaya devam etmeyi daha zahmetli kılmaktır.

Obfuscation bir BSP için ne anlama gelir

Terimi program kodundan biliyor olabilirsin: Obfuscation uygulanmış bir script eskisiyle aynı işi yapar ama insanların onu takip etmesi zordur. Bir haritada da fikir benzerdir.

Bir BSP iki tür bilgi içerir. Birinci türe motor, haritayı render etmek ve simüle etmek için ihtiyaç duyar. İkinci tür ise ağırlıklı olarak insanlara ve editörlere yardımcı olur: açıklayıcı yollar, editör ID'leri, çalışma sürecinden kalan artıklar.

Obfuscation ikinci türü hedefler ve birkaç adımda çalışabilir:

  • Bilgiyi azaltmak. Motorun ihtiyaç duymadığı her şey gidebilir. Entity'lerdeki editör ID'leri de, yanlışlıkla pakfile içine girmiş kaynak dosyalar, compile log'ları ve yedek artıkları da buna dahildir. Bu kısma Cleanup da denir.
  • Temsili değiştirmek. Dosya, rahat bir editör sürümüne daha az doğrudan geri çevrilebilecek şekilde yeniden kurulur. Materyal yolları açık bir örnektir: açıklayıcı bir yol nötr bir yola dönüşür, haritadaki referanslar da buna göre uyarlanır.

Obfuscation neleri zorlaştırır

  • Otomatik yeniden yapılandırma. Decompiler, daha fazla elle çalışma gerektiren, daha az temiz sonuçlar üretir. Bir decompile'ın normalde neleri geri verdiğini BSP decompile nedir yazısı anlatıyor.
  • Yön bulma. Açıklayıcı adlar ve yollar olmadan başkasının haritasını anlamak daha uzun sürer.
  • İçeriğin yeniden kullanımı. Yeniden adlandırılmış materyalleri tanımak ve başka projelere taşımak daha zordur.
  • İş akışına bakış. Kaldırılan kaynak dosyalar ve log'lar artık klasörler, araçlar ve ara sürümler hakkında hiçbir şey ele vermez.

Harita yine de çalışmak zorunda

Her Obfuscation için en önemli koşul şudur: harita tam olarak eskisi gibi yüklenmeli ve oynanmalıdır. Bu, nelerin değiştirilebileceğini sınırlar.

AlanNeden korunmak zorunda
Entity adları (targetname)Harita mantığı ve sunucu script'leri entity'lere bunlar üzerinden erişir
Entity'ler arasındaki bağlantılarKapılar, butonlar ve trigger'lar input ve output'lara bağlıdır
Entity sınıflarıMotor nesneleri sınıf adına göre oluşturur
Materyal, model ve ses referanslarıHer referans var olan bir dosyaya işaret etmek zorundadır
Header, lump tablosu, offset'lerTutarlı bir yapı olmadan harita yüklenmez

Bir materyal yolu, tüm referanslar onu izlemeden yeniden adlandırılırsa oyunda eksik texture'ların dama desenini görürsün. Ciddi bir yöntem bu yüzden işlemden sonra çıktıyı yeniden doğrular ve bu kontrolden geçemeyen bir dosyayı teslim etmez.

Yine de yapısal bir kontrol, oyundaki testin yerini tutmaz. Obfuscation uygulanmış bir harita yayına girmeden önce onu sunucunda bir kez baştan sona gözden geçir:

  1. Haritayı bir test sunucusunda yükle ve konsolda hata olup olmadığına bak.
  2. Haritayı dolaş, texture'lara, modellere ve yansımalara bak.
  3. Kapıları, butonları, trigger'ları ve teleporter'ları tetikle.
  4. Harita entity'lerini hatırlayan addon'ları kontrol et, örneğin kapı atamalarını ya da kalıcı olarak yerleştirilmiş nesneleri.
  5. Haritayı normal indirme yolundan alan ikinci bir istemciyle katıl.

Bu arada 4. madde bir haritanın her yeni sürümü için geçerlidir, sıradan bir güncellemeden sonra da.

Obfuscation'ın sınırları

Motor, yükleme için ihtiyaç duyduğu her şeyi okuyabilmek zorundadır. Bundan kesin sınırlar doğar:

  • Obfuscation uygulanmış bir harita prensipte analiz edilebilir kalır.
  • Decompiler'lar gelişmeye devam eder. Bugün yüksek olan bir engel yarın daha alçak olabilir.
  • Yeterince zaman verildiğinde her harita elle yeniden yapılabilir.
  • Obfuscation, dosyanın değiştirilmeden kopyalanıp başka bir sunucuda kullanılmasını engellemez.
Obfuscation şuna karşı işe yararObfuscation şuna karşı işe yaramaz
rahatça decompile edip üzerinde çalışmaya devam etmekbitmiş dosyayı kopyalamak
başkasının haritasını hızlıca anlamakbaşka sunucularda kullanmak
içeriği başka projelere taşımakelle yeniden yapmak

Sağdaki sütunu başka araçlar karşılar. Fingerprint kopyaları izlenebilir kılar, bir Server-Exclusive harita ise yalnızca lisanslı bir sunucuda tam olarak çalışır. Parçaların birbirine nasıl oturduğunu GMod haritanı sızıntılardan koru yazısı açıklıyor.

bspmarket.de'de Obfuscation

bspmarket.de'nin BSP Protection hizmetinde Obfuscation başlı başına bir koruma seviyesidir. Site hedefi açıkça okunamazlık olarak değil, tipik yeniden yapılandırma yollarını zorlaştırmak olarak tanımlar. Şu noktalar herkese açık biçimde belgelenmiştir:

  • Obfuscation birden fazla kontrollü katmanda çalışır.
  • Yalnızca materyal yolları yeniden adlandırılır. Entity adları ve targetname'ler korunur, böylece sunucu script'leri çalışmaya devam eder.
  • Çıktı dosyası yeniden doğrulanır. Bu başarısız olursa bozuk bir harita yerine hiç sonuç verilmez.
  • Orijinal dosya değiştirilmez, koruma ayrı bir çıktı oluşturur.
  • Yalnızca başarıyla tamamlanan bir işlem için ücret ödersin.
  • Yayından önce hedef sunucuda bir test yapman yine de önerilir.

Hangi ayrıntıların bilinçli olarak yayınlanmadığını ve bunun nedenini Koruma nasıl çalışır sayfası açıklıyor.

Sık sorulan sorular

Obfuscation haritanın görünüşünü ya da oynanışını değiştirir mi?

Değiştirmemesi gerekir. İşlev açısından önemli adlar ve referanslar korunur, çıktı da yapısal olarak kontrol edilir. Kendi sunucunda kısa bir test yine de yapmaya değer.

Obfuscation decompile etmeyi imkânsız kılar mı?

Hayır. Tipik decompile denemelerini zorlaştırır ve işe yarar editör bilgisini azaltır. Source haritalarında decompile ihtimali dışlanamaz.

Obfuscation uygulanmış bir haritayı sonradan düzenleyebilir miyim?

Obfuscation uygulanmış BSP'yi düzenlemezsin. VMF'ni düzenler, yeniden derler ve yeni sürümü tekrar korursun. Bu yüzden VMF'yi ve orijinal BSP'yi her zaman güvenli bir yerde sakla.

Zaten Fingerprint kullanıyorsam Obfuscation'a ihtiyacım var mı?

İkisi farklı sorunları çözer. Fingerprint bir kopyayı izlenebilir kılar, Obfuscation ise üzerinde çalışmaya devam etmeyi zorlaştırır. Birlikte, her birinin tek başına sağladığından fazlasını kapsarlar.