`open()`, `fopen()` 및 `proxychains`와 같은 기타 기능을 미리 로드하는 명령이 있습니까?

`open()`, `fopen()` 및 `proxychains`와 같은 기타 기능을 미리 로드하는 명령이 있습니까?

나는 LD_PRELOAD사전 로드 open()기능을 사용하여 프로세스 경로를 가짜로 만들 수 있다는 것을 배웠습니다.

내가 여기서 배운 것:프로세스의 특정 경로를 위조하는 것이 가능합니까?

프로세스의 읽기/쓰기 파일을 다른 경로로 리디렉션하는 명령이 있는지 궁금합니다. LD_PRELOAD 와 마찬가지로 proxychainsLD_PRELOAD를 사용합니다.

답변1

직접 작성해보는 건 어때요?

#include <dlfcn.h>
#include <sys/stat.h>
#include <fcntl.h>

int
open(const char *name, int flags, mode_t mode)
{
    int (*real_open)() = dlsym(RTLD_NEXT, "open");

    if (strcmp(name, "xxzzy") == 0) {

          do my stuff
          .....
    }
    return (real_open(name, flang, mode);
}

관련 정보