![`open()`, `fopen()` 및 `proxychains`와 같은 기타 기능을 미리 로드하는 명령이 있습니까?](https://linux55.com/image/141385/%60open()%60%2C%20%60fopen()%60%20%EB%B0%8F%20%60proxychains%60%EC%99%80%20%EA%B0%99%EC%9D%80%20%EA%B8%B0%ED%83%80%20%EA%B8%B0%EB%8A%A5%EC%9D%84%20%EB%AF%B8%EB%A6%AC%20%EB%A1%9C%EB%93%9C%ED%95%98%EB%8A%94%20%EB%AA%85%EB%A0%B9%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
나는 LD_PRELOAD
사전 로드 open()
기능을 사용하여 프로세스 경로를 가짜로 만들 수 있다는 것을 배웠습니다.
내가 여기서 배운 것:프로세스의 특정 경로를 위조하는 것이 가능합니까?
프로세스의 읽기/쓰기 파일을 다른 경로로 리디렉션하는 명령이 있는지 궁금합니다. LD_PRELOAD 와 마찬가지로 proxychains
LD_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);
}