프로그래밍/리눅스 프로그래밍

[Hook ] LD_PRELOAD

jinkwon.kim 2023. 7. 5. 11:16
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
반응형