2013-01-09 18 views
7

Tôi cần viết chương trình để hiển thị cửa sổ mật khẩu khi người dùng cố gắng truy cập tệp hoặc thư mục trong C++ để giành chiến thắng XP & giành chiến thắng 7 (cho cả 32 bit và 64bit)). Nhưng phần khó khăn là tôi không thể sử dụng IAT \ EAT hoặc nội tuyến hooking cho nhiệm vụ này vì nó là cần thiết để sử dụng một chút Microsoft hỗ trợ phương pháp cho dự án này.Ngăn chặn tệp thư mục I O không có bộ lọc API hoặc trình điều khiển lọc

Trong khi googling cho điều này, nó cũng đã được đề cập trong nhiều diễn đàn mà điều này có thể được thực hiện bằng cách sử dụng một trình điều khiển bộ lọc hệ thống tập tin nhưng tôi tự hỏi làm thế nào tôi hiển thị một hộp thoại mật khẩu từ một trình điều khiển mini.

Tôi nghĩ rằng tiện ích mở rộng vỏ có thể thực hiện công việc này, nhưng tài liệu msdn cho thấy tiện ích mở rộng vỏ không thể được sử dụng để chặn cuộc gọi I/O.

Xin lời khuyên, cảm ơn trước.

+1

Điều gì ngăn người dùng khởi chạy hộp DOS và chỉ sử dụng lệnh giao diện điều khiển để có được những gì anh ta muốn? – selbie

+4

Tôi làm gió lên bằng cách viết một thành phần trình điều khiển, chính trình điều khiển có thể sẽ không hiển thị bất kỳ giao diện người dùng nào. Nhưng nó có thể giao tiếp với một ứng dụng chế độ người dùng (ứng dụng khay tác vụ ala) để khởi chạy một giao diện người dùng để thu thập tín dụng từ đó. – selbie

Trả lời

4

Bạn cần trình điều khiển hạt nhân để đạt được điều đó. Shell hook và extensions chỉ được kích hoạt khi file được truy cập thông qua shell (ví dụ: click vào trong Windows Explorer), và sẽ không kích hoạt nếu file được truy cập trực tiếp bởi các chương trình khác.

Tôi đã có thử thách tương tự khi làm việc trên vi-rút chống truy cập.

Nhưng như @selbie đã nói, mã trình điều khiển chính nó không thể xử lý bất kỳ lời nhắc tương tác nào - nó phải giao tiếp với mã chế độ người dùng để đạt được điều đó. Đó có thể là ứng dụng độc lập, hoặc DLL của bạn tự động nạp vào mọi quá trình. Trong trường hợp của tôi, nếu phản hồi của người dùng là cần thiết, chúng tôi đã có trình điều khiển và ứng dụng chế độ người dùng giao tiếp qua đường ống - trình điều khiển sẽ gửi thư tới ứng dụng chế độ người dùng (nếu nó đang hoạt động) và sau đó chờ phản hồi. Ứng dụng đã đưa ra phản hồi nhanh chóng và đường ống cho người lái xe.

Chủ đề của tập tin I/O hooking cũng được thảo luận in earlier thread here.

Các vấn đề liên quan