Hello,
I have ET_EXEC binary on my system (gentoo 2004.2), for example:
# file /usr/bin/iconv
/usr/bin/iconv: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), stripped
# scanelf /usr/bin/ | grep iconv
PeMRxS ET_EXEC /usr/bin//iconv
I have also kernel 2.4.27 with grsec-2.0.1, with option Address Space Protection -> Randomize ET_EXEC base turned OFF.
So why I have address randomization on this binary ?
# ldd /usr/bin/iconv
libc.so.6 => /lib/libc.so.6 (0x2ec01000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2ebeb000)
# ldd /usr/bin/iconv
libc.so.6 => /lib/libc.so.6 (0x2c013000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2bffd000)
I have also the second question:
Is really important to have ALL binaries on the system compiled as ET_DYN ? I have few non-important ( no-suids and no-daemons ) programs still compiled as ET_EXEC ... hardened-gentoo and adamantix are not fully ET_DYN-compiled distros .. Is it worth fighting ?
ps. Sorry for my very bad English.
best regards,
Konrad.