gpt4 book ai didi

c++ - 如何获取 ELF 二进制文件中与 objdump 输出的标签相对应的文件偏移量?

转载 作者:太空狗 更新时间:2023-10-29 11:31:29 26 4
gpt4 key购买 nike

假设我有一个 ELF 二进制文件 prog 并假设 objdump -d prog 产生以下行的输出 [snippet]:

0000000000400601 <.cstart_c941>:
400601: eb 01 jmp 400604 <.end_c941>

0000000000400603 <.cslot_c941>:
400603: 84 .byte 0x84

0000000000400604 <.end_c941>:
400604: 48 81 ec 80 00 00 00 sub $0x80,%rsp
40060b: 50 push %rax
40060c: 53 push %rbx
40060d: 56 push %rsi
40060e: 48 31 c0 xor %rax,%rax
400611: 48 c7 c6 41 06 40 00 mov $0x400641,%rsi

我需要的是.cslot_c941对应的文件偏移量,因为我需要修改这个位置的字节。

我将如何完成这项任务?

最佳答案

您可以使用 -F 获取 OBJDUMP 来转储文件偏移量。来自OBJDUMP documentation :

objdump 
..snip..
[-F|--file-offsets]
..snip..

尝试使用 objdump -DF prog。您应该看到每个标签都列出了文件偏移量,其中包含如下信息:

0000000000400601 <.cstart_c941>: (File Offset: 0xXXXXXXXX)

0xXXXXXXXX 应该是该标签的文件偏移量。

关于c++ - 如何获取 ELF 二进制文件中与 objdump 输出的标签相对应的文件偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43377195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com