createfile 및 openfile 외에 파일 핸들을 가져오는 Windows API가 있습니까?
문제
애플리케이션이 기록하고 있는 로그 파일을 스누핑하려고 합니다.
MSR의 우회 라이브러리를 사용하여 createfile을 성공적으로 연결했지만 스누핑에 관심이 있는 파일과 함께 createfile이 호출되지 않는 것 같습니다.나는 또한 같은 결과로 openfile을 연결하려고 시도했습니다.
저는 숙련된 Windows/C++ 프로그래머(또는 숙련된 프로그래머)가 아니기 때문에 처음 두 가지 생각은 API를 연결하기 전에 응용 프로그램이 createfile을 호출하거나 파일을 생성하거나 핸들을 얻기 위한 다른 API가 있다는 것이었습니다. .
편집하다:두 가지 훌륭한 답변에 감사드립니다.코딩더휠의 답변은 유익했기 때문에 찬성했지만 담당자가 충분하지 않습니다.
해결책
Sysinternal을 사용할 수 있습니다 파일몬.어떤 파일 관련 시스템 호출이 이루어지고 있는지 정확히 알 수있는 우수한 모니터이며 매개 변수는 무엇입니까?
나는 이 접근 방식이 API 호출을 연결하는 것보다 훨씬 쉽고 덜 방해적이라고 생각합니다.
다른 팁
다음은 유용할 수 있는 링크입니다.
CreateFile API를 건드리지 않고도 파일을 생성할 수 있는데 물어봐도 될까요? 어떤 DLL 주입 방법을 사용하고 있나요??Windows Hooks와 같은 것을 사용하는 경우 대상 응용 프로그램이 초기화될 때까지 DLL이 설치되지 않으며 CreateFile에 대한 초기 호출을 놓칠 수 있습니다.반면 DetourCreateProcessWithDll과 같은 것을 사용하는 경우에는 애플리케이션 시작 코드가 실행되기 전에 CreateFile 후크를 설치할 수 있습니다.
내 경험에 따르면 C 및 C++ 라이브러리, 타사 라이브러리 등을 통해 열린 파일을 포함하여 생성/열린 파일의 99.9%가 CreateFile을 호출하게 됩니다.CreateFile을 통해 라우팅하지 않는 문서화되지 않은 DDK 함수가 있을 수 있지만 일반적인 로그 파일의 경우 의심스럽습니다.
프로세스 모니터 sysinternals의 도움도 도움이 될 수 있습니다.