मैं एक प्रक्रिया के एक निश्चित पते तक पहुंचना चाहता हूं। लेकिन इसके लिए मुझे पहले प्रक्रिया का मूल पता प्राप्त करने की आवश्यकता है। मैं यह देखने के लिए एक उपकरण का उपयोग कर रहा हूं कि मैं वास्तव में इसे सही कर रहा हूं या नहीं। उपकरण मैं निम्नलिखित की जरूरत है पता चलता है: "app.exe"+0x011F9B08 = 0x119F8300
प्रक्रिया का आधार पता
मैंने सोचा था कि मैं OpenProcess()
के माध्यम से एक प्रक्रिया के आधार पता प्राप्त कर सकते हैं, लेकिन यह मुझे देता है: 0x0000005c
एक परिणाम के रूप। मुझे नहीं लगता कि यह सही है? कम से कम, मुझे क्या चाहिए।
मुझे लगता है कि आधार का पता मुझे जरूरत है: 0x119F8300 - 0x011F9B08 = 0x107FE7F8 <-- base?
यह मेरा कोड है:
hWindow = FindWindow(NULL, lpWindowName);
if(hWindow)
{
GetWindowThreadProcessId(hWindow, &dwProcId);
if(dwProcId != 0)
{
// hProcHandle -> 0x0000005c
hProcHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcId);
}
else
{
return 0;
}
}
कैसे मैं प्रक्रिया के आधार पता है कि मैं खोल दिया है मिल सकता है?
"प्रक्रिया के आधार पते" से आपका क्या मतलब है? – NPE
शायद आपको [आभासी स्मृति] (http://en.wikipedia.org/wiki/Virtual_memory) के बारे में जानने की आवश्यकता है –
क्या आप _another_ चलने की प्रक्रिया की स्मृति को पढ़ने की कोशिश कर रहे हैं और उस मूल पते को जानने की आवश्यकता है जिस पर छवि थी उस प्रक्रिया के आभासी पता स्थान में मैप किया गया? –