Cheat Engine
Reading time: 8 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
Cheat Engine एक उपयोगी प्रोग्राम है जो यह पता लगाने में मदद करता है कि महत्वपूर्ण मान कहाँ संग्रहीत हैं एक चल रहे खेल की मेमोरी में और उन्हें बदलता है।
जब आप इसे डाउनलोड और चलाते हैं, तो आपको इस उपकरण का उपयोग कैसे करें, इसका ट्यूटोरियल प्रस्तुत किया जाता है। यदि आप इस उपकरण का उपयोग करना सीखना चाहते हैं, तो इसे पूरा करना अत्यधिक अनुशंसित है।
आप क्या खोज रहे हैं?
यह उपकरण यह पता लगाने के लिए बहुत उपयोगी है कि कुछ मान (आमतौर पर एक संख्या) कहाँ संग्रहीत है एक प्रोग्राम की मेमोरी में।
आमतौर पर संख्याएँ 4bytes रूप में संग्रहीत होती हैं, लेकिन आप उन्हें डबल या फ्लोट प्रारूप में भी पा सकते हैं, या आप कुछ संख्याओं से अलग देखने की कोशिश कर सकते हैं। इस कारण से, आपको यह सुनिश्चित करने की आवश्यकता है कि आप चुनें कि आप क्या खोज रहे हैं:
आप विभिन्न प्रकार की खोजों को भी इंगित कर सकते हैं:
आप मेमोरी स्कैन करते समय गेम को रोकने के लिए बॉक्स को भी चेक कर सकते हैं:
हॉटकीज़
Edit --> Settings --> Hotkeys में आप विभिन्न उद्देश्यों के लिए विभिन्न हॉटकीज़ सेट कर सकते हैं जैसे गेम को रोकना (जो कि मेमोरी स्कैन करते समय बहुत उपयोगी है)। अन्य विकल्प उपलब्ध हैं:
मान को संशोधित करना
एक बार जब आप पाते हैं कि मान आप खोज रहे हैं (इस बारे में अधिक जानकारी अगले चरणों में) आप इसे संशोधित कर सकते हैं, इसे डबल क्लिक करके, फिर इसके मान पर डबल क्लिक करके:
और अंततः मेमोरी में संशोधन करने के लिए चेक मार्क लगाकर:
मेमोरी में परिवर्तन तुरंत लागू होगा (ध्यान दें कि जब तक खेल इस मान का फिर से उपयोग नहीं करता, तब तक मान खेल में अपडेट नहीं होगा).
मान की खोज
तो, हम मान लेते हैं कि एक महत्वपूर्ण मान (जैसे आपके उपयोगकर्ता का जीवन) है जिसे आप सुधारना चाहते हैं, और आप इस मान को मेमोरी में खोज रहे हैं)
ज्ञात परिवर्तन के माध्यम से
मान लेते हैं कि आप मान 100 की खोज कर रहे हैं, आप उस मान की खोज करते हैं और आपको कई संयोग मिलते हैं:
फिर, आप कुछ ऐसा करते हैं जिससे मान बदलता है, और आप गेम को रोकते हैं और अगली स्कैन करते हैं:
Cheat Engine उन मानों की खोज करेगा जो 100 से नए मान में बदल गए। बधाई हो, आपने उस पते को पाया जिसे आप खोज रहे थे, आप अब इसे संशोधित कर सकते हैं।
यदि आपके पास अभी भी कई मान हैं, तो उस मान को फिर से संशोधित करने के लिए कुछ करें, और पते को फ़िल्टर करने के लिए एक और "अगली स्कैन" करें।
अज्ञात मान, ज्ञात परिवर्तन
इस परिदृश्य में, आप मान नहीं जानते लेकिन आप जानते हैं कैसे इसे बदलना है (और यहां तक कि परिवर्तन का मान) आप अपने नंबर की खोज कर सकते हैं।
तो, "अज्ञात प्रारंभिक मान" प्रकार की स्कैन करने से शुरू करें:
फिर, मान को बदलें, कैसे मान बदला है (मेरे मामले में यह 1 से घटा) और अगली स्कैन करें:
आपको सभी मान प्रस्तुत किए जाएंगे जो चयनित तरीके से संशोधित किए गए थे:
एक बार जब आप अपना मान पा लेते हैं, तो आप इसे संशोधित कर सकते हैं।
ध्यान दें कि कई संभव परिवर्तनों की एक बहुतायत है और आप परिणामों को फ़िल्टर करने के लिए इन चरणों को जितनी चाहें कर सकते हैं:
यादृच्छिक मेमोरी पता - कोड खोजना
अब तक हमने एक मान संग्रहीत करने वाले पते को खोजने का तरीका सीखा है, लेकिन यह बहुत संभावना है कि खेल के विभिन्न निष्पादन में वह पता मेमोरी के विभिन्न स्थानों में हो। तो चलिए पता लगाते हैं कि उस पते को हमेशा कैसे खोजें।
कुछ उल्लेखित तरकीबों का उपयोग करते हुए, उस पते को खोजें जहाँ आपका वर्तमान खेल महत्वपूर्ण मान को संग्रहीत कर रहा है। फिर (यदि आप चाहें तो खेल को रोकते हुए) उस पाए गए पते पर दाएँ क्लिक करें और "इस पते तक पहुँचने वाले को खोजें" या "इस पते पर लिखने वाले को खोजें" का चयन करें:
पहला विकल्प यह जानने के लिए उपयोगी है कि कोड के कौन से भाग इस पते का उपयोग कर रहे हैं (जो कि खेल के कोड को संशोधित करने के लिए उपयोगी है)।
दूसरा विकल्प अधिक विशिष्ट है, और इस मामले में अधिक सहायक होगा क्योंकि हम यह जानने में रुचि रखते हैं कि यह मान कहाँ से लिखा जा रहा है।
एक बार जब आप इनमें से एक विकल्प का चयन कर लेते हैं, तो डीबगर प्रोग्राम से जुड़ जाएगा और एक नई खाली विंडो दिखाई देगी। अब, खेलें और उस मान को संशोधित करें (खेल को फिर से शुरू किए बिना)। विंडो को उन पत्तों से भरा जाना चाहिए जो मान को संशोधित कर रहे हैं:
अब जब आपने उस पते को खोज लिया है जो मान को संशोधित कर रहा है, तो आप कोड को अपनी इच्छानुसार संशोधित कर सकते हैं (Cheat Engine आपको इसे NOPs के लिए जल्दी संशोधित करने की अनुमति देता है):
तो, आप अब इसे इस तरह संशोधित कर सकते हैं कि कोड आपके नंबर को प्रभावित न करे, या हमेशा सकारात्मक तरीके से प्रभावित करे।
यादृच्छिक मेमोरी पता - प्वाइंटर खोजना
पिछले चरणों का पालन करते हुए, उस मान को खोजें जिसमें आपकी रुचि है। फिर, "इस पते पर लिखने वाले को खोजें" का उपयोग करके यह पता लगाएं कि कौन सा पता इस मान को लिखता है और उस पर डबल क्लिक करें ताकि आप डिस्सेम्बली दृश्य प्राप्त कर सकें:
फिर, "[]" के बीच हेक्स मान की खोज करते हुए एक नई स्कैन करें (इस मामले में $edx का मान):
(यदि कई दिखाई देते हैं, तो आपको आमतौर पर सबसे छोटे पते की आवश्यकता होती है)
अब, हमने उस प्वाइंटर को खोज लिया है जो उस मान को संशोधित करेगा जिसमें हमारी रुचि है।
"पता मैन्युअल रूप से जोड़ें" पर क्लिक करें:
अब, "प्वाइंटर" चेक बॉक्स पर क्लिक करें और टेक्स्ट बॉक्स में पाया गया पता जोड़ें (इस परिदृश्य में, पिछले चित्र में पाया गया पता "Tutorial-i386.exe"+2426B0 था):
(ध्यान दें कि पहले "पता" को स्वचालित रूप से उस प्वाइंटर पते से भरा गया है जिसे आप प्रस्तुत करते हैं)
OK पर क्लिक करें और एक नया प्वाइंटर बनाया जाएगा:
अब, जब भी आप उस मान को संशोधित करते हैं, तो आप महत्वपूर्ण मान को संशोधित कर रहे हैं भले ही उस मान का पता अलग हो।
कोड इंजेक्शन
कोड इंजेक्शन एक तकनीक है जहाँ आप लक्षित प्रक्रिया में कोड का एक टुकड़ा इंजेक्ट करते हैं, और फिर कोड के निष्पादन को अपने द्वारा लिखे गए कोड के माध्यम से रीरूट करते हैं (जैसे आपको अंक देना बजाय उन्हें घटाने के)।
तो, कल्पना करें कि आपने उस पते को खोज लिया है जो आपके खिलाड़ी के जीवन से 1 घटा रहा है:
डिस्सेम्बल कोड प्राप्त करने के लिए Show disassembler पर क्लिक करें।
फिर, CTRL+a दबाकर ऑटो असेंबल विंडो को खोलें और Template --> Code Injection का चयन करें।
संशोधित करने के लिए आप जिस निर्देश का पता चाहते हैं (यह आमतौर पर स्वचालित रूप से भरा जाता है) भरें:
एक टेम्पलेट उत्पन्न होगा:
तो, अपने नए असेंबली कोड को "newmem" अनुभाग में डालें और यदि आप नहीं चाहते कि इसे निष्पादित किया जाए तो "originalcode" से मूल कोड हटा दें। इस उदाहरण में, इंजेक्ट किया गया कोड 1 घटाने के बजाय 2 अंक जोड़ेगा:
Execute पर क्लिक करें और इसी तरह आपका कोड प्रोग्राम में इंजेक्ट किया जाना चाहिए जिससे कार्यक्षमता का व्यवहार बदल जाए!
संदर्भ
- Cheat Engine ट्यूटोरियल, इसे पूरा करें ताकि Cheat Engine के साथ शुरू करना सीख सकें
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।