masec Asked: 2018-07-12 08:08:25 +0800 CST2018-07-12 08:08:25 +0800 CST 2018-07-12 08:08:25 +0800 CST cat 可执行文件中的开始符号在哪里? 772 在我的 Ubuntu 18.04 中,当我/bin/cat使用 IDA Pro 反汇编或 coreutils 中的那个时,存在“ start”符号,通常_start在其他程序中以名称“”找到,例如gimp. 但是,当我使用switchnm查找符号时-D,我找不到任何start符号。这是为什么? 我的任务是找到一个指向给定程序入口点的符号。 linux assembly 1 个回答 Voted Best Answer Stephen Kitt 2018-07-12T08:19:49+08:002018-07-12T08:19:49+08:00 二进制文件的入口点是使用其标头中的一个点找到的;在Linux 上使用的ELF 二进制文件中,这是偏移量 0x18 处的 32 位或 64 位值。 您可以通过objdump -f在二进制文件上运行来查看。 nm如果二进制文件的调试符号可用,将只显示一个实际的符号,假设它真的是由编译器生成的,或者直接在二进制文件中(如果它没有被剥离),或者作为分离的符号。
二进制文件的入口点是使用其标头中的一个点找到的;在Linux 上使用的ELF 二进制文件中,这是偏移量 0x18 处的 32 位或 64 位值。
您可以通过
objdump -f
在二进制文件上运行来查看。nm
如果二进制文件的调试符号可用,将只显示一个实际的符号,假设它真的是由编译器生成的,或者直接在二进制文件中(如果它没有被剥离),或者作为分离的符号。