LD_PRELOAD
대부분의 최신 운영체제는 동적 라이브러리라고도 하는 공유 라이브러리(Shared library)를 사용합니다.
공유 라이브러리를 포함하는 파일의 확장자는 .so(Shared Object)입니다.
일반적으로 libaaa.so는 libaaa.so.x에 대한 Symbolic link로, 여기에서 x는 라이브러리의 버전을 나타냅니다.
Linux의 경우 이런 라이브러리의 대부분을 /usr/lib에 저장합니다.
Linux에서도 프로세스가 로드될 때 여러 라이브러리들을 로드합니다.
LD_PRELOAD는 프로그램이 라이브러리를 가져오기 전에
원하는 라이브러리를 먼저 등록해주는 환경변수입니다.
프로그램은 LD_PRELOAD로 지정된 공유 오브젝트를 먼저 링크하게 됩니다.
명령어
컴파일러 옵션 : gcc [source] -fPIC -shared -o [destination]
참조 명령 : export LD_PRELOAD="[file path]"
'OS > Linux' 카테고리의 다른 글
setuid & setgid & sticky bit (0) | 2012.08.20 |
---|---|
Symbolic/Hard link (0) | 2012.08.17 |
i-node (0) | 2012.08.17 |