2013-04-10 44 views
6

Làm cách nào để tạo cửa sổ hoàn toàn rõ ràng cho người dùng nhưng không hiển thị trong ảnh chụp màn hình. Tôi biết rằng điều này là có thể kể từ Neo SafeKeys (một bàn phím trên màn hình để đánh bại keyloggers) không xuất hiện trong các ảnh chụp màn hình được thực hiện bởi phần mềm keylogging tôi đã cài đặt.C# - Cửa sổ trong suốt để đánh bại Keyloggers

Để cung cấp cho bạn ý tưởng, cửa sổ hiển thị đầy đủ cho người dùng, tuy nhiên khi chụp màn hình, cửa sổ Neo SafeKeys sẽ không xuất hiện (như thể nó không tồn tại).

Neo SafeKeys tuyên bố rằng nó sử dụng lớp bảo vệ vô hình phía trên cửa sổ để bảo vệ chống lại ảnh chụp màn hình. Tôi đã tìm kiếm trên internet để xem làm thế nào tôi có thể tái sản xuất này, vô ích. Có ai biết làm thế nào điều này có thể được thực hiện (cửa sổ được hiển thị cho người dùng nhưng vô hình trong ảnh chụp màn hình)?

+0

Tôi chỉ là đoán nhưng có thể bạn phải nắm bắt sự kiện ảnh chụp màn hình và cửa sổ biến mất ngay trước nó? –

+0

Có thể thực hiện điều này bằng C# không? Hay nó yêu cầu lập trình cấp thấp như C? – Matthew

+0

Bạn có thể sử dụng C# gián tiếp máng interop. –

Trả lời

4

Điều bạn có thể làm là bạn có thể ngăn phím PrtScn thực hiện bất kỳ thao tác nào khi được nhấn. Hãy xem this article trong khi chỉ cho bạn cách thực hiện việc này.

Bài viết này đang làm là xóa khay nhớ tạm. Những gì bạn có thể làm thay vào đó là chụp ảnh màn hình và xóa kỹ ứng dụng của bạn, sau đó đặt hình ảnh đã chỉnh sửa vào khay nhớ tạm, do đó tạo hiệu ứng "" làm cho cửa sổ của bạn trong suốt.

Ngoài ra, bạn có thể muốn xem this SO question cung cấp một cách thay thế để làm cho cửa sổ của bạn chỉ xuất hiện "màu xanh", mặc dù không dễ làm.

+0

Cảm ơn bạn đã phản hồi. Tuy nhiên, điều gì sẽ xảy ra nếu một keylogger sử dụng một số phần mềm chụp màn hình khác thay vì màn hình in thông thường? – Matthew

+3

@Matthew - Chỉ đơn giản là không phải là cách để bảo vệ 100% chống lại điều này. Ngay cả khi bạn tìm thấy giải pháp, ai đó luôn có thể chụp ảnh màn hình của họ bằng máy ảnh kỹ thuật số – Icemanind

+0

Cảm ơn câu trả lời của bạn. Tôi hoàn toàn nhận thức được vấn đề máy ảnh kỹ thuật số. Tuy nhiên, tôi chỉ tập trung vào các keylogger chụp ảnh màn hình trên máy tính của mình. – Matthew

1

Trong ứng dụng C#, bạn có thể thiết lập móc nối toàn cầu để theo dõi các sự kiện bàn phím. Sau đó, ứng dụng của bạn sẽ trở thành trình xử lý toàn cầu cho màn hình in. Bây giờ nếu một ứng dụng khác được quản lý màn hình in nguyên bản, không thể dừng lại, nhưng bất cứ điều gì chạy qua cửa sổ, bạn có thể nhận được tại.

Móc WM_KEYBOARD_LL là một trong số ít móc toàn cục có thể được sử dụng trong mã được quản lý bởi vì nó không yêu cầu DLL phải được tiêm vào mọi mục tiêu.

Đối với một số mã, bạn có thể truy cập vào đây:

Adam's Blog

