मुझे नहीं लगता कि आपको सिंगल प्लेयर गेम पर धोखा देने से रोकने के लिए कुछ भी करना चाहिए। आपके उपयोगकर्ताओं ने गेम खरीदा, वे धोखा देने में सक्षम होना चाहिए, जब तक कि वे दूसरों के खिलाफ नहीं खेल रहे हैं।
यहां कुछ चीज़ें दी गई हैं जो मैंने की हैं। ये ज्यादातर टूर्नामेंट खेलों पर एंटी-चीट सिस्टम के लिए किए जाते थे, जहां पैसा खड़ा होता है, और उपयोगकर्ता के सिस्टम पर घुसपैठ के कुछ स्तर स्वीकार्य माना जाता है। मैं इस सामान में से कुछ को आकस्मिक गेम पर करने के बारे में सावधान रहूंगा क्योंकि यदि आपका गेम स्थिर नहीं है तो उनके सिस्टम में समस्याएं पैदा करने की संभावना है।
1) जहां संभव हो, "ग्राहक पर भरोसा न करें" आपका पालन करने का सबसे सुरक्षित सिद्धांत है। सर्वर पर सभी क्रियाएं करें, और केवल ग्राहक को उतना ही ज्ञान दें जितना आवश्यक है कि उसे किसी भी समय स्क्रीन पर देखने में सक्षम होना चाहिए। यानी यदि कोई ग्राहक किसी दीवार के पीछे छिपे हुए खिलाड़ी की स्थिति नहीं जानता है, तो एक दीवार हैक उपयोगकर्ता को कोई अच्छा नहीं करेगा। हाई-स्पीड एक्शन गेम के लिए यह बेहद मुश्किल हो सकता है - विशेष रूप से अब वास्तविक समय की छायाएं और ऐसे मानक हैं, जहां उपयोगकर्ता को छाया देखने में सक्षम होना पड़ सकता है भले ही खिलाड़ी का शरीर दिखाई दे - लेकिन यह हमेशा होना चाहिए अपने विकल्पों के शीर्ष पर। पीयर-टू-पीयर गेम पर भी करना मुश्किल है, लेकिन साथियों के बीच ज्ञान को सीमित करने के तरीके हैं। केवल जब यह प्रदर्शन निषिद्ध हो जाता है, या आपके समय/धन बजट के बाहर, निम्नलिखित वस्तुओं पर विचार किया जाना चाहिए।
2) अन्य सभी प्रक्रियाओं को खोलें, और उनके WriteProcessMemory फ़ंक्शंस को हुक करें ताकि वे आपके गेम की प्रक्रिया में स्मृति को नहीं लिख सकें। सही हो गया यह एक कदम सभी धोखाधड़ी और धोखा इंजन के 90% को अवरुद्ध करेगा।
3) वही काम करें, विभिन्न माउस और कीबोर्ड इम्यूलेशन कार्यों को जोड़कर। यह बहुत से एंबोट्स और अन्य प्रकार के स्वचालन बॉट को रोक देगा।
4) अपने गेम की अपनी प्रक्रिया में वर्चुअलप्रोटेक्टएक्स/वर्चुअलएलोकएक्स/आदि कार्यों में हुक करें और निगरानी करें कि कौन से मॉड्यूल सुरक्षा स्तर बदल रहे हैं या नई मेमोरी हिस्से आवंटित कर रहे हैं। जब आपका गेम बहुत सारे आवंटन करता है तो इसे बहुत सीपीयू गहन होने से रोकने के लिए आपको इसके साथ चालाक होना चाहिए, लेकिन यह किया जा सकता है।
5) लोड लाइब्रेरी कार्यों में हुक करें और डीएलएल इंजेक्शन को रोकने के लिए गतिशील रूप से लोड किए जा रहे किसी भी डीएलएल की निगरानी करें।
6) अपने गेम कनेक्शन पर कुछ हल्के पॉलीमोर्फिक एन्कोडिंग का उपयोग करें।
7) डीबगर्स को अपनी प्रक्रियाओं से जोड़ने से रोकने के लिए कुछ एंटी-डिबगिंग तकनीकों का उपयोग करें। Google एंटी-डिबगिंग और आपको बहुत सारी चीज़ें मिलनी चाहिए।
8) अपने गेम के उपयोगी डिस्सेप्लर को रोकने के लिए एक कस्टम मालिकाना पीई पैकर का उपयोग करें।
9) पारदर्शिता और अल्फा मिश्रण से निपटने वाले आपके ओपनजीएल या डायरेक्ट 3 डी कार्यों और विधियों में हुक करें।
10) यदि शेडर्स का उपयोग करते हैं, तो अपने शेडर्स और शेडर निरंतर मूल्यों की जांच करें।
11) खिलाड़ी पात्रों पर अतिरिक्त प्रलोभन खींचने की तकनीक का उपयोग उनको रोकने के लिए करें जब उन्हें दृष्टि की रेखा अन्य ज्यामिति द्वारा अवरुद्ध कर दी जाती है। यह आपके प्रदर्शन के साथ भी मदद कर सकता है या नहीं, लेकिन यह कई wallhacks को रोक देगा।
यदि आपका गेम savegames का उपयोग करता है तो आपको एकल-प्लेयर मोड में धोखाधड़ी को रोकने के लिए savegame संपादन और भ्रष्टाचार – Jim