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"است.

جستارهای وابسته

پیوند به بیرون