I use -z execstack
flag, But it can’t work. Only the stack has execution permissions, not the .data segment.
Mapped address spaces:
Start Addr End Addr Size Offset Perms objfile
0x555555554000 0x555555555000 0x1000 0x0 r--p /home/hello/pwn_basic/Labs/Lab 3/Lab 3/ret2sc
0x555555555000 0x555555556000 0x1000 0x1000 r-xp /home/hello/pwn_basic/Labs/Lab 3/Lab 3/ret2sc
0x555555556000 0x555555557000 0x1000 0x2000 r--p /home/hello/pwn_basic/Labs/Lab 3/Lab 3/ret2sc
0x555555557000 0x555555558000 0x1000 0x2000 r--p /home/hello/pwn_basic/Labs/Lab 3/Lab 3/ret2sc
0x555555558000 0x555555559000 0x1000 0x3000 rw-p /home/hello/pwn_basic/Labs/Lab 3/Lab 3/ret2sc
0x7ffff7d83000 0x7ffff7d86000 0x3000 0x0 rw-p
0x7ffff7d86000 0x7ffff7dae000 0x28000 0x0 r--p /usr/lib/x86_64-linux-gnu/libc.so.6
0x7ffff7dae000 0x7ffff7f43000 0x195000 0x28000 r-xp /usr/lib/x86_64-linux-gnu/libc.so.6
0x7ffff7f43000 0x7ffff7f9b000 0x58000 0x1bd000 r--p /usr/lib/x86_64-linux-gnu/libc.so.6
0x7ffff7f9b000 0x7ffff7f9c000 0x1000 0x215000 ---p /usr/lib/x86_64-linux-gnu/libc.so.6
0x7ffff7f9c000 0x7ffff7fa0000 0x4000 0x215000 r--p /usr/lib/x86_64-linux-gnu/libc.so.6
0x7ffff7fa0000 0x7ffff7fa2000 0x2000 0x219000 rw-p /usr/lib/x86_64-linux-gnu/libc.so.6
0x7ffff7fa2000 0x7ffff7faf000 0xd000 0x0 rw-p
0x7ffff7fbb000 0x7ffff7fbd000 0x2000 0x0 rw-p
0x7ffff7fbd000 0x7ffff7fc1000 0x4000 0x0 r--p [vvar]
0x7ffff7fc1000 0x7ffff7fc3000 0x2000 0x0 r-xp [vdso]
0x7ffff7fc3000 0x7ffff7fc5000 0x2000 0x0 r--p /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
0x7ffff7fc5000 0x7ffff7fef000 0x2a000 0x2000 r-xp /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
0x7ffff7fef000 0x7ffff7ffa000 0xb000 0x2c000 r--p /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
0x7ffff7ffb000 0x7ffff7ffd000 0x2000 0x37000 r--p /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
0x7ffff7ffd000 0x7ffff7fff000 0x2000 0x39000 rw-p /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
0x7ffffffdd000 0x7ffffffff000 0x22000 0x0 rwxp [stack]
how to use the ld linker and change the execution permissions of the data segment? This is an exercise. I can’t use mmap
because I was asked not to change source file.
1