相关疑难解决方法(0)

@plt在这里意味着什么?

0x00000000004004b6 <main+30>:   callq  0x400398 <printf@plt>
Run Code Online (Sandbox Code Playgroud)

有谁知道?

UPDATE

为什么两个disas printf给我不同的结果?

(gdb) disas printf
Dump of assembler code for function printf@plt:
0x0000000000400398 <printf@plt+0>:  jmpq   *0x2004c2(%rip)        # 0x600860 <_GLOBAL_OFFSET_TABLE_+24>
0x000000000040039e <printf@plt+6>:  pushq  $0x0
0x00000000004003a3 <printf@plt+11>: jmpq   0x400388

(gdb) disas printf
Dump of assembler code for function printf:
0x00000037aa44d360 <printf+0>:  sub    $0xd8,%rsp
0x00000037aa44d367 <printf+7>:  mov    %rdx,0x30(%rsp)
0x00000037aa44d36c <printf+12>: movzbl %al,%edx
0x00000037aa44d36f <printf+15>: mov    %rsi,0x28(%rsp)
0x00000037aa44d374 <printf+20>: lea    0x0(,%rdx,4),%rax
0x00000037aa44d37c <printf+28>: lea    0x3f(%rip),%rdx        # 0x37aa44d3c2 <printf+98>
Run Code Online (Sandbox Code Playgroud)

assembly disassembly

71
推荐指数
2
解决办法
3万
查看次数

程序链接表的目的是什么?

我很好奇为什么程序链接表存在.它有什么用途?程序集无法直接调用全局偏移表吗?调用PLT有什么优势可以调用全局偏移表?

整个过程仍然让我感到困惑,我正试图弄清楚动态链接的进出,所以任何帮助都会受到赞赏.

c linux binary x86

15
推荐指数
1
解决办法
5961
查看次数

标签 统计

assembly ×1

binary ×1

c ×1

disassembly ×1

linux ×1

x86 ×1