Dosyalar için Özel İçerik Paketi


13

Oyunumu prototiplemek için bir web sitesinden birkaç model paketi satın almak üzereyim. Sözleşmede, halkın onlara erişmesini önlemek için onları korumam gerektiğini belirtiyor.

Valve oyunlarıyla çalıştığımı hatırlıyorum, temelde her oyun için tüm içeriğin bir arşivi olan .gcf (oyun içerik dosyası) kullandılar. Ses / malzeme / model / harita / vb. Buna benzer bir şey geliştirmenin kötü bir fikir olmayabileceğini düşündüm ve sadece dosya ekleyip çıkarmama izin veren küçük bir araç yazdım.

Sorun şu ki, böyle bir şeye nasıl başlayacağımı bilmiyorum. Google'ı denedim, ancak ne arayacağımı bile bilmiyordum. Herhangi bir fikir, yararlı olabilecek bağlantılar, ya da başka bir şey varsa, ben çok takdir ediyorum.

Yanıtlar:


9

Verilerinizi 7-Zip gibi biraz belirsiz bir arşiv biçiminde saklayın .

Sıradan bir kullanıcının zip programlarıyla kolayca açamaması için onlara farklı bir dosya uzantısı verin.

Bu dosyaları okumak ve erişmek için physfs kullanın . Ayrıca, yerel dizininizdeki dosyalarla da çalışabilmenizi sağlar, böylece yeni kaynakları paketlerinizi yeniden oluşturmadan kolayca test edebilirsiniz. Şiddetle tavsiye edilir.

İçerik üzerinde çok önemsiz şifreleme düşünün, ör. XOR şifrelemesi . Paketlerinizi oluşturmak için küçük bir toplu iş dosyası veya komut dosyası yazın, verileri girildiği gibi şifreleyin ve oyununuzdaki verilerin şifresini çözmek için aynı işlevi kullanın.

Bu, kararlı bir kullanıcıyı dışarıda tutmaz - hiçbir şey yapmaz. Ancak model paketlerinizin gereksinimlerini karşılayacak kadar iyi olacaktır.


Birisi geçen gece bana fizik tavsiye etti. Güzel küçük kütüphane.
2016

8

Sadece prototip oluşturuyorsanız, öğelerinizi bir GCF / ZIP / PAK dosyasına paketleme konusunda endişelenmezdim; halk prototipinizi görmeyecek!

Dahası, Valve'in GCF'si içeriğiniz için ZIP dosyası kadar koruma sağlar - yani sıfır. Dosya şifreli değil; içeriğine göz atmak ve içeriğini çıkarmak için GCFScape'i indirebilirsiniz.

Şu anda ZIP dosyaları veya işletim sisteminin kendi dosya erişim mekanizması tarafından karşılanmayan özel ihtiyaçlarınız yoksa, kendi paket dosya sisteminizi yaratmaya çaba göstermeye değmez ; Aslında, aklıma gelen tek neden:

  • İçerik gizleme (dosyalarınızı müdahaleden uzak tutmak kullanımları vardır; Hala mevcut ihtiyaçlarınız için aşırı kullanılmasını öneriyorum),
  • İçeriğinizi bir şekilde veriye yönlendirmeye yardımcı olmak için ek dosya başına meta verileri oyuna özgü bir şekilde depolamak,
  • Binlerce küçük dosyaya hızlı bir şekilde erişmeye ihtiyaç duyma veya bitişik veri erişimini sağlama gibi işletim sisteminin dosya sistemi sınırlamalarını aşma. (Bu konsollar üzerinde çalışırken bir defacto ihtiyacıdır.)

Tamamen katılıyorum. Sorun şu ki, bir tür koruma olmadan bir demo yayınlayamayacağım. ZIP çok iyi biliniyor, PAK hemen hemen aynı. En az özel bir biçime sahip (Valve, GCF dosyalarına erişmek için oyun motoruna kodlanmış bir CTX anahtarı gerektirir) ortalama joe sadece bir çıkarma aracı çalıştıramaz ve içeri
giremez

Woops, enter'un bir çizgiden aşağı inmeyeceğinin farkında değildi. Her neyse, bu nemesis.thewavelength.net/index.php?p=35 Valve oyunlarından bağımsız olarak GCF işlevselliği sağlayan açık kaynaklı bir Lib gibi görünüyor. Burada gördüğüm sorun, çok sağlam olması ve daha sonra genişletmek için basit bir sürüm oluşturmak için biraz daha basit bir şey arıyordum. (Dürüst olmak gerekirse, kodlama şekli başımı incitir)
Aidan Knight

4
Merakla, bu sözleşme içeriklerini nasıl korumanız gerektiğinden bahsediyor mu?
Blair Holloway

2
mesele bu! Eğer bu yana olamaz gerçekten güvenli (aptal değilse), tam olarak bu kabiliyetsizler sen ne yapmak istediğinizi bilmek size göre zorunludur. Aksi takdirde, ne yaparsanız yapın, işe yaramayacağı için, sorumlu tutulabilirsiniz (ilk etapta yapılamayan bir şey yapmamaktan).
o0 '.

3

Bu gereklilik, saçmalık.

Oyun verilere erişebildiğinden ve kullanıcının oyuna erişimi olduğundan, yeteri kadar yetenekli ve yeterli ise, verileri saklamak için kullandığınız biçimi tersine çevirmeyi ve yeterince aptal olmanız durumunda nihai anahtarı yakalamayı başaracaktır. şifrelemek için.

