Information*/알면도움됨

보호 기법 설정 gcc

ch4rli3kop 2019. 3. 17. 03:39
반응형

보호 기법 설정

ASLR

> cat /proc/sys/kernel/randomize_va_space
2

값이 0이면 ASLR 없음, 1이면 stack, library가 랜덤, 2이면 stack, library, heap이 랜덤.


DEP/NX

> gcc -z exestack ...

STACK에 실행권한 줌. DEP/NX 제거라고 봐도 될듯


CANARY

> gcc -fno-stack-protector ... # SSP 해제
> gcc -fstack-protector ...    # SSP 설정


PIE

> gcc -no-pie ...    # PIE 해제
> gcc -fpie ...      # .text 랜덤
> gcc -fpie -pie ... # PIE 설정


RELRO

> gcc -z relro ...        # PARTIAL-RELRO 설정
> gcc -z relro -z now ... # FULL-RELRO 설정
> gcc -z norelro ...      # NO-RELRO


32bit Compile

> sudo apt install gcc-multilib # 관련 라이브러리 설치 후 사용가능
> gcc -m32 ... # 64bit에서 32bit 컴파일
> gcc -m64 ... # 디폴트이므로 없어도 됨


DUMMY

> gcc -mpreferred-stack-boundary=2 ... # 32bit
> gcc -mpreferred-stack-boundary=4 ... # 64bit

DUMMY 제거


함수 최적화

> gcc -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 ... # 함수 최적화 제거


단독 링크

> gcc -fno-builtin ... # 라이브러리와 링크되지 않고 단독으로 링크


참고 : https://developers.redhat.com/blog/2018/03/21/compiler-and-linker-flags-gcc/

반응형

'Information* > 알면도움됨' 카테고리의 다른 글

티스토리가 마크다운을...!  (186) 2019.03.31
Xshell 명령어 추가  (0) 2019.03.18
python으로 실행파일 입력 주기  (0) 2019.03.17
zip2john 설치  (0) 2019.03.13
PIL과 Pillow  (0) 2019.03.11