पर कोड बदलना मेरे पास एक फ़ंक्शन के लिए एक पॉइंटर है (जो मुझे एक vtable से मिलता है) और मैं रनटाइम पर असेंबलर कोड (कुछ बाइट्स को बदलकर) बदलकर फ़ंक्शन को संपादित करना चाहता हूं। मैंने मेमसेट का उपयोग करने की कोशिश की और नए मान को सीधे निर्दिष्ट करने की कोशिश की (एमपीआरटी [0] = एक्स, एमपीआरटी [1] = वाई इत्यादि जैसे कुछ) लेकिन मुझे सेगमेंटेशन गलती मिल रही है। मैं कोड कैसे बदल सकता हूं?रनटाइम
(मैं सी ++ का उपयोग कर रहा हूं)
ओएस विंडोज़ है।
के साथ पहली मेमोरी विशेषताओं की जांच करें कौन सा ऑपरेटिंग सिस्टम? – elcuco
हालांकि आप ऐसा करने की कोशिश क्यों कर रहे हैं? निश्चित रूप से एकमात्र कारण कामकाजी स्मृति की मात्रा को कम करना है क्योंकि आप डिस्क से कोड के अनुभाग लोड कर सकते हैं। यदि आप समझाते हैं कि आप क्या करने की कोशिश कर रहे हैं, तो हम मदद कर सकते हैं। – thecoshman
स्व-संशोधित कोड कठिन है। यह ओएस पूरी तरह से असेंबली में लिखा गया था क्योंकि मध्य-स्तर की भाषा में स्वयं-संशोधित कोड की अनुमति देने के लिए वाक्यविन्यास नहीं है: http://valerieaurora.org/synthesis/SynthesisOS/abs.html। –