[英]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.