Güvenlik ekleyemezsiniz. Tekrarlıyorum: sadece güvenlik ekleyemezsiniz . Sadece müstehcenlik ekleyebilirsiniz ve müstehcenlik tamamen anlamsızdır, çünkü - dediğim gibi - yeterli beceri ve kararlılığa sahip bir kullanıcı onu kıracaktır.

Size yapılamayacak bir şey soran hiçbir şeyi imzalamayın.


1
Belirsizlik anlamsız değildir çünkü çoğu kullanıcının "yeterli beceri ve kararlılık" yoktur. Aynı şey evinizi güvenceye almak için de geçerlidir: gerçekten içeri girmek isteyen herkes bunu yapabilir, ancak yine de onlar için garip hale getirmeye değer.
Kylotan

Kontrpuan: Belirsizlik anlamsızdır, çünkü evinize girmekten farklı olarak, birisi oyununuza girdiğinde, bunu başkalarının yapması önemsiz hale getirebilir. (Öte yandan - Müstehcenlik anlamsız değildir, çünkü Brett'in modellere ihtiyacı vardır. Ben sadece benzetmenin iyi olduğunu düşünmüyorum.)

Birisi evinizden bir parça altın çalarsa, sizin de altın parçanız vardır. Birisi değerli modelinizi veri dosyanızdan alırsa, istediği kadar kopya yapabilir. Yani, hayır, bu örnek işe yaramıyor çünkü burada değersiz korumanızdan kaç kişinin kaçtığı önemli değil: biri yeterli.
o0 '.

Biri, diğerlerinin yerel dosyalarına bakmayı ve bakmak için çevrimiçi olmayı bırakacak kadar önem verdiklerini varsayarak ve birilerinin çevrimiçi olarak (yerel olan kopyasını görüntülemenin yasak olduğu) şeyleri çevrimiçi olarak yayınlama çabasına gitmesini sağlaması veya yayınlaması onlarla geçinmek için sabrınız olduğunu varsayan talimatlar. Her küçük yardım.
Kylotan

1
Her küçük ne işe yarıyor ? Kullanıcıların verilerinizi izlemesini ve bu konuda hiçbir şey yapmamasını engellemek o kadar anlamsız ki beni üzüyor. Bu aptalca gereksinim kesinlikle diğer insanların bu verileri tekrar kullanmasını önlemek için var, bu yüzden sadece çok çalışacak ve başarılı olacak kararlı insanları önemsemek zorundasınız (çünkü dediğim gibi, uzun vadede başarısız olamazlar ) .
o0 '.

1

Çoğu zaman özel içerik paketlerinin farklı bir uzantıya sahip bir .zip veya .rar arşivi olma eğiliminde olduğunu fark ediyorum. Tabii ki, web sitesi bir tür özel şifreleme istiyorsa bu iyi değildir.


Evet, Ogre zaten zip dosyası aracılığıyla kaynaklara yüklemeyi destekliyor. Birisi sadece zip dosyasını şifreleyen bir sohbet odasında bahsetti, ancak onları kırmak için gereken araçların miktarı ile, gerçekten benim ilk tercihim değil. Valve'in kullandığı .gcf dosyalarına benzer bir şey yapmak istiyorum, ancak ne kadar aramaya başlayacağımı bile bilmiyorum.
Aidan Knight

Birisi zip dosyanızı bozarsa, sorun nasıl? Gerçekten mi. Onlara atabileceğiniz her şeyi kırabilirler. Denedin. Bu lisans vericilerin sizi neyin sorumlu tutabileceği konusunda nereden çizgi çekersiniz?
Neverender

1

Birkaç fikir:

1] Standart bir model formatı kullandınız mı (örn. .Obj veya .x) veya doğrudan oyununuza yüklerken özel bir model formatı kullanıyor musunuz? Özel bir biçiminiz varsa ve model biçiminizi kullanışlı bir forma dönüştürmek için tersine mühendislik yapmak zorunda kalırsanız, fırsatçı varlık sökücüye karşı zaten bir miktar korumanız var demektir.

2] Kylotan'ın XOR şifreleme hakkındaki noktası mükemmeldir, ancak şifreleme dizenizi gösteren kaynak verilerinizdeki uzun sıfır sıfıra dizilerinden kaçınmak için sözde rasgele sayı oluşturulmuş bir dizi (muhtemelen dosya adında bir karma ile tohumlanmış) kullanarak şifreleyebileceğinizi unutmayın. Tabii ki, yüklendikten hemen sonra dosyalarınızın şifresini çözmek zorunda kalacaksınız, ancak şifrelenmiş dosyanızı yeniden başlatılabilir bloklara bölmek, bu gerçekten bir yükleme süresi yükü olursa, birden çok iş parçacığında yerinde şifre çözmeyi başlatmanıza izin verecektir. . Ama bu "koruma" seviyesinin gerekli olduğundan şüphe duyuyorum - özellikle de diğerlerinin söylediği gibi, kararlı ripper bunun etrafında duracak. Örneğin. bir DLL dolambaçlı kitaplığı kullanarak çizim çağrıları keserek ve köşe tamponları / dizin arabelleklerini doğrudan okuyarak.

3] Orijinal varlık sağlayıcısına koruma gereksinimlerini sormak zorunda kalacaksınız, ancak bu sadece program açılış ekranınıza ve / veya EULA'nıza varlık telif haklarıyla ilgili bir bulanıklık eklemek olabilir.

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.