어떤 프로그램이 설치되었거나 특정 DLL 파일을 사용하고 있는지 어떻게 알 수 있습니까?


9

한 서버의 SYSTEM32 디렉토리에 DLL 파일이 있는데 실제로 필요하지는 않습니다.

Google에서 일반적으로 사용되는 것을 말했지만이 시스템에는 소프트웨어가 설치되지 않았습니다. 여전히 서버에 설치된 다른 제품 중 하나가 파일을 포함했을 가능성이 있다고 생각합니다.

레지스트리를 통해 파일 이름과 파일의 메타 데이터에서 찾은 일부 문자열을 검색했으며 유익한 정보를 얻을 수 없었습니다. (ACMru 키가 내 눈을 사로 잡았지만 그것이 무엇인지 알 때까지는 )

내가 할 수있는 다른 사람이 무엇인가는 얻는 시스템 자체가 DLL을 설치 어떤 프로그램 말해, 및 / 또는 무엇을 사용하는 것이 프로그램 (들) (있는 경우)를 설치?

참고 : 도구 제안은 훌륭하지만이 시스템에 추가 소프트웨어를 설치하거나 실행하지 않습니다. Server 2003의 기본 설치에서 사용 가능한 모든 작업을 수행해야합니다.

답변:


5

시스템에 배치 된 날짜를 확인하고 시스템의 다른 파일과 비교하여 실마리를 얻습니다. 검색을 통해 날짜별로 전체 시스템을 검색 할 수 있습니다.

또한 파일 이름을 여기에 게시하면 여기에 익숙한 일부 사용자가 파일을 식별 할 수 있습니다.


감사. 다른 질문에 파일 이름을 게시 할 수 있습니다. 나는 이것이 DLL 파일에 사용될 수있는 답변을 얻도록 일반적인 것을 원했습니다.
Iszi

4

% SystemRoot % \ Installer 폴더의 각 .MSI 파일을 검사 할 수 있습니다. Windows 설치 프로그램을 통해 설치된 모든 (?) 프로그램은 여기에 MSI를 추가하여 나중에 제거 할 수 있습니다. 폴더에는 일반적으로 많은 것들이 있습니다. 무수한 MSI 패키지 중에서 dll을 찾으면 패키지를 잘 정의 된 이름으로 다시 매핑해야합니다.

스크립트를 사용하여 msi 파일을 디 컴파일하려면이 VBS 도구 ( http://www.hanselman.com/blog/HowToListAllTheFilesInAnMSIInstallerUsingVBSciript.aspx) 를 사용 하거나 MSIDiff라는 프로그램을 사용해보십시오 . //dennisbareis.com/msidiff.htm . 물론 도구를 설치할 필요가 없다는 제약 조건을 고려할 때 후자는 도구와 관련하여 필요하지 않습니다. cscript가 설치되어 있으면 전자가됩니다.

후자의 도구는 적절한 GUID 또는 MSI 파일 이름을 레지스트리에서 수동으로 검색하지 않고도 패키지 이름 매핑을 수행 할 수 있습니다. 참조 할 테이블 / 열을 알고있는 경우 패키지 이름을 덤프하도록 이전 도구를 수정할 수 있습니다 (필요하지 않음).

VBS 스크립트는 데이터베이스 관점에서 간단히 MSI 파일을 검사합니다. 주요 작업은 database.OpenView ( "SELECT FileName FROM File")로 수행됩니다.


모두 설치하는 것과 같이 비용이 많이 듭니까? 내 Windows 8에서는 412 항목, 내 Windows 7에서는 559이며 동일한 금액을 가지고 있다고 생각합니다. 또한, 파일은 온하지 않은 수 msi... 설치
타마라 Wijsman에게

예, 비용이 많이 들지만 전후에 시스템 스냅 샷을 미리 보지 않고 소유권을 알고 싶은 경우 통찰력을 얻을 수 있습니다. 실제 디 컴파일 및 비교 기능을 자동화 할 수도 있습니다 (결국 vbs 스크립트 일뿐입니다). MSI를 통해 모든 패키지가 설치되는 것은 아니기 때문에 완벽한 해결 방법은 아니라고 생각하지만 운이 좋을 수도 있습니다. 당신이 말했듯이, 그것들이 많이 있기 때문에 파일이 그런 식으로 왔을 가능성이 있습니다.
logicalscope

디 컴파일 / 디컴 프레싱하지 않고 MSI 파일 내부를 살펴볼 수있는 도구가 있는지 궁금합니다. 여하튼, 또 다른 새로운 질문에서 OP는 우리가 설치 시간부터 이미 시스템에있는 파일에 대해 이야기하고 있다고 말했습니다.
Tamara Wijsman

Tom,이 vbs는 데이터베이스 뷰에서 MSI를 간단히 검사한다고 확신합니다. MSI는 단순히 db입니다. 이 도구는 SQL을 사용하여 해당 테이블에서 파일 이름을 추출합니다. 자체적으로 "디 컴파일"하지 않으며 게시물에 이것을 지정해야합니다. 수정하겠습니다.
logicalscope

1

프로세스 모니터 가이를 수행 할 수 있습니다. DLL의 이름으로 필터링하기 만하면 프로그램이로드를 시도 할 때 언급 한 DLL을 찾고 있거나 액세스하는 프로세스를 언급하는 항목이 나타납니다.

부팅 할 때 프로그램과 서비스를로드하는 데 필요한 부팅 로그 (메뉴에서 부팅 로깅을 활성화 한 다음 다시 부팅 한 후 프로세스 모니터를 다시 열어야 함)를 수행해야합니다.


비활성 프로그램은 어떻습니까? 컴퓨터에서 모든 의심스러운 프로그램을 열고 프로세스 모니터에서 조심해야 할 것 같습니다.
Iszi

@Iszi : 채팅에서 언급했듯이 설치자 또는 설치자를 열거하는 데 시간이 오래 걸립니다. 언급 한대로 프로세스 탐색기를 사용하여 수동으로 모니터링하십시오. 또는 Search Everything으로 쉽게 수행 할 수있는 music2myear와 같은 검색이 가능합니다.
Tamara Wijsman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.