ulimit
ulimit
ulimit -s unlimited -> aslr ㄲㅓ짐
64bit binary나 , ubuntu 16.04같은 최신 리눅스는 안될 수 있음
ulimit -d 10(ulimit -d 0)
Malloc은 크기에 따라 heap이나 mmap을 이용해서 주소를 할당하는데 Ulimit –d 옵션은 heap에 할당하는 크기의 최댓값을 정의한다.
즉 mmap을 이용하면 malloc이 libc영역에 할당됨
ulimit -s unlimited와 같이 libc주소도 고정시켜버리면
malloc주소를 고정시킬 수 있음
ulimit -a해서 보이는 다양한 설정값들을 제한하거나 컨트롤할 수 있음
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 256
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 266
virtual memory (kbytes, -v) unlimited
file size도 local exploit에 가끔 쓰인다.
pwnable.kr의 문제중 하나에 있었던 것 같음
또 core size의 default는 0이고 이 크기 늘려주면 프로그램이 비정상종료될 떄 core파일이 생긴다
디버깅할때 유용함