मैं क्यूमु के लिए नया हूं और मैंने पढ़ा है कि यह सिंगलस्टेप मोड इम्यूलेशन के लिए अनुमति देता है। यह सहायक है क्योंकि मैं हर चक्र में भौतिक राम के कुछ पतों को डंप करने की कोशिश कर रहा हूं। दुर्भाग्यवश, क्यूमू दस्तावेज बहुत खराब है। मुझे पता है कि क्यूमु मॉनीटर से सिंगलस्टेप मोड को कैसे सक्षम किया जाए, लेकिन मुझे नहीं पता कि कोड को कहां रखना है जिसे मैं हर चरण में निष्पादित करना चाहता हूं। क्या किसी के पास इस बारे में कोई जानकारी है?क्यूईएमयू में एकल चरण मोड का उपयोग कैसे करें?
उत्तर
आप QEMU को
--gdb टीसीपी के साथ अतिथि को संलग्न करने के लिए gdb उपयोग कर सकते हैं ::
विकल्प और उसके बाद का उपयोग
$ gdb <binary>
(gdb) symbol-file <sym file>
(gdb) target remote <host>:<port number>
(gdb) b <function>
(gdb) c
'बी' के एक ब्रेकपाइंट सेट। कोड के बावजूद 'n' '' 'i' का उपयोग किया जा सकता है। gdb मोड में "जानकारी" में प्रवेश कर और अधिक जानकारी
और अच्छी तरह से -singlestep मोड है - सुनिश्चित नहीं है कि कैसे यह काम करता है - शायद यह जीडीबी के लिए प्रत्येक चरण में एक ब्रेकपॉइंट उठाता है? –
यहां एक और विस्तृत QEMU GDB सेटअप मार्गदर्शिका है: https://stackoverflow.com/a/33203642/895245 –
http://www.xenproject.org/help/questions-and-answers/problem-with-vga-passthrough.html
लिंक ऊपर से QEMU के लिए singlestep मोड में प्रवेश करने के लिए आदेश पंक्ति विकल्प है दिखाएगा। do_singlestep (मॉनिटर * मोन, स्थिरांक QDict * qdict)
बस एक झंडा "singlestep" सेट: अगली QEMU (http://wiki.qemu.org/Download)
के लिए समारोह monitor.c स्रोत कोड प्राप्त करने के लिए है। ध्यान दें कि यह "singlestep_enabled" जैसा नहीं है, जो हार्डवेयर सिंगलस्टेप इम्यूलेशन का अनुकरण करना है।
(वैश्विक var vl.c में घोषित किया गया है)।
अब targt-i386/translate.c में सभी कार्यों की जांच - जहां "singlestep" झंडा परीक्षण कर रहे हैं कर रहे हैं:
if (singlestep) {
gen_jmp_im(pc_ptr - dc->cs_base);
gen_eob(dc);
break;
}
इस स्थान पर बाइनरी या तो क्रियान्वित कर रहे हैं (या "अनुवाद" है अधिक सटीक होने के लिए), या अन्यथा हार्डवेयर अपवाद उठाया और हैंडलर (उदाहरण के लिए)। यदि कोई ऐसा व्यवहार है जिसे आप संशोधित करना चाहते हैं तो शायद आप यहां आज़मा सकते हैं?
- 1. एकल चरण
- 2. क्यूईएमयू
- 3. एंड्रॉइड में एकल एप्लिकेशन मोड (सीओएसयू) को कैसे कार्यान्वित करें?
- 4. उपयोगकर्ता मोड मेमोरी का उपयोग कैसे करें?
- 5. ऑफलाइन मोड में उल्का का उपयोग करें
- 6. एकल-पृष्ठ-एप्लिकेशन में SecureSocial का उपयोग कैसे करें
- 7. सर्वर मोड में Tika का उपयोग कैसे करें
- 8. ओरेकल क्वेरी सिंटैक्स मोड में HSQLDB का उपयोग कैसे करें?
- 9. मछली खोल में वीआई मोड का उपयोग कैसे करें?
- 10. 32 बिट मोड में PyCharm का उपयोग कैसे करें
- 11. शेक्स-एकल के साथ Berkshelf का उपयोग कैसे करें?
- 12. एक्सकोड उपयोगकर्ता का उपयोग कैसे करें चरण चरण में रन स्क्रिप्ट से बिल्ड सेटिंग्स को परिभाषित करें?
- 13. रेल पर रूबी में एकल चरण बैच हटाएं
- 14. डिबग कैसे करें (चरण में) BinaryFormatter.Deserialize()?
- 15. एकल के लिए एकल नोड्स का चयन कैसे करें XSLT
- 16. ड्रॉपबॉक्स के लिए एकल साइन ऑन का उपयोग कैसे करें?
- 17. एकल-उपयोगकर्ता मोड से बाहर निकलें
- 18. एक ओकंपल प्रोग्राम चरण-दर-चरण कैसे डीबग/निष्पादित करें?
- 19. सी # का उपयोग कर उपलब्ध वीडियो मोड कैसे सूचीबद्ध करें?
- 20. थ्रेड कमांड के चरण और चरण में चरण के लिए क्या उपयोग है?
- 21. Desc ऑर्डर मोड में EventLogReader का उपयोग करें?
- 22. एक्सकोड डीबगर - सीपीयू निर्देशों के स्तर पर एकल चरण कैसे करें
- 23. थका हुआ मोड एकल खिड़की? (emacs)
- 24. SQL सर्वर एकल उपयोगकर्ता मोड में क्यों गया?
- 25. SQLite डीबी परिवर्तनों के लिए एकल चरण पूर्ववत कैसे कार्यान्वित करें?
- 26. Django में एकल एप्लिकेशन (प्रोजेक्ट नहीं) का परीक्षण कैसे करें?
- 27. MigLayout का उपयोग कैसे करें?
- 28. चरण
- 29. एकल कॉलम में एकाधिक मानों को कैसे स्टोर करें जहां कम स्मृति का उपयोग करें?
- 30. सी ++ में एनएलओजी का उपयोग कैसे करें?
क्या @peter से उत्तर आपकी मदद करता है? – stackoverflowwww
संबंधित: https://reverseengineering.stackexchange.com/questions/4738/using-qemu-monitor-interface-to-extract-execution-traces-from-a-binary –