Assembly 在内存中,我如何判断一个节是来自程序还是来自静态库?
如下图所示,在本例中,程序1和程序2在运行时映射到内存中。所以我看一下汇编代码,有没有线索可以告诉我们program1/2和StaticLib之间的界限 谢谢Assembly 在内存中,我如何判断一个节是来自程序还是来自静态库?,assembly,operating-system,Assembly,Operating System,如下图所示,在本例中,程序1和程序2在运行时映射到内存中。所以我看一下汇编代码,有没有线索可以告诉我们program1/2和StaticLib之间的界限 谢谢 IIRC它取决于操作系统和文件格式。 在Windows上,静态库函数通常由 call @xyz 到地址 @xyz: jmp RealAddress 它包含函数的实际地址。 因此,文件中通常有一个包含这些JMP的区域。所有这些JMP目标都是链接库的一部分。通常不会。一旦链接,你就不知道了。这个图完全没有意义。您可以创建staticli
IIRC它取决于操作系统和文件格式。 在Windows上,静态库函数通常由
call @xyz
到地址
@xyz: jmp RealAddress
它包含函数的实际地址。
因此,文件中通常有一个包含这些JMP的区域。所有这些JMP目标都是链接库的一部分。通常不会。一旦链接,你就不知道了。这个图完全没有意义。您可以创建staticlib,但它显示为对象文件。是的,你可以这样做,但通常不会这样做,因为这是一种浪费的方法。对象文件不驻留在内存中。对象文件作为可执行库或共享库链接。这看起来就像是一个混乱的Gee-Wiz图。