Hãy ghi nhớ rằng đây là những móc toàn cầu, do đó bạn muốn chắc chắn không có gì khác (các ứng dụng khác) được thực hiện. Tôi đã sử dụng những điều này trong quá khứ khi chúng tôi lưu trữ hiển thị một điểm mạnh trong một ứng dụng mà chúng tôi đã làm việc. Về cơ bản, chúng tôi không muốn người dùng gọi bất kỳ menu powerpoint hoặc cắt ngắn bàn phím nào vì vậy chúng tôi đã sử dụng móc nối chung. Chúng tôi luôn kiểm tra để xem liệu người dùng đang ở trong một khu vực nhất định (màn hình) và trong ứng dụng của chúng tôi, nếu không chúng tôi sẽ ảnh hưởng đến các ứng dụng chức năng khác

Microsoft thông tin (bao gồm cả chính chúng ta!):

Hooks Overview

+0

Cảm ơn bạn đã trả lời – Matthew

4

Có ai biết làm thế nào điều này có thể được thực hiện (cửa sổ được hiển thị cho người dùng nhưng vô hình trong ảnh chụp màn hình)?

Sử dụng DirectX để hiển thị trực tiếp thiết bị.

+0

Bạn có biết bất kỳ hướng dẫn hữu ích nào có thể hữu ích không? – Matthew

+0

Bạn đang cố gắng xây dựng loại ứng dụng nào? Vẽ một bàn phím trên màn hình tương đối đơn giản trong DirectX, nhưng nếu bạn đang cố gắng xây dựng một cái gì đó giống như một ứng dụng cửa sổ bình thường với các điều khiển WinForms (hộp chỉnh sửa, danh sách thả xuống, v.v.) có thể phức tạp để có được những gì bạn muốn. – LouD

+0

Tôi muốn tạo bàn phím ảo để hiển thị trên trang web. Nó rõ ràng nên bao gồm một loạt các nút. Tôi không nghĩ rằng tôi sẽ thêm hộp thả xuống và các loại tương tự. Điều quan trọng nhất tuy nhiên là nó là minh bạch cho ảnh chụp màn hình. – Matthew

1

Có ..... visual cryptography

live dụ here

Nhưng điều này có thể dễ dàng mã hóa chống lại bằng cách tham gia nhiều ảnh chụp màn hình và đặt chúng overeachother và như vậy ...

+0

Cảm ơn câu trả lời của bạn. – Matthew

0

Nếu bạn đang sử dụng Windows, và bạn có thể tránh screenlogging điều đó xảy ra , bạn có thể thực hiện một giải pháp tốt đẹp như một máy tính để bàn ảo để nhúng quá trình của bạn vào đó. Khi một tiến trình đang chạy bên trong một desktop ảo, bạn có thể bỏ qua một công cụ screenlogger chạy trên win32 Api.

Hãy xem bài viết này để bạn có thể xem trước cách triển khai giải pháp tốt đẹp để scape từ giám sát màn hình và bàn phím.

http://www.codeproject.com/Articles/7392/Lock-Windows-Desktop?fid=62485&select=3139662&fr=101#xx0xx

+0

Có lẽ bạn nên tóm tắt thêm liên kết trong câu trả lời này. – michaelb958

+0

Vâng, bạn đúng, mẫu này dựa trên khái niệm Virtual Desktops, kỹ thuật đơn giản này có sự kỳ diệu khi đưa ra một môi trường riêng biệt mà bất kỳ keylogger hoặc screenlogger nào hoạt động trên WIN32 Api sẽ bị chặn và sẽ không hoạt động như mong đợi. Khi một quá trình chạy vào một máy ảo, bạn có thể đạt được một số loại bảo mật chống lại phần mềm độc hại điển hình, nhưng điều gì sẽ xảy ra nếu phần mềm độc hại đó hoạt động bên trong hạt nhân chẳng hạn như Elite Keylogger? Ok giải pháp sẽ không hoạt động và bạn cần phải xây dựng ví dụ một trình điều khiển để mã hóa tin nhắn nhấn phím trước khi một keylogger có thể bắt bất kỳ thông điệp sạch nào. – user2419507

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