मैं स्मृति-संशोधन धोखा कैसे रोकूं?


10

आजकल कई मेमोरी-चेंजिंग प्रोग्राम हैं ( चीट इंजन एंड को)। क्या एक स्थिर चर वास्तव में स्थिर रखने का एक कुशल तरीका है ?

मेरे पास दो विचार थे:

  1. एक स्थिर मान को निरंतर चर को अद्यतन करने के लिए एक अलग धागा बनाएं, जैसे कि हर मिनट 200। समस्या: एक दूसरे मूल्य को भी बदल सकता है।
  2. सर्वर पर मान संग्रहीत करें। समस्या: मैं नेटवर्क ट्रैफ़िक को कम से कम रखना चाहता हूं।

मुझे इस तंत्र की जरूरत है दोनों स्थिरांक और चर के लिए केवल एक निश्चित श्रेणी के मानों की अनुमति है।

क्या ऐसा करने के बेहतर तरीके हैं?


1
उनमें से कोई भी काम नहीं करेगा। एक स्थिति में, धोखेबाज़ को '200' मूल्य को ओवरराइट करना पड़ता है जिसे आप कॉपी कर रहे हैं और यह मूल को ओवरराइट करने से ज्यादा कठिन नहीं है। स्थिति 2 में, धोखेबाज़ अब नेटवर्क पर प्राप्त बाइट्स को बदलकर, बिना अपने प्रोग्राम को बदलकर भी मान बदल सकता है (उदाहरण के लिए, स्थानीय प्रॉक्सी के साथ)
जिमी

6
मैंने अभी तक एक धोखा सुरक्षा को देखा है जिसे एक हैकर द्वारा अक्षम नहीं किया जा सकता है। बस यकीन है कि आप खेल को वैध उपयोगकर्ताओं के लिए एक जीवित दुःस्वप्न नहीं बनाते हैं, अपने खिलाफ धर्मयुद्ध में :) :)

1
संबंधित ; अधिक विशिष्ट, लेकिन अन्यथा समान।
एको

1
अधिकांश खेलों में "ट्रेनर" हैं। मेरा मतलब है, नर्क, यहां तक ​​कि मास इफेक्ट: एंड्रोमेडा में एक ट्रेनर है, और यह केवल एक हफ्ते से थोड़े समय के लिए बाहर है। मैं कहता हूं कि इसकी भी चिंता मत करो। यदि प्रमुख गेम कंपनियां इससे बच नहीं सकती हैं, तो आपको क्या लगता है कि आपके पास एक मौका है?
क्राइथिक

जवाबों:


21

यदि आपका गेम सिंगलप्लेयर है: यह संभव नहीं है, लेकिन आपको परवाह नहीं करनी चाहिए

यदि आपका गेम मल्टीप्लेयर है: तो आपको सर्वर पर अपने सभी महत्वपूर्ण राज्य को स्टोर करना चाहिए, जो कि स्थानीय मशीन की तुलना में हैक करना बहुत कठिन है।


4
एक आधिकारिक सर्वर बनाकर मल्टीप्लेयर धोखाधड़ी से बचाव करना बहुत आसान है और केवल क्लाइंट पक्ष पर राज्य की भविष्यवाणी करना है। मूल रूप से, केवल ग्राहक से सर्वर पर प्लेयर इनपुट भेजें, न कि "मैंने xनुकसान किया y"।
jmegaffin

वास्तव में @ बोरेलगेम्स, यही मेरा मतलब है "सर्वर पर सभी महत्वपूर्ण स्थिति को स्टोर करें"।
जकोरा

बस थोड़ा स्पष्ट करना चाहता था :)
jmegaffin

11

यह नहीं किया जा सकता है , https://security.stackexchange.com/a/4639 DRM के बारे में है, लेकिन वही कुछ भी लागू होता है जो उपयोगकर्ता एंटी-चीट तंत्रों सहित अपने कंप्यूटर पर नहीं चाहता है। (जो DRM से भी कठिन होने की प्रवृत्ति है।)

