executable - objdump and gdb spits different assembly results -


छवि दर्ज करें यहाँ विवरण

आपको छवि में दिए गए निर्देशों को पढ़ने के लिए छवि को सहेजना होगा

ठीक है, यहां समस्या है।

मैं काम कर रहा हूं केवल एक समय के लिए बम ब्लाक पर और मैं इस मुद्दे के साथ रह रहा हूं

ओब्जेडम्प और जीडीबी की अलग विधानसभा कोड जनरेशन।

मेरा लैपटॉप 64-बिट उबंटू 14.04 एलटीएस चल रहा है और < / P>

मैंने बम्ब्लाब पर काम करने के लिए 32 बिट ग्लिबैक स्थापित किया है (क्योंकि यह 32-बिट एंव में संकलित है)

ठीक है, पहले प्रतीकों का प्रदर्शन नहीं हो रहा है और मुझे वास्तव में नहीं मिलता है क्या जीडीबी थूकना है?

क्या कोई मुझे बता रहा है कि क्या हो रहा है?

जब आपने phase_2 पर एक ब्रेकपॉइंट रखा, gdb 0x 8048b50 पर एक int3 निर्देश रखने के लिए चल छवि को पैच किया, जो अभी चरण 2 के बाद है की फ़ंक्शन प्रस्तावना ने स्टैक एफ की स्थापना समाप्त कर ली है टहनी। तो इसके बजाय

  0x8048b50: 8b mov edx, DWORD PTR [ebp + 0x8] 0x8048b51: 55 0x8048b52: 08  

के बजाय अब

  0x8048b50: cc int3 0x8048b51: 55 पुश ईबीपी 0x8048b52: 08 एक 'या' निर्देश के पहले बाइट  

और वह gdb है प्रदर्शित। आखिरकार चीजों को वापस समन्वयित किया जाता है और disassemble कमांड निर्देशों की सही श्रृंखला प्रदर्शित करने के लिए शुरू होता है।

जो प्रदर्शित होता है में अंतर कार्यक्रम के सही निष्पादन को प्रभावित नहीं करेगा; ब्रेकपॉईंट से आगे बढ़ने से पहले, gdb या तो 8b बाइट को वापस छवि में रखेगा या यह कृत्रिम रूप से mov निर्देश को निष्पादित करेगा और फिर 0x8048b53 पर निष्पादन जारी रखेगा।


Comments

Popular posts from this blog

Pygame memory leak with transform.flip -

python - Writing Greek in matplotlib labels, titles -

C# code to obtain Maximum SQL Server 2012 Write Performance -