-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 |