고쳐 쓰다

고쳐 쓰다

동적 종속성을 구현하기 위해 ELF 변수를 사용하려고 합니다 RUNPATH. 이 과정에서 Changed 가 bash포함된 바이너리 복사본을 얻었고 이를 실행하면 다음이 반환됩니다.RUNPATHldd

$ 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

관련 정보