2009-07-10 5 views
14

파일의 열린 프로세스를 차단할 수있는 작은 프로그램을 만들려고합니다.가로 채기 창에서 파일 열기

사용자가 특정 폴더의 파일을 두 번 클릭하면 Windows에서 소프트웨어에 알린 다음 해당 청원서를 처리하고 파일의 데이터를 반환합니다.

아마도 열려있는 메시지를 모니터링하고 프로그램이 파일의 내용을 준비하는 동안 Windows를 기다리는 것과 같은 다른 솔루션이있을 수 있습니다.

이 개념을 한 번 적용하면 사용자에게 투명하게 파일의 암호화 해제를 관리 할 수 ​​있습니다. 이 컨텍스트에서 암호화 된 파일은 디스크에 있으며 사용자가 열거 나 두 번 클릭하거나 메모장과 같은 일부 응용 프로그램에서 열면 백그라운드 프로세스가 해당 열린 이벤트를 가로 채고 파일의 암호를 해독하고 해당 파일의 내용을 묻는 응용 프로그램에 보냅니다.

"Man In The Middle"네트워크 개념과 비슷하지만 네트워크 패킷 대신 파일을 사용하는 것이 이상한 개념입니다.

읽어 주셔서 감사합니다.

답변

10

어떤 프로그램에서든 열 수있는 모든 경우를 다루는 가장 좋은 방법은 file system filter driver입니다. 그러나 이것은 귀하의 요구에 너무 복잡 할 수 있습니다.

+0

그런 드라이버에 대한 정보는 어디에서 찾을 수 있습니까? – Geo

+0

많은 자원과 정보가있는 MS 페이지에 링크되어 있습니다. –

+0

바이러스 백신 소프트웨어, 즉석에서 암호화/압축 및 기타 방식으로 이러한 방식으로 구축됩니다. –

0

Windows에는 디스크의 파일을 암호화하는 옵션 (파일 -> 속성 -> 고급 -> 암호화)이 있으며이 옵션은 응용 프로그램에 완전히 투명합니다.

아마도 디스크의 파일 부분을 암호 해독하려면 criptainer와 같은 소프트웨어를 고려해야합니까?

http://www.truecrypt.org/downloads (무료 및 오픈 소스)이 소프트웨어도 있지만 시도하지는 않았습니다.

맞춤 솔루션을 개발하는 것은 매우 어려운 것처럼 들립니다.

+0

자, 아마도 파일 시스템 필터 드라이버로 할 수는 있지만, "실행 가능한"솔루션이라고 생각하지는 않습니다. 시간과 기술이 충분하지 않은 한 :-) 매우 정교한 뭔가를 개발하고 있습니다. –

+0

크립트 예제는 단지 의심스러운 그림 일뿐입니다. 나는 어떤 암호화도 전혀 필요가 없다. – HyLian

11

Process Explorer이 자신을 작업 관리자로 바꾸는 데 사용할 수있는 트릭을 사용할 수 있습니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe

당신은 차단하는 프로세스의 이름으로 'taskmgr.exe' 대체 : 기본적으로이 같은 키를 만듭니다. 그런 다음 실행 파일에 대한 경로가있는 'Debugger'이라는 문자열 값을 추가하십시오. 예컨대 :

Debugger -> "C:\windows\system32\notepad.exe"

프로세스가 이미지가 프로세스가 실제로 인수로 실제 프로세스의 경로와 그 프로세스에 대한 디버거로 호출되는 이름과 일치 실행할 때마다.

+0

나는 이것이 최선의 방법 일 것이라고 믿는다. 그러나 openfiledialogs를 위해 그것을 어떻게 사용할 수 있을까? 열린 파일 대화 상자는 comdlg32.dll에 있습니다. –

4

코드 삽입 및 API 리디렉션을 사용할 수 있습니다. 목표 프로세스를 시작한 다음 가로 채기를 원하는 Windows API 함수를 후크하는 DLL을 삽입하십시오. 그런 다음 대상 프로세스가 OpenFile() 또는 다른 것을 호출하고 실제 API로 호출을 전달하기 전에 원하는 것을 수행 할 수 있다고 생각할 때 호출됩니다.

Google for "IAT hooking"