क्‍यों कुछ क्‍लाइंट्स में क्‍लाइंट की मेमोरी को एडिट करके उन्‍हें धोखा देने दिया जाता है?


19

गेम क्लाइंट की मेमोरी का संपादन कार्य क्यों करता है? क्‍यों ग्राहकों के साथ इतने "हैक प्रोटेक्‍शन" टूल आ रहे हैं?

अगर मैं एक क्लाइंट-सर्वर गेम डिज़ाइन करता, तो सर्वर (गेम की दुनिया का अनुकरण) में सब कुछ होता और ग्राहक केवल निष्क्रिय उपभोक्ता ही होते जो दुनिया के हिस्से का स्टेटस अपडेट प्राप्त कर रहे हों, केवल कुछ जानकारी भेज रहे थे जैसे कीस्ट्रोक या चाल / एक्शन कमांड। शायद मुझे यहाँ कुछ याद आ रहा है, लेकिन उस डिज़ाइन के साथ, क्लाइंट मेमोरी (यदि मूल्य बिल्कुल मौजूद है) में मेरे एसटीआर को 200 तक बढ़ाने जैसे कोई हैक, बस कोई प्रभाव नहीं पड़ेगा।

केवल एक ही व्याख्या मैं सोच सकता हूं कि गेम जिसमें मेमोरी एडिटिंग काम करता है, ग्राहक और सर्वर में सिमुलेशन के कुछ हिस्सों को चलाता है और फिर समय-समय पर सभी क्लाइंट को सिंक्रनाइज़ करता है। मैं समझ सकता हूं कि रियल टाइम स्ट्रेटेजी गेम्स के लिए एक निश्चित संख्या में खिलाड़ियों के साथ मैच के एक बार कॉन्फ़िगर होने के बाद, लेकिन क्यों, MMORPGs में? क्या यह सर्वर लोड को कम करने की रणनीति है?


2
सर्वर लोड के साथ-साथ, एक विलंबता समस्या भी है। उदाहरण के लिए, Minecraft सभी आंदोलन क्लाइंट-साइड को केवल इसलिए हैंडल करता है क्योंकि यह सबसे आसान समाधान है (शुद्ध क्लाइंट-साइड आंदोलन, क्लाइंट-साइड भविष्यवाणी या शिथिल आंदोलन)। (Minecraft की कोई भविष्यवाणी रूपरेखा नहीं है क्योंकि यह सामान्य रूप से एक धीमी गति से चलने वाला खेल है, इसलिए आंदोलन की भविष्यवाणी करना बहुत काम होगा और संभवतः अविश्वसनीय होगा)
user253751

जवाबों:


21

आदर्श होते समय, हर एक इनपुट को मान्य करना व्यावहारिक रूप से अनुचित है क्लाइंट के लिए इनपुट पुष्टि में कम्प्यूटेशनल लोड और विलंबता के संदर्भ में, सर्वर के खिलाफ ।

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

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


यह गेम क्लाइंट की मेमोरी को देखने में रुचि को समझाएगा और ऐसा होने से रोकने में रुचि रखेगा। मैंने जो आखिरी गेम खेला है, उसमें टेलीपोर्टेशन हैक मैंने व्यक्तिगत रूप से देखा है।
हाटरू हंसौ

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

5
"70 लोग" कम से कम परिमाण का एक क्रम है (कई, वास्तव में) उन लोगों के प्रति सर्वर से कम लोग जो मैंने काम किया है। यह भी जान लें कि लगभग हर कोई कहता है कि वे सर्वर पर सब कुछ करते हैं, ठीक उसी तरह जिस तरह से हैकर विकासशील हैक पर पैर नहीं रखते हैं।

@slicedtoad मैं इसका उल्लेख करने वाला था। ध्यान दें कि चूंकि अधिकांश MMOs वैसे भी इंस्टेंस का उपयोग करते हैं, इसलिए ARKs विधि उन लोगों के अंदर काम कर सकती है। बड़ी मात्रा में खिलाड़ियों के लिए ऐसा करना अभी संभव नहीं है (अभी तक)।
मस्तूल

10

सुरक्षा के कारणों में से एक कारण यह है कि खेल की स्थिति को पढ़ने से बोट्स को खेल की स्थिति का पता चल सकता है और तदनुसार कार्य कर सकता है।

उदाहरण के लिए, एक पैराग्राफ में पीसना: अगर "बॉट" को पता है कि भीड़ क्या है, तो यह गेम क्लाइंट को भीड़ का चयन करने के लिए कमांड भेज सकता है, इसे तब तक हिट कर सकता है जब तक कि इसका जीवन 0 है, लूट, कुल्ला और दोहराएं। इसके साथ, भले ही सिमुलेशन में सभी परिवर्तन किए गए / सर्वर की पुष्टि की गई हो, कुछ खिलाड़ी धोखा दे सकते हैं। आदेशों को नकली माउस-क्लिक या की-डाउन या मेमोरी लेखन के माध्यम से भेजा जा सकता है।

यह उन कारणों में से एक है कि क्यों MMOs स्मृति सुरक्षा का उपयोग करते हैं।


