2008-10-23 4 views
3

Windows의 커널 모드에서 특정 디스크에서 수행 된 모든 작업을 가로 채고 거의 모니터 할 수 있습니다. 어떤 목적 으로든 파일을 열면 이벤트가 발생합니다.특정 파일을 열었던 프로세스 추적

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

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

미리 감사드립니다.

/Robert

답변

-3

Win32 N.API를 사용하여 파일 핸들에서 PID를 가져옵니다. 15 년 동안 자주 묻는 질문입니다 ...

+0

-1 사실상 여기에 정보가 없습니다. –

0

나는 Sysinternals에서 "handle.exe"응용 프로그램을 사용합니다.

아니면 프로그래밍 방식으로 실제로 하시겠습니까?

+0

예, 프로그래밍 방식으로 "win32 API의 파일 관리 기능"및 "이벤트" – sharkin

3

Sysinternals Filemon (무료)이 작업을 수행하고, 더 나은 아직 그들은 그것을 어떻게 설명 : 윈도우 9x의 드라이버의

, FileMon을의 가상 장치 드라이버, Filevxd.vxd에있는 마음. 동적으로 로드이며, 초기화에 는 의 호출 체인의 모든 파일 시스템 요청에 자신을 삽입 때문에, VxD에 서비스, IFSMGR_InstallFileSystemApiHook를 통해 파일 시스템 필터를 설치합니다. 윈도우 NT에서 FileMon을의 마음이 만들어 이 대상 파일 시스템 장치에 필터 장치 개체를 첨부 파일 시스템 드라이버 때문에 FileMon을 모든 IRP를하고 드라이브에 지시 FastIO 요청을 볼 수 개체입니다. FileMon이 열기, 만들기 또는 닫기 호출을 보게되면 내부 파일 핸들과 경로 이름 사이에 매핑으로 사용되는 내부 해시 테이블을 업데이트합니다. 핸들 기반 인 호출을 볼 때마다 해시 테이블에서 핸들을 조회하여 표시 할 전체 이름 을 얻습니다. 핸들 기반 액세스가 FileMon이 시작되기 전에 열린 파일을 참조하는 경우 FileMon 은 해당 해시 테이블에서 매핑을 찾지 못하고 대신 핸들 값을 표시합니다.

-Adam

1

시스 인 터널은 이전 버전의 일부 소스 코드가 여전히 예를 들어 here 사용할 수 있는지, 그 일을하고 설명에 이렇게 좋은 일을했고, 코드 잘 (이럴)에 설명되어 있습니다. 좋은 시작일 수도 있습니다.

관련 문제