-1
Q
位置無關的代碼
A
回答
0
無論何時加載二進制文件,它們都是虛擬化的,這涉及很多事情,但對PIC來說最重要的是,它意味着二進制文件可以加載並基於幾乎任何地址,所以PIC做了什麼來克服這一點,可以使用相對地址(因爲這些地址不需要重新定位)。
在上面的例子中,其不可能創建只需PUSH
的相對地址,因爲這將被推動的地址將是一個偏移到.text/.RODATA部(或從某些優選的鹼製成的赦免地址地址),但它不會被調整到二進制文件當前的虛擬地址,因此您需要在推送之前調整地址(最簡單的方法可能是通過RIP相對地址,因此您可以使用PUSH [RIP + <dist from $here to string aka str1 - $>]
)。
相關問題
- 1. 位置無關的代碼和虛擬表
- 2. 使用gas生成與位置無關的代碼(-fPIC)
- 3. 表模塊/表網關 - 從網關加載代碼的位置?
- 4. windows.forms中的代碼位置
- 5. aspx無法定位代碼
- 6. QR代碼位置檢查
- 7. PHP file_get_contents源代碼位置
- 8. PIC(位置獨立代碼)
- 9. SASS - 源代碼位置
- 10. 使用JS代碼鼠標的位置,並把位置在其他js代碼
- 11. 架構無關代碼
- 12. 我的代碼上的地理位置無法正常工作
- 13. WordPress的短代碼 - 奇怪的位置
- 14. 我的system.exit代碼的位置錯誤
- 15. 此代碼中的jQuery代碼中的背景位置
- 16. 隨機碼影響無關代碼
- 17. 從Java代碼的執行位置獲取位置
- 18. iOS:無效的位代碼版本
- 19. Firebase無效的位代碼版本
- 20. 代碼突出和光標的位置
- 21. 位置使用android的區域代碼
- 22. 1.5.x JDK源代碼的位置
- 23. PictureBox控件的圖像位置(代碼)
- 24. 更改生產源代碼的位置
- 25. Android獲取國家代碼的位置
- 26. RequestAnimationFrame在代碼中的位置
- 27. 如何找到HTML代碼的位置?
- 28. 的Flash CS5代碼位置混亂
- 29. 位置的源代碼,以System.Web.Razor.dll
- 30. git bash的VS代碼啓動位置
這個問題有點混亂,措辭不對,試圖提出一個更清晰的問題。 – 2012-07-23 05:25:20