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)
是否有可能改變libc.so.6的地方將內存映射的地址?例如,將libc.so.6改爲映射到0xb0000000。
我運行Xubuntu上32位:Linux的3.2.0-23-i686的通用i686的的i386 GNU/Linux的
你爲什麼要問的路徑呢?另請參閱http://en.wikipedia.org/wiki/Address_space_layout_randomization –
爲了執行一些ret2libc緩衝區溢出攻擊,有效負載字符串必須包含一些libc函數的地址,這些函數不在我的plt部分二進制文件。該字符串不應該包含任何\ x00字節,因此我希望將libc庫更高地放在內存中。請注意,這只是一個自定義的「訓練二進制」。 ASLR在我的系統上暫時被禁用(這僅僅是一個虛擬機,因此它沒有任何傷害)。 – ldso