代码如何存储在可执行文件中?

我读过一个可执行文件将代码存储在不同的部分。 例如,数据的一个单独的部分等。这是通用的不同平台,如Win或MacOs或Linux?

一些洞察这将是非常有帮助的。

Solutions Collecting From Web of "代码如何存储在可执行文件中?"

你是正确的,一个可执行文件有几个部分或段:然而,并不是所有的都是代码。

通常有一个代码段 – 在ELF和PE中,这通常被称为.text。 还有其他一些存储动态链接数据,硬编码字符串,只读数据,全局变量等。

要亲自看到这些,而不是Wiki和Google,请尝试:

在Windows中:您有一个名为DUMPBIN.EXE的工具,是Visual Studio的一部分。 如果你无法做到这一点,使用Dependency Walker(可免费下载)。 这将解析PE和PE32 +(即64位)文件

在Linux中:对于ELF文件,使用objdump -x或readelf(两者几乎都是相同的,但是略有不同的选项)。

在Mac中:使用otool -l在Mach-O文件中查看加载命令(显示部分和段)。

使用任何一种或所有的工具将有希望让你更好地了解事情的工作。

希望这可以帮助,

TG

Windows使用可移植的可执行文件格式。

* nix通常使用可执行和可链接的格式。 以前一些使用SOM,a.out,ECOFF,XCOFF,COFF和其他一些。

OS X和iOS(以及NeXT,历史粉丝)使用Mach-O。

PowerPC系统仍然支持早期Mac OS使用的首选可执行格式,以及某些形式的BeOS。

也许从http://en.wikipedia.org/wiki/Comparison_of_executable_file_formats开始