如何在gdb中反汇编elf剥离文件?
如何在gdb中使用strip命令后反汇编文件?您可以使用gdb如何在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
x/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
0x400390: xor %ebp,%ebp
0x400392: mov %rdx,%r9
0x400395: pop %rsi
0x400396: mov %rsp,%rdx
但是您可能正在寻找的是
objdump-da.out
您也可以使用反汇编
命令。它的工作原理类似于x/i
,但它有可选的r
ndm
标志,分别显示指令的原始编码和源代码行号对应
使用反汇编/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
ndm
标志,分别显示指令的原始编码和源代码行号对应
使用反汇编/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
接受指令中的大小,而反汇编
接受字节大小