लेकिन आप क्यों करेंगे, वास्तव में आप क्यों करेंगे? यह आपके ग्राहकों का कंप्यूटर है, आपका नहीं है, ग्राहक अपने कंप्यूटर के साथ जो कुछ भी करना चाहता है, उसके साथ करता है। आपको इसके बारे में कोई अधिकार नहीं है। यदि ग्राहक को यह पसंद नहीं है तो आपका प्रोग्राम हटा दिया जाता है।

मल्टीप्लेयर गेम के लिए यह बाइनरी को चालू करने के बारे में नहीं है, लेकिन संचार को डिजाइन करना है। उपयोगकर्ताओं को केवल "मुझे 20000 अंकों के साथ जीत मिली है" भेजने से काम नहीं चलता है, न ही "मेरे पास 2000 गोल्ड है" । आपको अपने आप को खेल का अनुकरण करने की आवश्यकता होगी और खिलाड़ियों को भेजने दें कि वे क्या कर रहे हैं जैसे "मैंने सिपाही को बिंदु X / Y पर स्थानांतरित करने का आदेश दिया" या "मैंने आइटम नंबर 43 खरीदा है" , न कि उस का क्या परिणाम है। क्रियाएँ हैं सर्वर तय करता है कि परिणाम क्या हैं, और अंत में कौन जीता।

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


11
छोटा सुधार सुझाव: ग्राहक को "मुझे आइटम नंबर 43 खरीदा" नहीं भेजना चाहिए, बल्कि "मैं आइटम नंबर 43 खरीदना चाहता हूं"। इसके बाद सर्वर को "ओके, आप 200 जीपी खो देते हैं, आप एक आइटम 43 प्राप्त करते हैं", "नहीं, आपके पास पर्याप्त सोना नहीं है" या "नहीं, जिस दुकान पर आप ब्राउज़ कर रहे हैं, उसका कोई आइटम नंबर 43 नहीं है" के साथ जवाब देना चाहिए। सर्वर को पेन और पेपर आरपीजी के गेम मास्टर की तरह व्यवहार करना चाहिए। खिलाड़ी कहते हैं कि वे क्या करना चाहते हैं, और सर्वर सफल होने पर उन्हें बताता है।
फिलिप

इसके अलावा, मैं एक व्यक्तिगत कंप्यूटर के उपयोग की स्मृति में परिवर्तन पर यकीन नहीं कर रहा हूँ, लेकिन एक गेम के बाइनरी को स्वयं में बदल देना (भले ही आपके कंप्यूटर पर हो) आमतौर पर EULA के खिलाफ है और कॉपीराइट कानूनों आदि में आगे परिभाषित किया जा सकता है
lozzajer

ऐसा नहीं है कि एक EULA का उल्लंघन करते हुए, jaywalking के डिजिटल समकक्ष, कभी भी किसी को रोक दिया।
jkmartindale

3

पहला प्रभावी नहीं है और किसी भी निर्धारित व्यक्ति को आपके खेल पर हमला करने से नहीं रोक सकता है - और यह भी त्रुटि प्रवण है। हालाँकि, यदि आप चाहें तो आप इसे बहुत कठिन बना सकते हैं , पूर्ण प्रमाण नहीं । कुछ सामान्य रणनीतियाँ पूरे वेब पर उपलब्ध हैं लेकिन जैसा कि अन्य लोगों ने उल्लेख किया है - आपको खुद से पूछना होगा कि क्या यह इसके लायक है।

