종속성을 변경하는 argv를 얻은 경우에도 프로그램의 모든 종속성(라이브러리) 및 구성을 어떻게 나열할 수 있습니까?
답변1
프로그램이 GNU C 라이브러리의 동적 링커( ld.so
)를 사용하는 경우 이를 실행하고 다음 설정을 통해 로드되는 모든 라이브러리를 추적할 수 있습니다 LD_DEBUG=libs
.
LD_DEBUG=libs yourcommand --args
이를 통해 프로그램 매개변수를 변경하면 로드되는 라이브러리가 변경되는지 여부를 결정할 수 있습니다.
표시된 모든 라이브러리는 ldd /path/to/yourcommand
항상 로드되며 프로그램 매개변수에 따라 변경되지 않습니다. 로드된 라이브러리를 사용하면 dlopen
차이가 있을 수 있으며 이는 이 기술을 사용하여 표시됩니다.
어떤 구성 파일을 읽었는지 알고 싶다면 다음을 사용하세요 strace
.
strace -e open yourcommand --args