دستور objdump
objdump یک برنامه برای نمایش اطلاعات مختلف در مورد ابجکت فایلها در سیستمهای مشابه Unix است. به عنوان مثال، میتوان از آن را به عنوان disassembler برای مشاهده فایل اجرایی در فرم اسمبلی استفاده کرد. این بخشی از "GNU Binutils" برای کنترل دقیق بر فایلهای اجرایی و سایر دادههای باینری است.
مثلاً،
$ objdump -D -M intel file.bin | grep main. : -A20
این کار بازگردانی به اسمبلی را در فایل «file.bin» انجام میدهد، با کد اسمبلی که با سیتکس اینتل نشان داده میشود. سپس آن را به "grep" هدایت میکنیم که تابع "main" را جستجو میکند و ۲۰ خط کد آن را نمایش میدهد.
مثال خروجی:
4004ed: 55 push rbp
4004ee: 48 89 e5 mov rbp,rsp
4004f1: c7 45 ec 00 00 00 00 mov DWORD PTR [rbp-0x14],0x0
4004f8: c7 45 f0 01 00 00 00 mov DWORD PTR [rbp-0x10],0x1
4004ff: c7 45 f4 02 00 00 00 mov DWORD PTR [rbp-0xc],0x2
400506: c7 45 f8 03 00 00 00 mov DWORD PTR [rbp-0x8],0x3
40050d: c7 45 fc 04 00 00 00 mov DWORD PTR [rbp-0x4],0x4
400514: c7 45 ec 00 00 00 00 mov DWORD PTR [rbp-0x14],0x0
40051b: eb 13 jmp 400530 <main+0x43>
40051d: 8b 05 15 0b 20 00 mov eax,DWORD PTR [rip+0x200b15] # 601038 <globalA>
400523: 83 e8 01 sub eax,0x1
400526: 89 05 0c 0b 20 00 mov DWORD PTR [rip+0x200b0c],eax # 601038 <globalA>
40052c: 83 45 ec 01 add DWORD PTR [rbp-0x14],0x1
400530: 8b 05 02 0b 20 00 mov eax,DWORD PTR [rip+0x200b02] # 601038 <globalA>
400536: 39 45 ec cmp DWORD PTR [rbp-0x14],eax
400539: 7c e2 jl 40051d <main+0x30>
40053b: 5d pop rbp
40053c: c3 ret
40053d: 0f 1f 00 nop DWORD PTR [rax]
objdump از کتابخانه BFD برای خواندن محتویات ابجکت فایل استفاده میکند.
ابزارهای مشابه "Borland TDUMP" , "Microsoft DUMPBIN" و "readelf"است.
جستارهای وابسته
پیوند به بیرون
- لینوکس دستورات کاربری صفحه راهنما –
- لینوکس دستورات کاربری صفحه راهنما –
- Binutils::Objdump - Perl interface to objdump