반응형
옵션 적용 방법
gcc -o helloworld helloworld.c [Options]
[NX]
적용 : 별다른 옵션이 필요없다 (최신 버전 기준)
해제 : -zexecstack
[Stack Canary]
적용 : 별다른 옵션이 필요없다 (최신 버전 기준)
해제 : -fno-stack-protector
[ASLR]
적용 : 운영체제에서 제공해준다 (최신 버전 기준)
해제 : echo 0 > /proc/sys/kernel/randomize_va_space
- randomize_va_space=0 : ASLR 해제
- randomize_va_space=1 : 랜덤 스택 & 랜덤 라이브러리 설정
- randomize_va_space=2 : 랜덤 스택 & 랜덤 라이브러리 & 랜덤 힙 설정
[RELRO]
- Partial
적용 : -Wl,-z,relro
해제 : 별다른 옵션이 필요없다.
- Full
적용 : -Wl,-z,relro,-z,now
해제 : 별다른 옵션이 필요없다.
[PIE]
적용 : -fPIE -pie
해제 : 별다른 옵션이 필요없다.
예시
gcc -o helloworld helloworld.c -zexecstack -Wl,-z,relro