Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

The commands

gcc main.c -o main

ldd main

yield

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

Thanks!

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

 
discard

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

Browse other questions tagged or ask your own question.