Cheat Engine
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Cheat Engine एक उपयोगी प्रोग्राम है जो यह पता लगाने में मदद करता है कि महत्वपूर्ण मान कहाँ संग्रहीत हैं और उन्हें बदलता है। जब आप इसे डाउनलोड और चलाते हैं, तो आपको इस उपकरण का उपयोग कैसे करें, इसका ट्यूटोरियल प्रस्तुत किया जाता है। यदि आप इस उपकरण का उपयोग करना सीखना चाहते हैं, तो इसे पूरा करना अत्यधिक अनुशंसित है।
यह उपकरण यह पता लगाने के लिए बहुत उपयोगी है कि कुछ मान (आमतौर पर एक संख्या) किसी प्रोग्राम की मेमोरी में कहाँ संग्रहीत है। आमतौर पर संख्याएँ 4bytes रूप में संग्रहीत होती हैं, लेकिन आप उन्हें डबल या फ्लोट प्रारूप में भी पा सकते हैं, या आप कुछ संख्याओं से अलग देखने की कोशिश कर सकते हैं। इस कारण से, आपको यह सुनिश्चित करने की आवश्यकता है कि आप चुनें कि आप क्या खोजना चाहते हैं:
आप विभिन्न प्रकार की खोजों को भी इंगित कर सकते हैं:
आप मेमोरी को स्कैन करते समय गेम को रोकने के लिए बॉक्स को भी चेक कर सकते हैं:
Edit --> Settings --> Hotkeys में आप विभिन्न उद्देश्यों के लिए विभिन्न हॉटकीज़ सेट कर सकते हैं जैसे गेम को रोकना (जो कि मेमोरी को स्कैन करने के लिए बहुत उपयोगी है)। अन्य विकल्प उपलब्ध हैं:
एक बार जब आप पाते हैं कि आप जिस मान की खोज कर रहे हैं वह कहाँ है (इस पर अधिक जानकारी अगले चरणों में) तो आप इसे संशोधित कर सकते हैं, इसके मान पर डबल क्लिक करके:
और अंततः चेक मार्क करके मेमोरी में संशोधन को पूरा करें:
मेमोरी में परिवर्तन तुरंत लागू होगा (ध्यान दें कि जब तक गेम इस मान का फिर से उपयोग नहीं करता, तब तक मान गेम में अपडेट नहीं होगा).
तो, हम यह मानने जा रहे हैं कि एक महत्वपूर्ण मान (जैसे आपके उपयोगकर्ता का जीवन) है जिसे आप सुधारना चाहते हैं, और आप इस मान को मेमोरी में खोज रहे हैं)
मान लीजिए कि आप मान 100 की खोज कर रहे हैं, आप उस मान की खोज करते हैं और आपको बहुत सारी समानताएँ मिलती हैं:
फिर, आप कुछ ऐसा करते हैं जिससे मान बदलता है, और आप गेम को रोकते हैं और अगली स्कैन करते हैं:
Cheat Engine उन मानों की खोज करेगा जो 100 से नए मान में बदल गए। बधाई हो, आपने उस पते को पाया जिसे आप खोज रहे थे, आप अब इसे संशोधित कर सकते हैं। यदि आपके पास अभी भी कई मान हैं, तो उस मान को फिर से संशोधित करने के लिए कुछ करें, और पते को फ़िल्टर करने के लिए एक और "अगली स्कैन" करें।
इस परिदृश्य में, यदि आप मान नहीं जानते लेकिन आप जानते हैं कि इसे कैसे बदलना है (और यहां तक कि परिवर्तन का मान भी) तो आप अपने नंबर की खोज कर सकते हैं।
तो, "अज्ञात प्रारंभिक मान" प्रकार की स्कैन करने से शुरू करें:
फिर, मान को बदलने दें, कैसे मान बदला यह इंगित करें (मेरे मामले में यह 1 से घटा) और अगली स्कैन करें:
आपको उन सभी मानों को प्रस्तुत किया जाएगा जो चयनित तरीके से संशोधित किए गए थे:
एक बार जब आप अपने मान को पा लेते हैं, तो आप इसे संशोधित कर सकते हैं।
ध्यान दें कि कई संभव परिवर्तनों की एक लंबी सूची है और आप परिणामों को फ़िल्टर करने के लिए इन चरणों को जितनी चाहें कर सकते हैं:
अब तक हमने एक पता खोजने के लिए सीखा है जो एक मान को संग्रहीत करता है, लेकिन यह बहुत संभावना है कि गेम के विभिन्न निष्पादन में वह पता मेमोरी के विभिन्न स्थानों में हो। तो चलिए पता लगाते हैं कि हमेशा उस पते को कैसे खोजें।
कुछ उल्लेखित तरकीबों का उपयोग करते हुए, उस पते को खोजें जहाँ आपका वर्तमान गेम महत्वपूर्ण मान को संग्रहीत कर रहा है। फिर (यदि आप चाहें तो गेम को रोकते हुए) उस पते पर दाएँ क्लिक करें और "इस पते तक पहुँचने वाले को खोजें" या "इस पते पर लिखने वाले को खोजें" का चयन करें:
पहला विकल्प यह जानने के लिए उपयोगी है कि कोड के कौन से भाग इस पते का उपयोग कर रहे हैं (जो कि गेम के कोड को संशोधित करने के लिए जानने जैसी अधिक चीजों के लिए उपयोगी है)। दूसरा विकल्प अधिक विशिष्ट है, और इस मामले में अधिक सहायक होगा क्योंकि हम यह जानने में रुचि रखते हैं कि यह मान कहाँ से लिखा जा रहा है।
एक बार जब आपने इनमें से एक विकल्प का चयन कर लिया, तो डीबगर प्रोग्राम से जुड़ जाएगा और एक नई खाली विंडो दिखाई देगी। अब, गेम खेलें और उस मान को संशोधित करें (गेम को फिर से शुरू किए बिना)। विंडो को उन पते से भरा जाना चाहिए जो मान को संशोधित कर रहे हैं:
अब जब आपने उस पते को खोज लिया है जो मान को संशोधित कर रहा है, तो आप अपने अनुसार कोड को संशोधित कर सकते हैं (Cheat Engine आपको इसे NOPs के लिए जल्दी से संशोधित करने की अनुमति देता है):
तो, आप अब इसे इस तरह से संशोधित कर सकते हैं कि कोड आपके नंबर को प्रभावित न करे, या हमेशा सकारात्मक तरीके से प्रभावित करे।
पिछले चरणों का पालन करते हुए, उस मान को खोजें जिसमें आप रुचि रखते हैं। फिर, "इस पते पर लिखने वाले को खोजें" का उपयोग करके यह पता लगाएँ कि कौन सा पता इस मान को लिखता है और उस पर डबल क्लिक करें ताकि डिस्सेम्बली दृश्य प्राप्त हो:
फिर, "[]" के बीच हेक्स मान की खोज करते हुए एक नई स्कैन करें (इस मामले में $edx का मान):
(यदि कई दिखाई देते हैं तो आमतौर पर आपको सबसे छोटे पते की आवश्यकता होती है) अब, हमने उस प्वाइंटर को खोज लिया है जो उस मान को संशोधित करेगा जिसमें हम रुचि रखते हैं।
"पता मैन्युअल रूप से जोड़ें" पर क्लिक करें:
अब, "प्वाइंटर" चेक बॉक्स पर क्लिक करें और टेक्स्ट बॉक्स में पाया गया पता जोड़ें (इस परिदृश्य में, पिछले चित्र में पाया गया पता "Tutorial-i386.exe"+2426B0 था):
(ध्यान दें कि पहले "पता" को स्वचालित रूप से उस प्वाइंटर पते से भरा गया है जिसे आप प्रस्तुत करते हैं)
OK पर क्लिक करें और एक नया प्वाइंटर बनाया जाएगा:
अब, जब भी आप उस मान को संशोधित करते हैं, तो आप महत्वपूर्ण मान को संशोधित कर रहे हैं, भले ही उस मान का पता अलग हो।
कोड इंजेक्शन एक तकनीक है जहाँ आप लक्षित प्रक्रिया में कोड का एक टुकड़ा इंजेक्ट करते हैं, और फिर कोड के निष्पादन को अपने द्वारा लिखित कोड के माध्यम से पुनः मार्गदर्शित करते हैं (जैसे आपको अंक देना बजाय उन्हें घटाने के)।
तो, कल्पना करें कि आपने उस पते को खोज लिया है जो आपके खिलाड़ी के जीवन से 1 घटा रहा है:
डिस्सेम्बल कोड प्राप्त करने के लिए "शो डिस्सेम्बलर" पर क्लिक करें। फिर, CTRL+a पर क्लिक करें ताकि ऑटो असेंबल विंडो को सक्रिय किया जा सके और टेम्पलेट --> कोड इंजेक्शन का चयन करें:
आप जिस निर्देश को संशोधित करना चाहते हैं उसका पता भरें (यह आमतौर पर स्वचालित रूप से भरा जाता है):
एक टेम्पलेट उत्पन्न होगा:
तो, अपने नए असेंबली कोड को "newmem" अनुभाग में डालें और यदि आप नहीं चाहते कि इसे निष्पादित किया जाए तो "originalcode" से मूल कोड को हटा दें**.** इस उदाहरण में इंजेक्ट किया गया कोड 1 घटाने के बजाय 2 अंक जोड़ेगा:
"निष्पादित करें" पर क्लिक करें और इसी तरह आपका कोड प्रोग्राम में इंजेक्ट किया जाना चाहिए जिससे कार्यक्षमता का व्यवहार बदल जाए!
Cheat Engine ट्यूटोरियल, इसे पूरा करें ताकि Cheat Engine के साथ शुरू करना सीख सकें