2014-03-03 1 views
0

저는 Windows 프로세스를 분석하는 데 새로운 경험이 있으며, 지난 주 Xperf가 매우 유용하다는 것을 알았습니다. 그리고 DLL 분석에 대해 몇 가지 질문이 있습니다.DLL에서 사용하는 레지스트리 항목과 파일을 확인하십시오.

프로세스에서 사용하는 특정 DLL 이미지에서 사용하는 레지스트리 항목과 파일 경로를 확인할 수 있는지, 그리고이를 수행 할 수있는 도구가 있는지 궁금합니다.

이것이 가능하지 않은 경우 DLL이 사용하고있는 리소스 또는 대체 방법을 알아내는 데 좋은 전략이 무엇인지 궁금합니다.

+0

레지스트리 키 핸들과 같은 운영 체제 개체는 프로세스가 소유하며 DLL이 아닙니다. 따라서 소유권을 DLL로 추적 할 수있는 메커니즘이 없으므로 호출 스택을 최대한 볼 수 있습니다. –

답변

1

Process Explorer을 사용할 수 있습니다. 대부분의 다른 SysInternals 프로세스 도구는 매우 유용합니다. - 프로세스 탐색기는 많은 양의 데이터를 표시하기위한 (복잡한) UI가있는 것입니다. Process Monitor은 프로세스에 대한 실시간 레지스트리, 파일 시스템 등을 보여줍니다.

0

Process Monitor와 xperf는 파일 액세스마다 호출 스택을 기록 할 수 있습니다. 그런 다음 호출 스택에서 특정 DLL을 찾기 위해 해당 호출 스택을 검사 할 수 있습니다.

하지만 질문이 실제로 잘 형성되지 않았습니다. "특정 DLL에 의해 사용되는"무엇을 의미합니까? DLL에서 호출하는 DLL B를 호출하는 프로세스 A를 가질 수 있습니다.이 DLL C는 DLL에서 호출 할 때 DLL D를 호출합니다. 어떤 DLL이 그 파일을 '사용하고 있습니까?' B, C, D 또는 그 모두? 유일한 현명한 대답은 그것이 달려 있다는 것입니다.

한스 패 탄트 (Hans Passant)에 따르면 핸들은 DLL이 아닌 프로세스에서 소유하고 있으며 대부분 특정 DLL에 '소유권'을 할당하는 경험적 방법을 생각해 낼 수 있습니다.

관련 문제