ELF文件text中数据的偏移如何转换为文件偏移地址
本帖最后由 zhuayi112 于 2023-10-2 00:35 编辑假如有个 elf 文件,使用 objdump 导出汇编指令,
其中有一条指令如下:
12a936f: f3 0f 59 05 d9 d1 e9 mulss0xe9d1d9(%rip),%xmm0 # 2146550 <CSWTCH.2848+0x70>
0xe9d1d9的数据存在.rodata中,不知道用什么公式计算出0xe9d1d9对应文件位置偏移。
求大佬帮解答下。
找到了会计算了,绕了一大圈 文件地址+基地址-代码地址= 偏移
要计算出0xe9d1d9对应的文件位置偏移,您需要了解ELF文件的结构和相关的符号表信息。在ELF文件中,符号表存储了各种符号的信息,包括地址和名称。
您可以使用objdump命令来查看ELF文件的符号表信息。以下是一个示例命令:
```
objdump -t your_file.o
```
请将"your_file.o"替换为您的ELF文件的路径和名称。
在符号表输出中,您需要查找包含0xe9d1d9值的符号。通常,这些符号会以某种形式与地址相关联。一种常见的表示方式是"<symbol_name>+<offset>",其中"<symbol_name>"是符号的名称,"<offset>"是相对于符号的偏移量。
查找包含0xe9d1d9值的符号后,您可以使用objdump命令来查看该符号的详细信息,包括其在文件中的偏移量。以下是一个示例命令:
```
objdump -dr your_file.o | grep "<symbol_name>"
```
请将"your_file.o"替换为您的ELF文件的路径和名称,并将"<symbol_name>"替换为您找到的符号名称。
该命令将显示与该符号相关的汇编代码,并在其中找到包含0xe9d1d9值的指令。该指令通常会显示其在文件中的偏移量,您可以从中获取所需的文件位置偏移。
请注意,上述命令仅适用于Linux系统上的objdump工具。如果您使用的是其他操作系统或工具链,请相应地调整命令。
页:
[1]