【发布时间】:2017-09-08 16:28:22
【问题描述】:
假设我有一个 ELF 二进制文件 prog 并假设 objdump -d prog 产生以下行的输出 [sn-p]:
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对应的文件偏移量,因为我需要修改这个位置的字节。
我将如何完成这项任务?
【问题讨论】:
-
使用节标题 (
objdump -h) 并通过虚拟地址偏移量进行调整。或者,只需搜索足够长的字节序列。 -
@Jester - 你能详细说明你的答案吗?
标签: c++ linux assembly x86 elf