바이너리가 의존하는 모든 파일(라이브러리 포함) 찾기

바이너리가 의존하는 모든 파일(라이브러리 포함) 찾기

제 생각에는바이너리가 의존하는 모든 파일 찾기(라이브러리, 구성 파일, 기본적으로 바이너리에서 참조되는 모든 파일 포함)

난 네가 찾을 수 있다는 걸 알아공유 라이브러리그리고 objdump, ldd, readelf,dlopen하지만 동적으로 로드된 라이브러리( )와 기타 파일( )은 어떻습니까 /etc/some/config?

지금까지 나는 바이너리에서 문자열(파일 이름)( $ strings /path/to/binary | grep lib)을 검색하는 설익은 솔루션을 가지고 있지만 올바른 솔루션은 바이너리( read, write, dlopen, etc)에 의해 수행된 시스템 호출을 검색하는 것이라고 생각합니다.

불행하게도 저는 디스어셈블러에 대한 경험이 없고 다른 방법도 모릅니다.

또한 많은 수의 바이너리에 대해 이 작업을 일괄적으로 수행해야 하기 때문에 바이너리 실행(strace, fiddling 등)에 의존하는 솔루션을 사용할 수 없습니다.

바이너리가 참조하는 모든 파일의 약 90%를 찾는 솔루션이면 충분합니다.

확인할 바이너리는 표준(Arch) Linux(multilib) 바이너리입니다. 나는 대부분이 gcc(-O2)로 컴파일되었다고 가정합니다.

답변1

당신은 시도 할 수 있습니다:

strace -fe open cmd 2>&1 >/dev/null | grep -v '= -1' | cut -d\" -f2

실행할 때 무엇이 ​​열리는지 확인하세요.

관련 정보