C中的ELF和虚拟地址

时间:2015-07-20 15:43:48

标签: assembly architecture elf virtual-address-space

我正在学习考试,我有以下问题: 在ELF头中,据说文件的入口点是0x8049058

代码是:

section .data
    x: dd 3

    _start: mov ecx, [x]
    ...
    ...
    ... ;more code

问:运行时x的虚拟地址是什么?

正确答案是0x0849054

有人可以说清楚这个吗? 如果x将如下,它是否仍然在同一地址?

section .bss
x: resb 4

section .data

_start: mov ecx, [x]
...
...
... ;more code

哪里有一个切入点“拿”我? 哪些部分接近它?

1 个答案:

答案 0 :(得分:3)

如果你是迂腐的话,没有足够的信息可讲。如果我们假设$messageid是入口点(这是典型的,但不是强制性的),那么假设_start的大小是4个字节,x和{之间没有其他内容{1}},x的地址显然是_start。请注意,在x部分中设置入口点是不正常的。

对于第二个代码,除非您检查二进制文件中的标题,否则无法确定_start - 4.data.bss的关系。