बहस के लिए, यहां एकल खिलाड़ी वातावरण में हैकिंग को रोकने के लिए कुछ तरीके दिए गए हैं:

  1. उपयोगकर्ता मशीन (इनवेसिव और पोर्टेबल नहीं) पर हर दूसरी प्रक्रिया के लिए एक हैंडल खोलें और डमी फ़ंक्शन या चेतावनी के साथ अपने WriteProcessMemory को ओवर-राइट करें । चुनना आपको है। इसे हराया जा सकता है क्योंकि ... आवेदन एक ही करने के लिए स्वतंत्र हैं और एक बार फिर से हैंडल को लिखने या इसे रोकने के लिए चीजें करते हैं।
  2. अपने आवेदन की जाँच करें और इसे एक हैक शील्ड के माध्यम से सत्यापित किया है - यह आपके आवेदन के लिए कई स्थायी संपादन के लिए उपयोगी है, लेकिन एक आम मेमोरी अटैक को रोक नहीं पाएगा। इसे हराया जा सकता है क्योंकि ... ADA, OllyDbg और यहां तक ​​कि सरल हेक्स संपादन जैसे उपकरण आपत्तिजनक कोड को हटाने के लिए स्थायी पैच और आपके आवेदन में परिवर्तन कर सकते हैं - इसमें आपका थ्रेडेड टाइमर विचार शामिल है!
  3. ज्ञात हैक टूल के लिए स्कैन करें। यह भी एक उपकरण recompiling या सीधे अपने ग्राहक पर हमला करके हराया जा सकता है। यह पराजित किया जा सकता है क्योंकि ... एक पुनर्मिलन, अनुप्रयोग का नाम बदलने या आपके स्कैनर द्वारा एक अनुमानी के रूप में उपयोग किए जाने वाले परिवर्तन इस बेकार को प्रस्तुत करेंगे। यदि आप इसके लिए चुनते हैं, तो मेमोरी के एक विशेष हिस्से का उपयोग करने पर विचार करें।

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

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


3

बहुत से लोग इन कार्यक्रमों का उपयोग चर में संग्रहीत स्कोर की खोज के लिए करते हैं

int score = 10;

ऐसा करने के लिए उन्हें स्कोर जानना होगा, खेल में प्रदर्शित स्कोर से ususaly।

मैं सोच रहा था, क्या इससे उन्हें मदद मिलेगी ...

public static float randomVal; // at start of level generate random float

private float 1a3sf5vhh4; //represents score

void hjgkkj4(int val) //add score method
{
   var 5vhh4 =  1a3sf5vhh4/randomVal+val;
   1a3sf5vhh4 =  5vhh4*randomVal;
}

फिर जब आपको स्कोर दिखाना है ...

string displayScore = ""+ 1a3sf5vhh4/randomVal;

यह उन थिएटरों की खोज करेगा जो उन्हें लगता है कि स्कोर (प्रदर्शित किया जा रहा स्कोर) है, इसलिए वे केवल प्रदर्शित मूल्य पाएंगे।

असली स्कोर स्कोर * randomVal जहाँ संग्रहीत किया जाएगा। वे प्रदर्शित मूल्य को बदलकर स्कोर को बदल नहीं सकते।

क्या इससे मदद मिलेगी?

पी एस मैं कोई विशेषज्ञ नहीं हूँ तो यह आसान मुझे पर ले लो।


बस इस vid को पाया, कुछ दिलचस्प बिंदु बनाता है ... youtube.com/watch?v=G25YhoE04Xc
Raimi

ऐसी चीजों का पता लगाने के लिए चीट टूल को भी कॉन्फ़िगर किया जा सकता है। इसे ट्रैक करने में अधिक समय लगता है।
Kromster

लेकिन एक छोटे, ऑफ़लाइन, एकल खिलाड़ी खेल के लिए, क्या यह एक अच्छा समाधान होगा? ऐसा लगता है कि कम से कम कुछ एप्स को वहीं रोक दिया जा सकता है
राइमी नोव

हाँ, यह सिर्फ EffortSpent vs ProtectionAchieve का मामला है, जहाँ दूसरा भाग कभी भी 100% तक नहीं पहुँच सकता है।
Kromster

1
स्रोत कोड में रैंडम नाम या तो मदद नहीं करेगा, कम से कम ज्यादातर मामलों में। कार्यक्रम आमतौर पर IL / bytecode या सीधे बाइनरी आदि के लिए संकलित किया जाता है
लोजप सिप

2

एकल खिलाड़ी खेलों के संबंध में , आप धोखा नहीं रोक सकते हैं , और आपको नहीं करना चाहिए


मैं अपने खेल में धोखा खाने से क्यों नहीं रोक सकता?

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

मुझे एकल खिलाड़ी गेम में खिलाड़ियों को धोखा क्यों देना चाहिए?

