Cheat Engine
Reading time: 8 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
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 घटा रहा है:
डिस्सेम्बलर दिखाने के लिए क्लिक करें ताकि आप डिस्सेम्बल कोड प्राप्त कर सकें।
फिर, CTRL+a दबाएँ ताकि ऑटो असेंबल विंडो खुल जाए और Template --> Code Injection का चयन करें:
संशोधित करने के लिए आप जिस निर्देश का पता चाहते हैं, उसे भरें (यह आमतौर पर स्वचालित रूप से भरा होता है):
एक टेम्पलेट उत्पन्न होगा:
तो, अपने नए असेंबली कोड को "newmem" अनुभाग में डालें और यदि आप नहीं चाहते कि इसे निष्पादित किया जाए तो "originalcode" से मूल कोड हटा दें**.** इस उदाहरण में, इंजेक्ट किया गया कोड 1 घटाने के बजाय 2 अंक जोड़ेगा:
क्लिक करें और निष्पादित करें और आपका कोड प्रोग्राम में इंजेक्ट होना चाहिए जिससे कार्यक्षमता का व्यवहार बदल जाए!
संदर्भ
- Cheat Engine ट्यूटोरियल, इसे पूरा करें ताकि Cheat Engine के साथ शुरू करना सीख सकें
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।