Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在gdb中反汇编elf剥离文件?_Gdb - Fatal编程技术网

如何在gdb中反汇编elf剥离文件?

如何在gdb中反汇编elf剥离文件?,gdb,Gdb,如何在gdb中使用strip命令后反汇编文件?您可以使用gdbx/i命令,例如 (gdb) x/4i 0x400390 0x400390: xor %ebp,%ebp 0x400392: mov %rdx,%r9 0x400395: pop %rsi 0x400396: mov %rsp,%rdx 但是您可能正在寻找的是objdump-da.out您可以使用GDBx/i命令,例如 (gdb) x/4i 0x400390

如何在gdb中使用strip命令后反汇编文件?

您可以使用gdb
x/i
命令,例如

(gdb) x/4i 0x400390
   0x400390:    xor    %ebp,%ebp
   0x400392:    mov    %rdx,%r9
   0x400395:    pop    %rsi
   0x400396:    mov    %rsp,%rdx

但是您可能正在寻找的是
objdump-da.out

您可以使用GDB
x/i
命令,例如

(gdb) x/4i 0x400390
   0x400390:    xor    %ebp,%ebp
   0x400392:    mov    %rdx,%r9
   0x400395:    pop    %rsi
   0x400396:    mov    %rsp,%rdx

但是您可能正在寻找的是
objdump-da.out

您也可以使用
反汇编
命令。它的工作原理类似于
x/i
,但它有可选的
r
nd
m
标志,分别显示指令的原始编码和源代码行号对应

使用
反汇编/rm

(gdb) p free
$1 = {void (void *)} 0x7ffff7df0980 <free>
(gdb) disassemble /rm free,+13
Dump of assembler code from 0x7ffff7df0980 to 0x7ffff7df098d:
121 in dl-minimal.c
   0x00007ffff7df0987 <free+7>: 53                      push   %rbx
   0x00007ffff7df0988 <free+8>: 48 89 fb                mov    %rdi,%rbx

122 in dl-minimal.c
123 in dl-minimal.c
   0x00007ffff7df0980 <free+0>: 48 3b 3d 49 d8 20 00    cmp    0x20d849(%rip),%rdi        # 0x7ffff7ffe1d0 <alloc_last_block>
   0x00007ffff7df098b <free+11>:    74 03               je     0x7ffff7df0990 <free+16>

End of assembler dump

反汇编
相比,
x/i
的优点(取决于您的需要),
x/i
接受指令中的大小,而
反汇编
接受字节大小。

您也可以使用
反汇编
命令。它的工作原理类似于
x/i
,但它有可选的
r
nd
m
标志,分别显示指令的原始编码和源代码行号对应

使用
反汇编/rm

(gdb) p free
$1 = {void (void *)} 0x7ffff7df0980 <free>
(gdb) disassemble /rm free,+13
Dump of assembler code from 0x7ffff7df0980 to 0x7ffff7df098d:
121 in dl-minimal.c
   0x00007ffff7df0987 <free+7>: 53                      push   %rbx
   0x00007ffff7df0988 <free+8>: 48 89 fb                mov    %rdi,%rbx

122 in dl-minimal.c
123 in dl-minimal.c
   0x00007ffff7df0980 <free+0>: 48 3b 3d 49 d8 20 00    cmp    0x20d849(%rip),%rdi        # 0x7ffff7ffe1d0 <alloc_last_block>
   0x00007ffff7df098b <free+11>:    74 03               je     0x7ffff7df0990 <free+16>

End of assembler dump
反汇编
相比,
x/i
的优点(取决于您的需要),
x/i
接受指令中的大小,而
反汇编
接受字节大小