내가에만 실행 액세스가 스크립트를 실행하려고하면 나는 다음과 같은 오류가 발생합니다 : 이것은 내가 LD_PRELOAD
환경을 설정 한 후어떤 프로세스가 로더 오류를 발생하게
uname: symbol lookup error: /home/dumindara/random/sotest/a.out: undefined symbol: dlsym
을 변수는 /home/dumindara/random/sotest/a.out
입니다.
a.out
은 테스트 malloc
을 가지고 있으며 내부적으로 dlsym
을 호출합니다.
ls
을 실행할 때이 문제가 발생하지 않습니다. 대부분의 프로세스는이 오류를 제공합니다. 왜 이런 일이 생기고 어떻게 작동시킬 수 있습니까?
그것은 일반적으로 좋은 아이디어는 쉘 환경을 수정하기보다는 a.out에 대해서만 LD_PRELOAD를 설정하는 것입니다. 대부분의 유닉스 셸에서는'LD_PRELOAD = xyz./a.out'을 입력 할 수 있습니다. 그렇지 않으면'(LD_PRELOAD = xyz; ./a.out)'을 시도하십시오. –
@ 토니 : 나는 a.out이 그 병약 한 이름에도 불구하고이 경우 공유 된 객체라고 생각합니다. OP는 분명히 자신의 버전으로'malloc()'을 오버라이드하려고 시도하고 실제 malloc으로 패스 스루하려고합니다. – thkala
@tkhala : 아, 좋은 catch는 LD_PRELOAD = \'pwd \'/a.out program_to_test'와 비슷할 것입니다. –