728x90
반응형
개요
LD_PRELOAD가 무엇인지 알아보겠습니다
용도
"Hooking" 용도로 사용됩니다.
LD_PRELOAD는 Linux 및 Unix 계열 시스템에서 사용되는 환경 변수로서, 프로그램이 실행되기 전에 특정 동적 라이브러리를 먼저 로드하도록 지시합니다. 이를 통해, LD_PRELOAD에 명시된 라이브러리의 함수가 다른 동일한 이름의 함수보다 먼저 호출됩니다.
사용법
1. overrride할 함수를 포함하는 shared library를 생성
이 library에는 hooking할려는 함수와 동일함 이름및 paramter를 가져야 합니다.
2. shared library compile
공유 라이브러리를 컴파일하고 .so 파일을 생성합니다.
3. LD_PRELOAD를 사용하여 실행
환경 변수 LD_PRELOAD를 설정하여 이 .so 파일을 가리키도록 합니다.
export LD_PRELOAD=/path/to/library.so와 같은 명령어를 통해 수행할 수 있습니다.
4. 확인
이제 프로그램을 실행하면, LD_PRELOAD로 지정된 라이브러리의 함수가 먼저 호출됩니다.
728x90
반응형
'프로그래밍 > 리눅스 프로그래밍' 카테고리의 다른 글
[Debugging] Linux application debugging (0) | 2023.11.03 |
---|---|
[linux] netfilter 소개 및 동작 방식 (0) | 2023.07.09 |
[stress] stress 사용법 (0) | 2023.02.28 |
[linux] libc 와 glibc 와 libstdc++ 와 gcc의 관계 정리 (0) | 2022.10.19 |
[리눅스] thread 및 process에 CPU Core 할당 하기 (1) | 2022.09.30 |