सैम को उद्धृत करने के लिए ,

एक महान खेल बनाने में अधिक समय व्यतीत करें और मोरों को अपनी मस्ती को खराब करने से रोकने के लिए कम समय - सरल।

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

कैसे धोखा एक खेल को और अधिक मनोरंजक बनाता है?

हालांकि प्रत्येक व्यक्ति अद्वितीय है, लेकिन कुछ स्थितियां ऐसी हैं जिनमें धोखा देना एक खेल को और अधिक मनोरंजक बना सकता है, मेरे सिर के ऊपर से:

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

यह केवल एकल खिलाड़ी खेलों पर ही क्यों लागू होता है?

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


0

मेमोरी हैक टूल क्या करता है?

हैक टूल को ऑपरेट करने के दो तरीके हैं।

  1. यह या तो एक ज्ञात पते को स्वीकार करता है जहां खिलाड़ी के चर संग्रहीत किए जाते हैं।
  2. आप परिवर्तनशील चर में फ़ीड करते हैं और यह परिवर्तनों के लिए मेमोरी स्कैन करता है।

आप इसके बारे में क्या कर सकते हैं?

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

  2. प्लेयर वैरिएबल्स को एनक्रिप्ट करें: वैल्यू को स्केल करना, कंटीन्यू जोड़ना आदि। यह एक नई समस्या लाता है: एक हार्डकोर हैकर आपके प्रोग्राम को डिसेबल कर सकता है और अपने प्लेयर वैरिएबल को एनक्रिप्ट करने के लिए आपके द्वारा उपयोग किए गए नंबरों को खोज सकता है। इसके लिए रैंडम नंबर्स का इस्तेमाल करें। आप अपने खिलाड़ी चर के मूल्यों को भी बढ़ा सकते हैं और फिर एक यादृच्छिक संख्या जोड़ सकते हैं जैसे कि जोड़ा संख्या महत्वपूर्ण रूप से मूल्य में परिवर्तन नहीं करता है (2000 के स्केल किए गए मूल्य में 10 या 20 को जोड़ने से बहुत अंतर नहीं पड़ता है)।

बेशक, कुछ गंभीर हैकर अभी भी इन बाधाओं को दूर करने के तरीके खोज सकते हैं, लेकिन यह आसान नहीं होगा।

  std::default_random_engine myRNG;
  std::uniform_int_distribution<int> myDist_padding(10,100);
  class Player
  {
      public:
          Player()
          {
              Health = new float;
              Armor = new float;

              std::uniform_int_distribution<int> myDist_scale(1000,10000);
              scale = myDist_scale(myRNG);
          }
          float GetPlayerHealth() const;
          void SetPlayerHealth(float health);
      private:
          float *Health;
          float *Armor;
          int scale, constant;
  }

  //wrappers for Set/GetPlayerHealth
  void Player::SetPlayerHealth(float health)
  { 
      this->Health = health * scale + constant + myDist_padding(myRNG);     //random padding; adding 10 or 100 to a number that is scaled up by 1000 will cause an increase in 1%
      //1% of error is ok I guess?
  }
  int Player::GetPlayerHealth() const
  {
      return (this->Health - constant)/scale;
  }

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

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

आप और क्या कर सकते हैं?

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


0

अर्थशास्त्र:

यदि आप अपने खेल को सिनेमाघरों के खिलाफ सख्त करना चाहते हैं, तो सबसे अच्छा तरीका है कि आप एक ऐसा सॉफ्टवेयर सॉल्यूशन खरीदें जो आपके लिए हो। कई प्रदाता हैं, और आप उनमें से कुछ को "एंटी चीट ब्रेक माई गेम" के लिए गुगली करके पा सकते हैं ।

पेशेवरों वास्तव में आप की तुलना में धोखा दे रहे हैं को रोकने में बहुत बेहतर हैं, और आप की तुलना में अपने खेल को नहीं तोड़ने पर बहुत बेहतर है (और अभी भी इन दोनों में से 100% सफल नहीं होते हैं)। इसलिए यदि आपको लगता है कि इस तरह के समाधान को अपने गेम में रखने का कोई मूल्य है, तो इसे खरीदें। अपना खुद का करना बहुत अधिक महंगा होगा।

