업데이트

업데이트

RUNPATH동적 종속성을 위해 ELF 변수를 실험하고 있습니다 . 도중에 bash변경된 바이너리 복사본을 얻었고 이를 RUNPATH실행하면 다음이 반환됩니다.ldd

$ ldd ./bash 
    linux-vdso.so.1 =>  (0x00007ffe6bdf9000)
    libtinfo.so.5 (0x00007fbf8b97c000)
    libdl.so.2 (0x00007fbf8b776000)
    libc.so.6 (0x00007fbf8b3a5000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fbf8bba7000)

RUNPATH-- 종속성(내 사용자 정의에서 ) 에 대한 경로가 없는 이유는 무엇입니까 ? not found이는 무엇을 의미합니까?

내 추측은 다음과 같습니다: ldd파일을 찾을 수 없지만 메모리에 있고(괄호 안의 숫자는 주소입니다) ldd현금 메커니즘을 통해 어떻게든 파일에 대해 알게 됩니다. 맞습니까? 그런데 왜 ldd파일을 찾지 못하는 걸까요? 에서 가져오는 데 실패하면 RUNPATH표준 디렉터리로 진행해야 합니다. 그렇죠?

업데이트

오늘은 파일을 찾습니다(그래서 어제는 현금이었나요?).

$ cd dir_chroot2/
$ ldd ./bash
    linux-vdso.so.1 =>  (0x00007ffed3530000)
    libtinfo.so.5 => /home/.../dir_chroot2/./libtinfo.so.5 (0x00007f72c14a8000)
    libdl.so.2 => /home/.../dir_chroot2/./libdl.so.2 (0x00007f72c12a1000)
    libc.so.6 => /home/.../dir_chroot2/./libc.so.6 (0x00007f72c0ed0000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f72c16d4000)

- 바이너리와 그 위의 모든 라이브러리 ld-linux-x86-64.so.2에는 . 왜 그래야만하지? 어떻게 든 연결됩니까?bashRUNPATH=$ORIGIN/linux-vdso.so.1

관련 정보