2017-04-08 49 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的区域。所有这些目标都是链接库的一部分。

相关问题