एक संबंधित प्रश्न "एंटी चीट सॉफ्टवेयर का उपयोग करने में मूल्य है?"। जवाब है: नहीं जब तक कि आपके खेल का एक अच्छा हिस्सा ऑनलाइन प्रतिस्पर्धी मोड पर निर्भर न हो।


0

अपने गेम को मोडिंग और मेमोरी एडिटिंग से बचाने का एकमात्र तरीका केवल इसे ऑनलाइन करना और महत्वपूर्ण मानों को सर्वर-साइड प्रोसेस करना है

शायद तुम मान एन्क्रिप्ट कर सकते हैं ताकि रूकी स्मृति edoits उन तक नहीं होते, लेकिन इस तरह के रूप में सभी समुदायों, Cheat इंजन , GameGuarian Android के लिए, ArtMoney, खेल हैकर ect लोगों की है कि सक्षम होने के लिए जा रहे हैं कुछ भी हैक करने आप अपनी पसंदीदा क्लाइंट की प्रक्रिया है पक्ष और दूसरों को दिखाओ कि यह कैसे करना है या प्रशिक्षकों को प्रकाशित करना है।

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


0

मेरा मतलब है कि यह मुश्किल नहीं है। आप 99% मेमोरी एडिट चीटर्स (उन गेम गार्जियन , चीट इंजन एक्ट) को खाड़ी में सरल गुणा मूल्यों के साथ रख सकते हैं। यहां तक ​​कि मेमोरी में 10 से गुणा करने पर अधिकांश बे पर रहेंगे।

मुझे याद है कि दिन में बहुत सारे फ़्लैश गेम 8 या 6 से गुणा होंगे या यदि आप वास्तव में इसके बारे में गंभीर हैं, तो कुछ चेक कोड करें या मेमोरी में मान एन्क्रिप्ट करें।


-2

आप नहीं कर सकते - मैं आपको नहीं दोहरा सकता। इस सवाल का कोई जवाब नहीं है जो एक अच्छे हैकर द्वारा पूर्ववत नहीं किया जा सकता है।

लेकिन तो क्या? अगर कोई आपके खेल को धोखा देना चाहता है (कोई मौद्रिक नुकसान या उपलब्धि शामिल नहीं है), कौन परवाह करता है? वे केवल खुद को धोखा देते हैं।

एक महान खेल बनाने में अधिक समय व्यतीत करें और मोरों को अपनी मस्ती को खराब करने से रोकने के लिए कम समय - सरल।


डाउन वोटिंग जैसा कि मेरा मानना है कि इस उत्तर में मज़ा एक महत्वपूर्ण भूमिका निभाता है, लेकिन पूरी तरह से याद किया जाता है । आगे की व्याख्या के बजाय, मैं एक वैकल्पिक उत्तर प्रस्तुत कर रहा हूं।
गनीमॉक

-3

इसे से नरक को एन्क्रिप्ट करें! महत्वपूर्ण संख्याओं को अन्य मानों के साथ संयोजित कई स्थानों में विभाजित करें ताकि वे लगातार बदलते रहें! डमी नंबरों का उपयोग करें कि अगर बदल उन्हें बताता है कि वे थिएटर हैं।

सब कुछ फटा जा सकता है, लेकिन ज्यादातर ऐसा करने में समय नहीं लगेगा।


4
... और फिर आपका सोर्सकोड एक अपठनीय, अजेय गड़बड़ होगा। अच्छी बात यह है कि बग को खोजने या पूरी चीज को उड़ाने के बिना संतुलन में बदलाव करना।
फिलीपींस

अगर मुझे ठगी की रोकथाम के इस रूप को लागू करना था, तो हैकरों को मेरी बुरी योजना को पकड़ने और बस हार मानने पर मुझे पूरी तरह से निराशा होगी। इसका मतलब है कि मैंने किसी का समय बर्बाद नहीं किया है, लेकिन अपना खुद का।
थॉमस फॉक्स

