Hi Junhao,

On Friday 09,April,2010 09:53 AM, Junhao wrote:
A couple of us dug further. It seems that dynamically linked binaries have different md5sums, while static binaries have the same. Still not quite sure why though...

Regards,
Junhao

If the systems had prelinking (popular in fedora a few years ago), all of the the shared objects get rewritten with non-conflicting link addresses (to avoid runtime relocation overhead). It is usually set up in /etc/cron (check cron.daily, cron.weekly, etc)

I'm not sure if more recent linux systems use prelinking or not - it may conflict with link address randomisation (a security mechanism, so that exploits can't run code that targets known address offsets). e.g. look at the link addresses of /bin/ls over two runs (on Debian Sid/2.6.32):

mcl...@monty:~$ ldd /bin/ls
    libselinux.so.1 => /lib/libselinux.so.1 (0xb777f000)
    librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb7776000)
    libacl.so.1 => /lib/libacl.so.1 (0xb776e000)
    libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7627000)
    libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7623000)
    /lib/ld-linux.so.2 (0xb77b6000)
    libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb760a000)
    libattr.so.1 => /lib/libattr.so.1 (0xb7605000)
mcl...@monty:~$ ldd /bin/ls
    libselinux.so.1 => /lib/libselinux.so.1 (0xb788a000)
    librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb7881000)
    libacl.so.1 => /lib/libacl.so.1 (0xb7879000)
    libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7732000)
    libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb772e000)
    /lib/ld-linux.so.2 (0xb78c1000)
    libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7715000)
    libattr.so.1 => /lib/libattr.so.1 (0xb7710000)


_______________________________________________
LUGS Mailing list - [email protected]
List FAQ: http://wiki.lugs.org.sg/LugsMailingListFaq
Info page: http://www.lugs.org.sg/mailman/listinfo/slugnet
To unsubscribe send an empty email to: [email protected]

Reply via email to