GCC入口点地址
我正在使用gcc编译一个非常基本的“hello world”程序,使用以下命令行:GCC入口点地址,gcc,elf,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中添加了一个基址? 在过去,1
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给了我一个很好的切入点。此后发生了什么变化
谢谢
我认为这不可能是真正的切入点
你说得对。默认情况下,gcc
很可能配置为生成PIE
二进制文件<代码>饼图二进制文件实际上是共享库的一种特殊形式
如果您查看二进制文件的类型
(也打印了readelf-h
),您将看到它是DYN
,而不是EXEC
您可以使用gcc-m32-no PIE…
禁用PIE
,然后您的入口点看起来像0x8048420