-fno-stack-protector 메모리 보호 기법 SSP(Stack Smashing Protector) 해제

-mpreferred-stack-boundary= 스택의 경계값 설정

-m32 32비트 컴파일 

-z execstack 스택 실행권한 설정

-no-pie 메모리 보호 기법 PIE 해제

 

gcc -m32 -fno-stack-protector -mpreferred-stack-boundary=2 -z execstack -no-pie -o asdf asdf.c

보호 기법 설정

ASLR

> cat /proc/sys/kernel/randomize_va_space
2

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

DEP/NX

> gcc -z execstack ...

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 ... # 라이브러리와 링크되지 않고 단독으로 링크

 

 

'Hacking' 카테고리의 다른 글

ARM Reversing  (0) 2019.08.04
IDA PRO 테마 적용  (0) 2018.12.27
Volatility Commands  (0) 2018.12.02
가상머신 메모리 덤프 파일  (0) 2018.10.09
메모리 포렌식 분석 과정  (0) 2018.10.09

+ Recent posts