0
正如您从下图中看到的,程序(在本例中为program1和program2)在运行时映射到内存中。所以我看看汇编代码,有没有什么线索可以告诉程序1/2和StaticLib之间的boundary
?在内存中,我如何告诉程序段来自程序或静态库?
感谢,
正如您从下图中看到的,程序(在本例中为program1和program2)在运行时映射到内存中。所以我看看汇编代码,有没有什么线索可以告诉程序1/2和StaticLib之间的boundary
?在内存中,我如何告诉程序段来自程序或静态库?
感谢,
IIRC这取决于操作系统和文件格式。
在Windows中,静态库函数通常由
call @xyz
参考地址
@xyz: jmp RealAddress
(其中包含函数的真实地址)。
因此通常文件中有这些文件的这些JMP
的区域。所有这些目标都是链接库的一部分。
一般来说,没有。一旦链接,你不知道。 – Jester
此图完全无关紧要。你有一些“staticlib”,但它显示为一个目标文件。是的,你可以这样做,但通常不会这样做,因为这是一种浪费的方法。 目标文件不驻留在内存中。对象文件被链接为可执行文件(或共享库)。 这看起来像一个令人困惑的Gee-Wiz图。 – user3344003