如何获取与 objdump 输出的标签相对应的 ELF 二进制文件中的文件偏移量
How do I get the file offset in an ELF binary corresponding to a label outputted by objdump?
>假设我有一个ELF二进制prog
,并假设objdump -d prog
生成以下行[片段]的输出:
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 文档中:
objdump ..snip.. [-F|--file-offsets] ..snip..
尝试使用 objdump -DF prog
。您应该会看到每个标签都与文件偏移量一起列出,其中包含以下信息:
0000000000400601 <.cstart_c941>: (File Offset: 0xXXXXXXXX)
0xXXXXXXXX
应该是该标签的文件偏移量。
相关文章:
- 如何计算具有指定类型的表达式的相对精度和绝对精度
- 如何使用cppcheck处理半相对包含路径
- C 和 C++ 中开关语句的案例标签的常量值,但显示不同的行为
- 如何正确指定 goto 语句的标签?
- 为什么字符串比较的 == 运算符相对于任一字符串长度线性时间(似乎)?
- 使用g++静态初始化带有命名标签的嵌套C++结构
- 使用哈希图进行相对排序
- 通过水平滚动条更改标签
- 有没有办法保证析构函数的相对顺序?
- Windows 和 Linux 之间的相对路径分辨率差异?
- 从 QFontDatabase 设置 QFont 将所有标签设置为等宽字体?Qt C++
- 为什么从具有较大阵列的 SIMD 内部函数中获得的相对加速比标量更大?
- MOVNTI 存储是否相对于由同一线程创建的其他 MOVNTI 存储重新排序?
- 如何获取 CMake 单元测试的相对路径?
- 在C++中存储要输入的标签列表
- 如何在等效列表中查找最小的连接标签
- 标签检测鼠标单击 c++
- std::atomic 和 std::mutex 的相对性能
- 无法将行编辑中的文本打印到 Qt C++ 中的标签
- 如何获取与 objdump 输出的标签相对应的 ELF 二进制文件中的文件偏移量