문제

Windows의 커널 모드에서 특정 디스크에서 수행되는 거의 모든 작업을 가로 채고 모니터링 할 수 있습니다. 어떤 목적 으로든 파일이 열리면 이벤트가됩니다.

이제 열린 응용 프로그램을 추적하고 싶습니다. 나는 이것이 가능해야한다고 생각하지만 방법을 모른다.

Windows Win32 API에서 표준 파일 관리 기능을 사용하고 있습니다.

미리 감사드립니다.

/로버트

도움이 되었습니까?

해결책

Win32 N.Api를 사용하여 파일 핸들에서 PID를 얻으십시오. 15 년 동안 FAQ입니다 ...

다른 팁

sysinternals filemon (무료)이 작업을 수행하지만 더 나은 방법은 다음과 같은 방법을 설명합니다.

Windows 9X 드라이버의 경우 Filemon의 심장은 가상 장치 드라이버 인 FileVXD.VXD에 있습니다. 동적으로로드되며 초기화에서 VXD 서비스 IFSMGR_INSTALLFILESYSTEMAPIHOOK를 통해 파일 시스템 필터를 설치하여 모든 파일 시스템 요청의 통화 체인에 자체적으로 삽입됩니다. Windows에서 Filemon의 심장은 파일 시스템 드라이버로 필터 장치 객체를 생성하고 첨부하여 파일 시스템 장치 객체를 대상으로하여 Filemon이 드라이브를 지시하는 모든 IRP 및 Fastio 요청을 볼 수 있도록합니다. Filemon이 열린, 생성 또는 닫기 호출을 볼 때, 내부 파일 핸들과 파일 경로 이름 사이의 매핑 역할을하는 내부 해시 테이블을 업데이트합니다. 핸들을 기반으로 한 통화가 표시 될 때마다 해시 테이블의 핸들을 조회하여 디스플레이의 전체 이름을 얻습니다. 핸들 기반 액세스가 Filemon이 시작되기 전에 열린 파일을 참조하면 Filemon은 해시 테이블에서 매핑을 찾지 못하고 대신 핸들의 값을 표시합니다.

-아담

sysinternals는 그것을 수행하고 설명하는 데 매우 잘 일했습니다. 이전 버전의 일부 소스 코드는 여전히 사용할 수 있습니다. 여기 예를 들어, 코드는 잘 문서화되어 있습니다 (IMHO). 좋은 출발이 될 수 있습니다.

Sysinternals의 "Handle.exe"앱을 사용합니다.

아니면 실제로이 프로그램을 수행하려고합니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top