將二進制可執行文件加載到內存中時,可以使用十六進制編輯器和彙編代碼中的符號對其進行反彙編甚至查看。這些總是以像0x804這樣的東西開始的......我認爲它是程序存儲器部分。但是我的問題是,由於這些地址不是從程序開始的偏移量,所以二進制程序如何知道它將被加載到內存中的位置?二進制可執行文件如何知道它在內存中的位置?
回答
可執行文件通常有一個標題,其中一個字段是加載地址。
但文件不能*總是*被加載到相同的位置,可以嗎? – Jumhyn 2012-03-01 00:34:55
在Windows上,EXE的默認加載位置是0x400000,EXE始終可用,除了預裝載的系統DLL具有(其他)固定位置以外,始終是首先加載進程的EXE。 – 2012-03-01 00:42:19
@Jhhyn什麼可以展示一個可執行文件被加載在相同的位置?你是對的圖書館 - 該位置可以用於其他事情。但對於可執行文件,您正在爲新的可執行文件創建一個新的地址空間,因此它全部免費開始。 – 2012-03-01 01:10:11
- 1. 如何打開可執行二進制文件而不在ollydbg中運行它?
- 2. 32位內核如何運行64位二進制文件?
- 3. 如何在我的Javascript中執行二進制文件?
- 4. 有誰知道我可以如何在Riak中存儲大的二進制值?
- 5. 將可執行二進制文件添加到內核映像
- 6. 如何知道main()在內存中的位置?
- 7. 在iPhone上執行二進制文件
- 8. 如何爲非可執行二進制文件生成CFG
- 9. 如何在多線程HPC羣集中運行二進制可執行文件?
- 10. 執行格式錯誤。二進制文件不可執行
- 11. 是否可以在java中執行二進制文件?
- 12. MATLAB讀取二進制文件(十六進制)的內容,知道格式
- 13. 如何知道script.py的文件名,同時用ironpython執行它
- 14. 如何在Mac OS X上將二進制文件的內容嵌入到可執行文件中?
- 15. 在寶石中銷售二進制可執行文件的可行性?
- 16. 如何知道可執行文件中有哪些功能?
- 17. 如何在C中找到可執行文件的位置?
- 18. 將.m文件轉換爲二進制可執行文件
- 19. 將JRuby二進制文件打包成可執行文件夾
- 20. 我如何在二進制可執行文件中包含雞模塊
- 21. 如何執行文本文件的二進制搜索
- 22. bash,無法執行二進制文件
- 23. 無法執行二進制文件centos?
- 24. PhantomJs無法執行二進制文件
- 25. 用shebang執行二進制文件
- 26. AWS:不能執行二進制文件
- 27. GCC編譯的二進制文件給予 「不能執行二進制文件」
- 28. g ++編譯的二進制文件給「不能執行二進制文件」
- 29. 如何在Qt程序中嵌入二進制可執行文件(在運行時執行)?
- 30. 讀二進制文件不知道文件格式
目前尚不清楚你在問什麼。你在問一個正在運行的可執行文件如何確定它在內存中的位置?如果是這樣,爲什麼需要知道?另外,您是否正在考慮一些特定的平臺?請參閱本文檔的[裝載程序]部分(http://www.iecc.com/linker/linker08.html)。 – 2012-03-01 00:25:38
我更多地詢問程序中的地址是如何準確的。一個程序並不總是能夠被加載到相同的位置,所以這些地址如何指向正確的東西。 – Jumhyn 2012-03-01 00:34:37
是的,它可以。 http://en.wikipedia.org/wiki/Paging – 2012-03-01 00:38:23