libfaketime 및 Mac OS, LD_PRELOAD

libfaketime 및 Mac OS, LD_PRELOAD

Mac OS 10.7.2를 실행하고 실행하려고 합니다.libfaketime그러나 아무 일도 일어나지 않았습니다. 시간과 날짜가 시스템에 설정된 대로 정확하게 유지된다는 점만 제외하면 지시한 대로 정확하게 설치하고 실행했습니다. 다른 사람이 OSX에서 이것을 성공적으로 실행할 수 있었습니까?

$ date
Mon Jan 30 21:05:09 CST 2012
$ LD_PRELOAD=./libfaketime.so.1 FAKETIME="-15d" date
Mon Jan 30 21:05:32 CST 2012

답변1

Mac OS에서는 LD_PRELOAD 대신 DYLD_INSERT_LIBRARIES를 사용하세요. DYLD_FORCE_FLAT_NAMESPACE를 설정해야 할 수도 있습니다. 예를 들어

DYLD_INSERT_LIBRARIES=./libfaketime.so.1 DYLD_FORCE_FLAT_NAMESPACE=y FAKETIME="-15d" date

답변2

다음과 같이 라이브러리를 컴파일하면:

gcc -shared -fPIC mylib.c -o mylib.so

환경 변수를 만들 수 있습니다.

export DYLD_INSERT_LIBRARIES=./mylib.so
export DYLD_FORCE_FLAT_NAMESPACE=y

그런 다음 새로 로드된 라이브러리로 실행합니다.

./program

관찰하다:

macOS High Sierra(v 10.13.1)에서 작업하기

관련 정보