簡體   English   中英

ELF和C中的虛擬地址

[英]ELF and virtual address in C

我正在研究測試,並且我有以下問題:在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

入口點將我“帶”到哪里? 哪些部分靠近它?

如果您是個學究者,則沒有足夠的信息可以告訴。 如果我們假設_start是入口點(這是典型的,但不是強制性的),則假定x的大小為4個字節,並且x_start之間沒有其他內容,則x的地址顯然是_start - 4 請注意,在.data節中有入口點是不正常的。

對於第二個代碼,除非您檢查二進制文件中的標頭,否則您無法分辨.bss.data_start關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM