cat 可执行文件中的启动符号在哪里?

cat 可执行文件中的启动符号在哪里?

在我的 Ubuntu 18.04 中,当我/bin/cat使用 IDA Pro 反汇编或 coreutils 中的程序时,存在start“ ”符号,通常_start在其他程序(例如gimp.

但是,当我使用switchnm来查找符号时-D,我找不到任何start符号。这是为什么?

我的任务是找到一个指向给定程序入口点的符号。

答案1

二进制文件的入口点是通过其标头中的点找到的;在ELF 二进制文件在 Linux 上使用时,这是偏移量 0x18 处的 32 位或 64 位值。

您可以通过运行objdump -f二进制文件来看到这一点。

nm只会显示一个实际的符号,假设它确实是由编译器生成的,如果二进制文件的调试符号可用,可以直接在二进制文件中(如果没有剥离),也可以作为独立的符号。

相关内容