में मान प्राप्त करने के लिए मैं सोच रहा था कि सी/सी ++ का उपयोग करके स्मृति के प्रत्यक्ष ब्लॉक तक पहुंचना संभव था और मूल्य को पकड़ना संभव था। उदाहरण के लिए:प्रत्यक्ष मेमोरी पतों तक पहुंचने और सी ++
int i = 15;
int *p = &i;
cout << &i;
अगर मैं मुद्रित मूल्य यहाँ ले लिया है, कि मुझे चर मैं, जो मूल्य 15. मैं सिर्फ यह इस उदाहरण के लिए 0x0ff9c1 मुद्रित कहेंगे शामिल पता देना होगा। अगर मैं एक अलग कार्यक्रम जो इतनी तरह एक सूचक की घोषणा की ...
int *p = 0x0ff9c1;
cout << *p;
यह है कि 15 प्रिंट आउट करने के लिए संभव नहीं होगा कि अन्य अनुप्रयोग स्मृति ब्लॉक 0x0ff9c1 में रखा? मुझे पता है कि मेमोरी एड्रेस के साथ मेरी पॉइंटर घोषणा गलत है, मुझे यकीन है कि इसे अन्यथा कैसे करना है। मैंने memcopy
का उपयोग करने का प्रयास किया है, लेकिन मैं इसे काम करने में सक्षम नहीं हूं। मुझे पता है कि यह संभव है क्योंकि मेरे पास धोखा इंजन नामक एक प्रोग्राम है जो अनुचित फायदे पाने के लिए गेम मेमोरी एड्रेस वैल्यू को संशोधित करता है। मैं मुद्रित स्मृति स्थान रखने और मूल्य प्राप्त करने में सफल रहा हूं (15) हालांकि धोखा इंजन। मेरा लक्ष्य सी ++ का उपयोग करके ऐसा करना है। यदि यह बहुत भ्रमित है, मूल रूप से मैं एक चर का उपयोग करना चाहता हूं जो कि एक अन्य एप्लिकेशन को इसके मेमोरी पते का उपयोग करके संग्रहीत किया जाता है और मूल्य प्रिंट करता है। यदि मायने रखता है तो मैं मिनी 7 डब्ल्यू कंपाइलर के साथ विंडोज 7 एक्स 64 का उपयोग कर रहा हूं। धन्यवाद!
पीएस: मैं एक तस्वीर पोस्ट करूंगा जो धोखा इंजन बेहतर विचार देने के लिए करता है।
+1 ऐसे प्रयोगों के लिए। – Nawaz
वर्चुअल मेमोरी के बारे में एक पुस्तक पढ़ें। एक अतिरिक्त नोट के रूप में: लिनक्स और विंडोज़ के कुछ नए संस्करण बेकार यादृच्छिकता को नियोजित करते हैं, इसलिए प्रोग्राम चर के बीच स्थानीय चर के पते अलग-अलग होंगे। – unkulunkulu
हां, हालांकि प्रयोग मैंने पाया। मैं दूसरे कार्यक्रम के निष्पादन तर्क के बावजूद पते का निर्यात करने की सोच रहा था। मैं आभासी स्मृति में देखूंगा, टिप के लिए धन्यवाद। – llk