假设我有一个ELF二进制文件jasmine.getEnv().afterEach(done =>
[ts] Argument of type '(done: any) => void' is not assignable to parameter of type '() => void'.
(parameter) done: any
并假设prog
沿着以下行生成输出[snippet]:
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
对应的文件偏移量,因为我需要修改此位置的字节。
我将如何完成此任务?
答案 0 :(得分:6)
您可以使用-F
获取 OBJDUMP 以转储文件偏移量。来自OBJDUMP documentation:
objdump ..snip.. [-F|--file-offsets] ..snip..
尝试使用objdump -DF prog
。您应该看到每个标签都带有文件偏移量,其中包含以下信息:
0000000000400601 <.cstart_c941>: (File Offset: 0xXXXXXXXX)
0xXXXXXXXX
应该是该标签的文件偏移量。