लेखन यह खिड़कियों के तहत एक प्रोग्राम है जो एक दूरस्थ प्रक्रिया धागा एक पूर्वनिर्धारित पता पहुँचने पर (है कि सूत्र में बंद निष्पादन) को तोड़ने के लिए कारण होगा लिखने के लिए संभव है?एक बहुत ही बुनियादी डिबगर
मैं Windows डीबग एपीआई के साथ प्रयोग किया गया है, लेकिन यह बहुत ही सीमित है, जब यह breakpoints स्थापित करने की बात आती है लगता है। DebugBreakProcess फ़ंक्शन आशाजनक लग रहा था, लेकिन मुझे इस API कॉल का उपयोग करने के तरीके पर कोई उदाहरण नहीं मिल रहा है।
तो मैं कुछ ऐसा कर सकता था: 1. पूर्व निर्धारित पते (पीए) पर वर्तमान सेशन पढ़ें और इसे स्टोर करें 2. एक 3 एक्स अपवाद उत्पन्न करने के लिए op को 0xCC और NOPS के साथ बदलें (क्या int 3 अपवाद स्वचालित रूप से होगा निष्पादन रोक?) 3. पकड़ने EXCEPTION_DEBUG_EVENT 4. मैं धागे के निष्पादन सही ढंग से बंद कर दिया है, लेकिन मैं कोड का हिस्सा बदल दिया है और अवांछित परिणाम प्राप्त हो जाएगा। मैं पीए में संग्रहीत ओपी को फिर से लिखने की कोशिश कर सकता था लेकिन क्या यह पहले से ही बहुत देर हो चुकी नहीं है? क्या मैं मैन्युअल रूप से ओपी को मैन्युअल रूप से निकालने के लिए रिमोट थ्रेड को मजबूर कर सकता हूं? – ldog
पैच के लिए बहुत देर हो जाएगी - लक्ष्य आईपी नहीं बदला है और जारी रखने से डीब्यूजी अपवाद को फिर से जारी कर देगा यदि आपने कोड नहीं बदला है। – Michael
मुझे पैचिंग में समस्याएं आ रही हैं। मैं तोड़ बिंदु निर्धारित कर सकते हैं और मैं ब्रेकप्वाइंट अपवाद पकड़ कर सकते हैं लेकिन वापस मूल opcode मैं पहुँच voilation अपवाद प्राप्त जिसका अर्थ है कि कार्यक्रम ठीक से कोड exectue नहीं है लिखने के लिए जब मैं WriteProcessMemory की कोशिश करो। मैं WriteProcessMemory के बाद फ्लशइनस्ट्रक्शन कैश करता हूं लेकिन यह मदद नहीं करता है। – ldog