我正在使用 linux 可执行文件,只是想知道如何在反汇编 ELF 时将节名称解析为地址。
例如从 objdump 中获取一些随机反汇编输出,
4002b5: 00 00 add %al,(%rax)
4002b7: 00 67 55 add %ah,0x55(%rdi)
4002ba: 61 (bad)
4002bb: 10 .byte 0x10
Disassembly of section .dynsym:
00000000004002c0 <.dynsym>:
...
4002d8: 9b fwait
4002d9: 00 00 add %al,(%rax)
4002db: 00 12 add %dl,(%rdx)
...
4002ed: 00 00 add %al,(%rax)
4002ef: 00 32 add %dh,(%rdx)
4002f1: 00 00 add %al,(%rax)
4002f3: 00 12 add %dl,(%rdx)
...
400305: 00 00 add %al,(%rax)
400307: 00 17 add %dl,(%rdi)
如果从启发式的角度来看,它如何检测到该地址处的部分称为 dynsm?.text、.bss 甚至 objdump 列出的函数(例如“main”)也是如此。
如果我自己编写一个反汇编工具 + 可执行分析器,我将如何重现这个?
谢谢






