Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

The commands

gcc main.c -o main

ldd main


linux-gate.so.1 => (0x00f67000)

libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x00b7d000)

/lib/ld-linux.so.2 (0x00ae5000)

Is it possible to change the address where libc.so.6 will be mapped in memory? For example, have libc.so.6 instead be mapped at, say, 0xb0000000.

I'm running Xubuntu 32bit: Linux 3.2.0-23-generic ... i686 i686 i386 GNU/Linux


share|improve this question
what you are trying to achieve? these address belongs to libs entry points, why you would want to change them? –  Maxwell S. May 14 '12 at 20:25
In order to perform a few ret2libc buffer overflow exploits, the payload string has to contain the addresses of a few libc functions that are not present in the plt section of my binary. This string should not contain any \x00 bytes, hence why I would like to have the libc library higher up in memory. –  ldso May 14 '12 at 20:35
@idso you better go stackoverflow.com and post you question, this is a very specific question. –  Maxwell S. May 14 '12 at 20:42
Thanks for the advice, I'll do that. –  ldso May 14 '12 at 20:45

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.