objdump命令

  • Post category:other

objdump命令

objdump是一个强大的二进制文件分析工具,可以用于查看二进制文件的汇编代码、符号表、重定位表等信息。本攻略将介绍objdump的基本用法和示例。

基本用法

objdump的基本用法如下:

objdump [options] file

其中,file是要分析的二进制文件,options是命令选项,可以用于指定分析的内容和格式等。

以下是常用的命令选项:

  • -d:显示二进制文件的汇编代码。
  • -t:显示二进制文件的符号表。
  • -r:二进制文件的重定位表。
  • -S:同时显示汇编代码和源代码。
  • -x:显示所有头部信息。

示例:查看二进制文件的汇编代码

以下是使用objdump查看二进制文件的汇编代码的示例:

objdump -d a.out

其中,a.out是要分析的二进制文件。

输出结果类似于:

a.out:     format elf64-x86-64


Disassembly of section .init:

0000000000001000 <_init>:
    1000:   48 83 ec 08             sub    $0x8,%rsp
    1004:   48 8b 05 d 2f 00 00    mov    0x2f0d(%rip),%rax        # 3f18 <__gmon_start__>
    100b:   48 85 c0                test   %rax,%rax
    100e:   74 02                   je     1012 <_init+0x12    1010:   ff d0                   callq  *%rax
    1012:   48 83 c4 08             add    $0x8,%rsp
    1016:   c3                      retq

其中,a.out是要分析的二进制文件。

示例2:查看二进制文件的符号表

以下是使用objdump查看二进制文件的符号表的示例:

objdump -t a.out

其中,a.out是要分析的二进制文件。

输出结果类似于:

a.out:     file format elf64-x86-64

SYMBOL TABLE:
0000000000000000 l    df *ABS*  0000000000000000              crtstuff.c
0000000000000000 l    df *ABS*  0000000000000000              crti.o
0000000000000000 l    df *ABS*  0000000000000000              crtbegin.o
00000000000000e0 l     F .text  0000000000000000              deregister_tm_clones
0000000000000110 l     F .text  0000000000000000              register_tm_clones
0000000000000150 l     F .text  0000000000000000              __do_global_dtors_aux
0000000000000190 l     F .text  0000000000000000              frame_dummy
0000000000001f0 l     F .text  0000000000000000              main
00000000000022a l     F .text  0000000000000000              __libc_csu_init
0000000000002a0 l     F .text  0000000000000000              __libc_csu_fini
0000000000002a8 l     O .data  0000000000000000              completed.7584
0000000000002b0 l     O .bss   0000000000000000              dtor_idx.7586
0000000000002b8 l     O .bss   0000000000000000              __dso_handle
0000000000002c0 l     O .bss   0000000000000000              object.7588
0000000000000000 l    df *ABS*  0000000000000000              crtend.o
0000000000000000 l    df *ABS*  0000000000000000              crtn.o

其中,a.out是要分析的二进制文件。

结论

在本攻略中,我们介绍了objdump的基本用法和示例。objdump是一个强大的二进制文件分析工具,可以用于查看二进制文件的汇编代码、符号表、重定位表等信息。如果您需要分析二进制文件,可以考虑使用objdump。