@MarcksThomas यदि हैकर्स ने हार मान ली, तो आपने अपना समय बर्बाद नहीं किया। यह लक्ष्य था, सब के बाद, यह नहीं था?
डैन

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

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

-4

जिस तरह से मैं ऑनलाइन गेम में इससे निपटता हूं वह यह है।

मैं हैकर्स की मदद करने नहीं जा रहा हूं जो मेरे साथ इतना सहन कर रहा है। मैं ऐसा करने के लिए उपयोग किए जाने वाले किसी भी कार्यक्रम का उल्लेख नहीं करूंगा। आपको यह पता लगाना होगा। उन्हें वास्तव में रोकने का एकमात्र तरीका एक बात जानना है। वे नहीं चाहते कि उनके हैक प्रोग्राम का पता चले।

अब तक, सभी हैकर / ट्रेनर उपयोगकर्ता जिन्हें मैंने हराया है। हैक के डेवलपर इस पर एक डिटेक्टर लगाएगा कि क्या कुछ देख रहा है। यदि कुछ है, तो हैकर / ट्रेनर प्रोग्राम या तो अपने आप समाप्त हो जाएगा या यह केवल आधा काम होगा।

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

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

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

मेरा सबसे बड़ा सुझाव एक बहुत अच्छा इंटरनेट सुरक्षा एंटीवायरस (नॉर्टन, मैकाफी, अवास्ट, और अन्य सभी shitty av's आपकी मदद नहीं करेगा) प्राप्त करना है। बहुत अच्छे एवी पर $ 50 से $ 90 खर्च करने के लिए तैयार रहें, जिसे मैंने सूचीबद्ध नहीं किया है और फिर ऑनलाइन गेम को प्रभावित करने के लिए इसके साथ प्रयोग करना सीखें।

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

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

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

मुझे कभी यह देखने को नहीं मिला कि उन्होंने यह कैसे किया। मैंने उन्हें यह विचार दिया कि वास्तव में सिनेमाघरों को बंद करने के लिए क्या होगा और गाइड के माध्यम से प्रतिबंध लगाने के लिए एक जैमोड देवोलोपर्स का सुझाव दिया। गेम खेलते समय आसानी से समझ में आने वाली मार्गदर्शिका क्या है? ग्राफिक्स कार्ड। जिस कारण से उन्होंने लागू किया, वह यह है कि लोग सिर्फ आईपी पते बदलेंगे और आपको खेल के लिए किसी खाते की आवश्यकता नहीं है, ताकि आप अपना नाम, अपना मैक पता बदल सकें, जो आपके आईपी पते को भी बदल देगा।

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


मैं इस जवाब के साथ कई मुद्दों को देखता हूं। 1. प्रारूप। संरचना के कारण पढ़ना मुश्किल है, और व्याकरणिक असंगति के कारण, ऐसे हिस्से हैं जहां मैं समझ नहीं पा रहा हूं कि आपके कहने का क्या मतलब है। 2. आप इस विषय के बारे में बहुत सी बात करते हुए दिखाई देते हैं जैसे कि अन्य थिएटर के खिलाफ़ खेलने वाला खिलाड़ी । यह अरकाडे पर प्रासंगिक होगा , लेकिन हम खेल विकास के साथ अधिक चिंतित हैं । एंटी वायरस के संबंध में आप कहते हैं "मैंने जिन लोगों का उल्लेख किया है उनका उपयोग न करें"। आप "नॉर्टन, mcafe, अवास्ट और सभी shitty वाले का उल्लेख करते हैं । यह हमें यह नहीं बताता है कि क्या उपयोग करना है , खासकर जब आप कुछ उच्चतम रैंक का नाम देते हैं।
Gnemlock

पूरे पिछली आधी आप कैसे के बारे में एक किस्सा हो रहा है लगता है एक वीडियो गेम कंपनी आपकी सलाह ले लिया (मेरा मानना है कि आप कह का प्रयास करने के लिए जाना आपके यकीन नहीं कैसे अपनी किया, मैं व्याख्या ताकि आपके और स्पष्टीकरण है कि यह कैसे है किया होगा की अटकलों पर आधारित होना , तथ्य नहीं)।
प्रातः
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.