리눅스

ldd명령어 , nm명령어

정지홍 2024. 8. 27. 13:43

ldd명령어는 지정한 프로그램의 라이브러리 의존성을 확인할 때 사용한다.
path는 /usr/bin/ldd이다.   

 

ex) 아래는 attackme라는 프로그램의 의존성을 확인함.

[level19@ftz level19]$ ldd attackme
        libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

 

 

ex) ls명령어의 의존성을 확인함.

# -v 옵션은 상세 정보를 출력
[level19@ftz level19]$ ldd -v /bin/ls
        libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001e000)
        libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

        Version information:
        /bin/ls:
                libc.so.6 (GLIBC_2.2.3) => /lib/tls/libc.so.6
                libc.so.6 (GLIBC_2.1.3) => /lib/tls/libc.so.6
                libc.so.6 (GLIBC_2.1) => /lib/tls/libc.so.6
                libc.so.6 (GLIBC_2.3) => /lib/tls/libc.so.6
                libc.so.6 (GLIBC_2.2) => /lib/tls/libc.so.6
                libc.so.6 (GLIBC_2.0) => /lib/tls/libc.so.6
        /lib/libtermcap.so.2:
                libc.so.6 (GLIBC_2.1.3) => /lib/tls/libc.so.6
                libc.so.6 (GLIBC_2.1) => /lib/tls/libc.so.6
                libc.so.6 (GLIBC_2.0) => /lib/tls/libc.so.6
        /lib/tls/libc.so.6:
                ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
                ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
                ld-linux.so.2 (GLIBC_2.0) => /lib/ld-linux.so.2
                ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2


[level19@ftz level19]$ ldd -d /bin/ls
        libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001e000)
        libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)


[level19@ftz level19]$ ldd -r /bin/ls
        libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001e000)
        libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

nm명령어


오브젝트 파일을 대상으로 파일에 포함된 심볼의 리스트를 볼수있다.

nm 대상파일

[심볼 값][심볼 클래스][심볼명]
42120840   r           yytranslate
42131d64   b           zapchar
421239bc   r           zeroes
42123a20   r           zeroes
42131a38   b           zone_names


nm -r
역순 출력

nm --size-sort
크기가 큰 순으로 출력

nm --size-sort -r 
크기가 작은 순서대로 출력

nm -f sysv 
# sysv형식으로 출력

nm -f posix
# posix형식으로 출력

nm -f bsd
# bsd형식으로 출력