फ़ाइलों के लिए कस्टम सामग्री पैकेज


13

मैं अपने गेम के प्रोटोटाइप के लिए एक वेबसाइट से काफी कुछ मॉडल पैक खरीदने वाला हूं। अनुबंध में यह कहा गया है कि मुझे उनकी सुरक्षा करनी चाहिए ताकि जनता को उन तक पहुँचने से रोका जा सके।

मुझे याद है कि वाल्व गेम के साथ काम करना, उन्होंने .gcf (गेम सामग्री फ़ाइल) का उपयोग किया था जो मूल रूप से प्रत्येक गेम के लिए सभी सामग्री का एक संग्रह था। उन्होंने ध्वनि / सामग्री / मॉडल / नक्शे / आदि में पैक किया। मुझे लगा कि यह कुछ इसी तरह का विकास करने के लिए एक बुरा विचार नहीं हो सकता है, और मुझे इससे फ़ाइलों को जोड़ने / हटाने के लिए एक छोटा सा उपकरण लिखें।

समस्या यह है कि वास्तव में मुझे नहीं पता कि इस तरह से कुछ शुरू करने के बारे में कैसे जाना जाए। मैंने Google की कोशिश की, लेकिन मुझे यह भी नहीं पता था कि क्या खोजना है। अगर किसी के पास कोई विचार है, लिंक जो उपयोग का हो सकता है, या कुछ और मैं इसकी बहुत सराहना करूंगा।

जवाबों:


9

अपने डेटा को थोड़ा अस्पष्ट संग्रह प्रारूप जैसे 7-ज़िप में संग्रहीत करें ।

उन्हें एक अलग फ़ाइल एक्सटेंशन दें ताकि एक आकस्मिक उपयोगकर्ता अपने ज़िप प्रोग्राम के साथ आसानी से उन्हें न खोल सके।

उन फ़ाइलों को पढ़ने और उन तक पहुंचने के लिए फिजियो का उपयोग करें । यह आपको अपनी स्थानीय निर्देशिका में फ़ाइलों के साथ भी काम करने देता है, ताकि आप अपने पैकेजों को फिर से बनाए बिना नए संसाधनों का आसानी से परीक्षण कर सकें। अत्यधिक सिफारिशित।

सामग्री पर बहुत तुच्छ एन्क्रिप्शन पर विचार करें, जैसे। XOR एन्क्रिप्शन । अपने पैकेज बनाने के लिए थोड़ा बैच फ़ाइल या स्क्रिप्ट लिखें, डेटा को एन्क्रिप्ट करते हुए जैसे ही वह अंदर जाता है, और अपने गेम में डेटा को डिक्रिप्ट करने के लिए उसी फ़ंक्शन का उपयोग करें।

यह निर्धारित उपयोगकर्ता को बाहर नहीं रखेगा - कुछ भी नहीं करेगा। लेकिन यह आपके मॉडल पैक की आवश्यकताओं को पूरा करने के लिए काफी अच्छा होगा।


किसी ने मुझे दूसरी रात फिजियो की सिफारिश की। अच्छा सा पुस्तकालय।
ग्रेफेड

8

यदि आप केवल प्रोटोटाइप कर रहे हैं, तो मैं आपकी संपत्तियों को GCF / ZIP / PAK फ़ाइल में पैक करने के बारे में चिंता नहीं करूँगा; जनता आपके प्रोटोटाइप को देखने नहीं जा रही है!

इसके अलावा, वाल्व जीसीएफ आपकी सामग्री के लिए एक ज़िप फ़ाइल के रूप में अधिक सुरक्षा प्रदान करता है - यानी शून्य। फ़ाइल एन्क्रिप्टेड नहीं है; आप अपनी सामग्री को ब्राउज़ करने और निकालने के लिए GCFScape डाउनलोड कर सकते हैं।

जब तक आप विशिष्ट आवश्यकताओं है यह अपने स्वयं के पैक फाइल सिस्टम बनाने में प्रयास डाल लायक नहीं है अभी ज़िप फाइल या ओएस उसकी अपनी फ़ाइल पहुँच तंत्र द्वारा पूरा नहीं किया जा रहा है कि; वास्तव में, केवल कारण जो मैं सोच सकता हूं:

  • कंटेंट ऑबफ्यूशन (अपनी फाइलों को छेड़छाड़ से मुक्त रखना इसके उपयोग हैं; मैं अभी भी आपकी मौजूदा जरूरतों के लिए इसका ओवरकिल सुझाव देता हूं)
  • किसी भी तरह से आपकी सामग्री को डेटा-ड्राइव करने में मदद करने के लिए एक विशिष्ट गेम में अतिरिक्त प्रति-फ़ाइल मेटाडेटा संग्रहीत करना,
  • ओएस की फाइल सिस्टम सीमाओं के आसपास हो रही है, जैसे कि हजारों छोटी फ़ाइलों को जल्दी से एक्सेस करने की आवश्यकता, या सन्निहित डेटा एक्सेस सुनिश्चित करना। (कंसोल पर काम करते समय यह एक डिफैक्टो की जरूरत है।)

