PIE
Demonstração
#include <stdio.h>
int main()
{
printf ("%p", main);
return 0;
}Sem PIE:
┌──(ata㉿vBoxKali)-[~/Documents]
└─$ gcc -no-pie main.c -o exec
┌──(ata㉿vBoxKali)-[~/Documents]
└─$ checksec exec
[*] '/home/ata/Documents/exec'
Arch: amd64-64-little
RELRO: Partial RELRO
Stack: No canary found
NX: NX enabled
PIE: No PIE (0x400000)
┌──(ata㉿vBoxKali)-[~/Documents]
└─$ ./exec
0x401126
┌──(ata㉿vBoxKali)-[~/Documents]
└─$ ./exec
0x401126
┌──(ata㉿vBoxKali)-[~/Documents]
└─$ ./exec
0x401126 Com PIE:
Exploit
Exemplo 1: Endereço dado pelo programa
Exemplo 2: Format String Bug
Referências
Atualizado