ठीक है, बॉट्स के पास अधिक समझ है, भले ही आप खुद को भगवान मोड में नहीं डाल सकते हैं, आपके लिए सब कुछ करने वाला कार्यक्रम भी धोखा दे रहा है। लेकिन, जिस गेम को मैं खेल रहा था उसमें "हैकर्स" एक ही हिट में क्यों मार सकता है? ऐसा नहीं है कि गेम मेमोरी और सर्वर को संपादित करने का एक संकेत उन परिवर्तनों को मान्य करता है।
हाटेरू हंसो

1
@HatoruHansou हां। और कष्टप्रद हिस्सा यह है कि मानवरहित बॉट खुद से चल सकता है, इसलिए एक एकल स्वर्ण किसान कर्मचारी, ऑनलाइन पात्रों और सक्रिय 24 घंटे एक दिन की निगरानी वाले 10 कंप्यूटरों के एक समूह की कल्पना करें .... आपका MMO बर्बाद हो गया है। कुछ को अन्य खिलाड़ियों के लिए भी विशेष रूप से संभालना होगा ("मेरे मैदान पर मत रहो, यह मेरा कमरा है" (शुरुआत में .. वंश II))।
Vaillancourt

बिना नियंत्रण के बॉट जनसंख्या बढ़ने दें और आपका खेल बहुत जल्द व्यापार से बाहर हो सकता है। ठीक है, अकेले बॉट एंटी हैक प्रोटेक्शन को सही ठहराने के लिए पर्याप्त हैं। मैं उत्तर स्वीकार करने से पहले थोड़ी देर प्रतीक्षा करूंगा।
हाटोरू हंसौ

@HatoruHansou यकीन है :) मैं नहीं यकीन है कि मैं स्मृति संरक्षण के लिए सभी कारणों से वैसे भी है कर रहा हूँ :)
Vaillancourt

6

कई MMO के क्लाइंट-साइड हिट भविष्यवाणी के साथ डिज़ाइन किए गए हैं। इसलिए यदि क्लाइंट पर कोई हिट है, तो यह उस परिणाम को सर्वर पर भेजता है जो हिट था। इस मामले में सर्वर वास्तव में आधिकारिक नहीं है, और इस तरह धोखा संभव है।

ईमानदार होने के लिए, अगर मैं एक MMO डिजाइन कर रहा था, तो मैं सर्वर को पूरी तरह से आधिकारिक बना दूंगा, क्लाइंट के साथ केवल सर्वर पर क्लैंप किए गए इनपुट मान भेज रहा हूं, और सर्वर परिणाम को हल कर रहा है।

क्योंकि यह अभी तक कई MMO के द्वारा नहीं किया गया है, मैं केवल अतिरिक्त सर्वर लोड और 'रेस्पॉन्स लैग' के बारे में सोच सकता हूं, जो पूरी तरह से आधिकारिक सर्वर होने के साथ आता है, क्योंकि यह गेम की भावना और जवाबदेही को तोड़ता है।


यह मेमोरी हैक्स के प्रभावी होने की व्याख्या करेगा। क्या आपके पास लेखों / पत्रों के कुछ लिंक हैं जो किसी आधिकारिक सर्वर डिज़ाइन के बारे में नहीं हैं?
हाटेरू हंसौ

4
लोड केवल समस्या नहीं है - जवाबदेही महत्वपूर्ण है। किसी भी नेटवर्क के वास्तविक समय के खेल में विलंबता छुपाने की तकनीक नियोजित होनी चाहिए । यह सुनिश्चित करने के लिए कि हर कोई सहमत है, सर्वर के पास प्रत्येक क्लाइंट पर होने वाली घटनाओं को क्रमबद्ध करने का एक तरीका है - "मैंने तुम्हें पहले गोली मार दी" "नहीं, मैंने तुम्हें पहले गोली मार दी" जैसी स्थितियों से बचने की कोशिश कर रहा है। काउंटर-स्ट्राइक जैसे गेम के लिए स्पीडहैक इस सिंक्रोनाइजेशन को सर्वर आदि द्वारा कथित विलंबता में हेरफेर करने पर निर्भर करते हैं (यह एक कारण है कि अधिकांश सीएस सर्वर खिलाड़ियों को 100-200ms से अधिक विलंबता के साथ किक करते हैं)।
लुआं

3
जब तक आप एक सख्ती से टर्न-आधारित गेम नहीं बना रहे हैं, तब तक इसे आसानी से टाला नहीं जा सकता है। अक्षांश हमेशा मौजूद रहेंगे, और नेटवर्क गेम में शामिल सभी कंप्यूटर को घटनाओं को ऑर्डर करने के लिए "सामान्य समय" पर सहमत होने की आवश्यकता है। यहां तक ​​कि विलंबता का प्रबंधन करने के लिए सबसे अच्छी प्रणालियों के साथ, हमेशा असंगतताएं होंगी, लेकिन हम उन लोगों को छिपाने में बहुत अच्छे हैं। कहते हैं, ग्राहक एक ही राक्षस दो बार की हत्या करता है, तो यह दिखावा है कि दूसरी मारने हुआ पोस्ट करने के लिए अनुमति देता है - समस्या यह है कि एक बार आप उन छोटे बातें बनाने लगते हैं, यह द्वारा एक सूक्ष्म बग पर्ची आसान है है से पहले पहले मार। यह कठिन है
लुआं
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.