मैं पूरी तरह से सहमत हूँ। समस्या यह है कि, मैं किसी प्रकार के संरक्षण के बिना डेमो जारी नहीं कर पाऊंगा। ज़िप बहुत अच्छी तरह से जाना जाता है, PAK उसी के बारे में है। कस्टम प्रारूप के साथ एटलस्ट (वाल्व को CTX कुंजी की आवश्यकता होती है जो GCF फ़ाइलों तक पहुंचने के लिए गेम इंजन में हार्डकोड किया जाता है) औसत जो सिर्फ उस पर एक निष्कर्षण उपकरण चलाने और अंदर जाने में सक्षम नहीं होगा।
Aidan Knight

वाह, एहसास नहीं था कि लाइन नीचे नहीं जाएगी। वैसे भी, मुझे यह nemesis.thewavelength.net/index.php?p=35 मिला, जो एक खुला स्रोत लीब प्रतीत होता है जो जीसीएफ कार्यक्षमता को वाल्व गेम से स्वतंत्र प्रदान करता है। समस्या मैं यहाँ देख रहा हूँ कि यह बहुत ज्यादा मजबूत है, और मैं बाद में विस्तार करने के लिए एक मूल संस्करण बनाने के लिए कुछ और सरल की तलाश कर रहा था। (ईमानदार होने के लिए, जिस तरह से वह कोड मेरे सिर को चोट
पहुंचाता है

4
जिज्ञासा से बाहर, इस अनुबंध का उल्लेख है कि आप कैसे उनकी सामग्री की रक्षा करने वाले हैं?
ब्लेयर होलोवे

2
यही तो बात है! चूंकि आप वास्तव में इसे सुरक्षित नहीं कर सकते हैं , यह आपके लिए अनिवार्य है (यदि आप बेवकूफ नहीं हैं) यह जानने के लिए कि ये अक्षम व्यक्ति आपको क्या करना चाहते हैं। अन्यथा आप जो कुछ भी करते हैं, क्योंकि यह काम नहीं करेगा, आपको उत्तरदायी ठहराया जा सकता है (कुछ ऐसा नहीं करने के लिए जो पहली जगह में नहीं किया जा सकता है)।
ओ ० '।

3

यह आवश्यकता, अच्छी तरह से, बकवास है।

चूंकि खेल डेटा तक पहुंच सकता है, और उपयोगकर्ता के पास गेम तक पहुंच है, अगर वह कुशल और निर्धारित है कि वह रिवर्स-इंजीनियर का प्रबंधन करेगा जो आपने डेटा को स्टोर करने के लिए उपयोग किया था और यदि आप पर्याप्त मूर्ख थे, तो अंतिम कुंजी को पकड़ो। इसे एन्क्रिप्ट करने के लिए।

आप सुरक्षा नहीं जोड़ सकते। मैं दोहराता हूं: आप सिर्फ सुरक्षा नहीं जोड़ सकते । आप केवल अस्पष्टता जोड़ सकते हैं, और अस्पष्टता पूरी तरह से व्यर्थ है, क्योंकि - जैसा कि मैंने कहा - पर्याप्त कौशल और दृढ़ संकल्प वाला उपयोगकर्ता बस इसे तोड़ देगा।

ऐसा कुछ भी साइन न करें जो आपसे कुछ मांगे जो नहीं किया जा सकता है।


1
अस्पष्टता व्यर्थ नहीं है क्योंकि अधिकांश उपयोगकर्ताओं के पास "पर्याप्त कौशल और दृढ़ संकल्प" नहीं है। वही आपके घर को सुरक्षित करने के लिए जाता है: जो कोई भी वास्तव में प्राप्त करना चाहता है, वह ऐसा कर सकता है, लेकिन यह अभी भी सार्थक माना जाता है कि यह उनके लिए अजीब है।
काइलोटन

प्रतिवाद: अस्पष्टता व्यर्थ है क्योंकि आपके घर में टूटने के विपरीत, एक बार जब कोई आपके खेल में टूट जाता है तो वे ऐसा करने के लिए किसी और के लिए तुच्छ बना सकते हैं। (दूसरी ओर - अस्पष्टता व्यर्थ नहीं है, क्योंकि ब्रेट को मॉडल की आवश्यकता है। मुझे नहीं लगता कि

अगर कोई आपके घर से सोने का टुकड़ा चुराता है, तो उसके पास आपके सोने का टुकड़ा है। यदि कोई आपके डेटाफ़ाइल से आपके कीमती मॉडल को पकड़ लेता है, तो वह जितनी चाहे उतनी प्रतियां कर सकता है। तो, नहीं, यह उदाहरण काम नहीं करता है क्योंकि यहां यह पूरी तरह से मायने नहीं रखता है कि कितने लोग आपकी बेकार सुरक्षा के माध्यम से दरार करते हैं: एक पर्याप्त है।
ओ ० '।

एक पर्याप्त है, दूसरों की देखभाल करने के लिए पर्याप्त है कि वे अपनी स्थानीय फ़ाइलों को देखना बंद करें और ऑनलाइन देखने के लिए जाएं, और किसी को ऑनलाइन सामान पोस्ट करने के प्रयास में गए (जो कि अवैध है, जबकि आपकी स्थानीय कॉपी नहीं है), या पोस्टिंग निर्देश, जो मानते हैं कि आपके पास उनके साथ गुजरने का धैर्य है। हर छोटी चीज़ मदद करती है।
काइलोटन

1
हर छोटी मदद के लिए क्या ? अपने डेटा को देखने से उपयोगकर्ताओं को रोकना और इसके बारे में कुछ भी नहीं करना इतना व्यर्थ है जो मुझे दुखी करता है। यह मुहावरेदार आवश्यकता सबसे निश्चित रूप से अन्य लोगों को उन डेटा को फिर से उपयोग करने से रोकने के लिए मौजूद है, इसलिए आपको केवल निर्धारित लोगों के बारे में ध्यान रखना होगा जो कठिन प्रयास करेंगे और सफल होंगे (क्योंकि, जैसा कि मैंने कहा, लंबे समय में वे बस असफल नहीं हो सकते) ।
ओ ० '।

1

बहुत बार मैंने देखा है कि कस्टम कंटेंट पैकेज एक अलग एक्सटेंशन के साथ .zip या .rar आर्काइव करते हैं। बेशक, यह अच्छा नहीं है यदि वेब साइट किसी प्रकार का कस्टम एन्क्रिप्शन चाहती है।


हाँ, ओग्रे पहले से ही ज़िप फ़ाइल के माध्यम से संसाधनों में लोडिंग का समर्थन करता है। किसी ने एक चैट रूम में जिप फाइल को पास करने का उल्लेख किया है, लेकिन उन्हें क्रैक करने के लिए आस-पास टूल की मात्रा के साथ, यह वास्तव में कोई पहली पसंद नहीं है। मैं वास्तव में .gcf फ़ाइलों के समान कुछ करना चाहता हूं जो वाल्व उपयोग करता है, लेकिन मुझे यह भी नहीं पता है कि शुरू होने तक क्या खोज करना है।
ऐदन नाइट

अगर कोई आपकी ज़िप फ़ाइल को क्रैक करता है, तो यह आपकी समस्या कैसे है? वास्तव में। वे कुछ भी आप उन पर फेंक सकते हैं दरार कर सकते हैं। आपने कोशिश की। आप इन लाइसेंसधारियों को आपके लिए ज़िम्मेदार ठहराए जाने के लिए लाइन कहाँ से खींचेंगे?
Neverender

1

कुछ विचार:

1] क्या आपने एक मानक मॉडल प्रारूप (जैसे .obj, या .x) का उपयोग किया है या क्या आप अपने खेल में सीधे लोड करते समय एक कस्टम मॉडल प्रारूप का उपयोग करते हैं? यदि आपको एक कस्टम प्रारूप मिल गया है, और किसी को इसे उपयोगी रूप में प्राप्त करने के लिए अपने मॉडल प्रारूप को रिवर्स इंजीनियर करना होगा, तो आपको पहले से ही अवसरवादी संपत्ति रिपर के खिलाफ कुछ स्तर की सुरक्षा मिल गई है।

2] XOR एन्क्रिप्शन के बारे में Kylotan की बात बेहतरीन है, ध्यान दें कि आप अपने एन्क्रिप्शन स्ट्रिंग को दिखाते हुए अपने सोर्स डेटा में शून्य के लंबे क्रम से बचने के लिए एक छद्म यादृच्छिक संख्या उत्पन्न अनुक्रम (संभवतः फ़ाइलनाम पर हैश द्वारा वरीयता प्राप्त) का उपयोग करके एन्क्रिप्ट कर सकते हैं। बेशक, आपको लोड होने के तुरंत बाद अपनी फ़ाइलों को डिक्रिप्ट करना होगा, लेकिन अपनी एन्क्रिप्ट की गई फ़ाइल को पुनरारंभ करने योग्य ब्लॉकों में तोड़ने से आप कई थ्रेड्स पर इन-प्लेस डिक्रिप्शन को किक कर पाएंगे, अगर यह वास्तव में लोड-टाइम बोझ बन गया है । लेकिन मुझे गंभीरता से संदेह है कि "संरक्षण" के इस स्तर की आवश्यकता है - विशेष रूप से, जैसा कि दूसरों ने कहा है, निर्धारित आरा इसके चारों ओर मिलेगा। जैसे। एक DLL detour लाइब्रेरी का उपयोग करके ड्रॉ कॉल को इंटरसेप्ट करके और सीधे शीर्ष बफ़र्स / इंडेक्स बफ़र्स को पढ़कर।

3] आपको मूल परिसंपत्ति प्रदाता से सुरक्षा के लिए उनकी आवश्यकताओं के बारे में पूछना होगा, लेकिन यह सिर्फ आपके कार्यक्रम स्प्लैश स्क्रीन और / या अपने EULA के लिए संपत्ति कॉपीराइट के बारे में एक दोष जोड़ने की बात हो सकती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.