在我的 Ubuntu 18.04 中,当我/bin/cat
使用 IDA Pro 反汇编或 coreutils 中的程序时,存在start
“ ”符号,通常_start
在其他程序(例如gimp
.
但是,当我使用switchnm
来查找符号时-D
,我找不到任何start
符号。这是为什么?
我的任务是找到一个指向给定程序入口点的符号。
答案1
二进制文件的入口点是通过其标头中的点找到的;在ELF 二进制文件在 Linux 上使用时,这是偏移量 0x18 处的 32 位或 64 位值。
您可以通过运行objdump -f
二进制文件来看到这一点。
nm
只会显示一个实际的符号,假设它确实是由编译器生成的,如果二进制文件的调试符号可用,可以直接在二进制文件中(如果没有剥离),也可以作为独立的符号。