对于程序,如果您的系统正在使用 ELF,它会出现在.comment
ELF 可执行文件部分。
$猫main.c
int main() { }
$ gcc main.c
$ objdump -s -j .comment a.out
a.out:文件格式elf64-x86-64
.comment 部分的内容:
0000 00474343 3a202844 65626961 6e20342e .GCC: (Debian 4.
0010 372e322d 35292034 2e372e32 00474343 7.2-5) 4.7.2.GCC
0020 3a202844 65626961 6e20342e 342e372d : (Debian 4.4.7-
0030 33292034 2e342e37 00 3) 4.4.7。
用于编译内核的编译器可从 中的字符串获得/proc/version
,例如:
$ 猫 /proc/版本
Linux 版本 3.8.5 (...) (gcc 版本 4.7.2 (Debian 4.7.2-5) ) ...
一个主要的警告
该.comment
部分是可选的。当可执行文件捆绑到一个包中时,许多发行版会将其从可执行文件中剥离。该部分将放置在单独的调试包中。
例如,在我的系统上:
$ objdump -s -j .comment /usr/lib/x86_64-linux-gnu/libcurl.so.4.2.0
/usr/lib/x86_64-linux-gnu/libcurl.so.4.2.0:文件格式elf64-x86-64
objdump:-j 选项中提到的“.comment”部分,但在任何输入中都找不到
文件
安装libcurl3-dbg
软件包后,我们通过 GNU 调试链接获得带有剥离部分的图像:
$ objdump -s -j .comment \
/usr/lib/debug/.build-id/8c/4ae0ad17a4e76bab47c487047490061bd49de3.debug
/usr/lib/debug/.build-id/8c/4ae0ad17a4e76bab47c487047490061bd49de3.debug:
文件格式 elf64-x86-64
.comment 部分的内容:
0000 4743433a 20284465 6269616e 20342e37 GCC:(Debian 4.7
0010 2e322d35 2920342e 372e3200 .2-5) 4.7.2。