GCC入口点地址

时间:2016-12-31 19:09:53

标签: gcc elf

我正在使用gcc编译一个非常基本的“hello world”程序,使用以下命令行:

gcc -m32 prog_cible.c -o prog_cible

我对入口点地址感到非常惊讶:

readelf -h prog_cible
...
Entry point: 0x420

我用这个命令调高了alsr:

echo 0 | sudo tee /proc/sys/kernel/randomize_va_space

我认为这不是真正的切入点。 我想基地址被添加到0x420? 在过去,10年前,readelf给了我很好的切入点。从那以后发生了什么变化?

由于

1 个答案:

答案 0 :(得分:1)

  

我认为这不是真正的切入点。

你是对的。您的gcc可能默认配置为构建PIE二进制文件。 PIE二进制文件实际上是共享库的一种特殊形式。

如果您查看二进制文件的typereadelf -h也打印过),您会看到它是DYN,而不是EXEC

您可以使用PIE停用gcc -m32 -no-pie ...,然后您的入口点将显示为0x8048420