给定一个包含大量文件的当前目录,假设我编译了一个文件并生成了可执行文件 a.out 。现在,我想找到生成此可执行文件的程序。 怎么样,我能做到吗?
答案 0 :(得分:10)
您可以使用readelf
:
readelf -a a.out | grep FILE
例如:
$ gcc t.c
$ readelf -a a.out |grep FILE
28: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c
36: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c
41: 0000000000000000 0 FILE LOCAL DEFAULT ABS t.c
$
或者,您可以使用
objdump -t a.out |grep df
示例:
$ objdump -t a.out |grep df
0000000000000000 l df *ABS* 0000000000000000 crtstuff.c
0000000000000000 l df *ABS* 0000000000000000 crtstuff.c
0000000000000000 l df *ABS* 0000000000000000 t.c
答案 1 :(得分:3)
您可以使用objdump
:
> objdump -g a.exe
a.exe: file format pei-i386
crt1.c:
cygming-crtbegin.c:
file.c:
tlssup.c:
CRTglob.c:
CRTfmode.c:
txtmode.c:
CRT_fp10.c:
cpu_features.c:
...