Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 在内存中,我如何判断一个节是来自程序还是来自静态库?_Assembly_Operating System - Fatal编程技术网

Assembly 在内存中,我如何判断一个节是来自程序还是来自静态库?

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

如下图所示,在本例中,程序1和程序2在运行时映射到内存中。所以我看一下汇编代码,有没有线索可以告诉我们program1/2和StaticLib之间的界限

谢谢


IIRC它取决于操作系统和文件格式。 在Windows上,静态库函数通常由

call @xyz 
到地址

@xyz: jmp RealAddress
它包含函数的实际地址。
因此,文件中通常有一个包含这些JMP的区域。所有这些JMP目标都是链接库的一部分。

通常不会。一旦链接,你就不知道了。这个图完全没有意义。您可以创建staticlib,但它显示为对象文件。是的,你可以这样做,但通常不会这样做,因为这是一种浪费的方法。对象文件不驻留在内存中。对象文件作为可执行库或共享库链接。这看起来就像是一个混乱的Gee-Wiz图。