Research/Pwnable

보호기법 정리중

cheesechoi 2014. 4. 24. 21:22




http://docs.oracle.com/cd/E37670_01/E36387/html/ol_kernel_sec.html





ASLR


/proc/sys/kernel/randomize_va_space

0 : off

1 : Stack, Virtual Dynamic Shared Object, Shared Mem (스택 라이브러리)

2 : Stack, Virtual Dynamic Shared Object, Shared memory, Data segment. (스택 라이브러리 힙)


/etc/sysctl.conf 에서

kernel.randomize_va_space = VALUE

와 같이 설정하고 sysctl -p 로 실행하면 영구적 적용.


ASLR 을 프로그램에 맞추어 끄고 싶다면

setarch 'uname -m'` -R program [args ...]





DEP


-fno-stack-protector -fno-builtin -mpreferred-stack-boundary=2 -z execstack

-fno-stack-protector : canary 스택 프로텍트

-z execstack : 스택에 실행 권한 주기


-fno-builtin : 표준 라이브러리와 링크되지 말고 단독으로 링크하라는 의미
-mpreferred-stack-boundary=2 : 더미 없애기