2017-04-08 45 views
0

正如您從下圖中看到的,程序(在本例中爲program1和program2)在運行時映射到內存中。所以我看看彙編代碼,有沒有什麼線索可以告訴程序1/2和StaticLib之間的boundary在內存中,我如何告訴程序段來自程序或靜態庫?

感謝,

enter image description here

+4

一般來說,沒有。一旦鏈接,你不知道。 – Jester

+0

此圖完全無關緊要。你有一些「staticlib」,但它顯示爲一個目標文件。是的,你可以這樣做,但通常不會這樣做,因爲這是一種浪費的方法。 目標文件不駐留在內存中。對象文件被鏈接爲可執行文件(或共享庫)。 這看起來像一個令人困惑的Gee-Wiz圖。 – user3344003

回答

-1

IIRC這取決於操作系統和文件格式。
在Windows中,靜態庫函數通常由

call @xyz 

參考地址

@xyz: jmp RealAddress 

(其中包含函數的真實地址)。
因此通常文件中有這些文件的這些JMP的區域。所有這些目標都是鏈接庫的一部分。

相關問題