簡體   English   中英

C# - 擊敗鍵盤記錄器的透明窗口

[英]C# - Transparent Window to defeat Keyloggers

如何創建一個對用戶完全明顯但在屏幕截圖中不可見的窗口。 我知道這是可能的,因為Neo SafeKeys(用於擊敗鍵盤記錄器的屏幕鍵盤)沒有出現在我安裝的鍵盤記錄軟件的截圖中。

為了給你一個想法,窗口對用戶是完全可見的,但是當拍攝截圖時,Neo SafeKeys窗口根本不顯示(好像它甚至不存在)。

Neo SafeKeys聲稱它在窗口上方使用了一個隱形保護層來防止屏幕截圖。 我已經在互聯網上搜索過,看看我怎樣才能重現這一點,但無濟於事。 有沒有人知道如何執行此操作(用戶可見但在屏幕截圖中不可見的窗口)?

你可以做的是你可以防止PrtScn鍵在按下時做任何事情。 看一下這篇文章,同時向您展示如何執行此操作。

本文正在做的是清理剪貼板。 您可以做的是捕獲屏幕圖像並以數字方式刪除您的應用程序,然后將修改后的圖像放在剪貼板上,從而給出使窗口透明的“效果”。

此外,你可能想看看這個SO問題 ,它提供了一種替代方法,使你的窗口顯示為“藍色”,盡管它不容易做到。

有沒有人知道如何執行此操作(用戶可見但在屏幕截圖中不可見的窗口)?

使用DirectX直接呈現給設備。

在C#應用程序中,您可以設置全局掛鈎來監視鍵盤事件。 然后您的應用程序成為打印屏幕的全局處理程序。 現在,如果另一個應用程序管理屏幕本地打印,無法阻止,但任何通過Windows運行,你可以得到。

WM_KEYBOARD_LL掛鈎是可以在托管代碼中使用的少數全局掛鈎之一,因為它不需要將DLL注入到每個目標中。

對於某些代碼,您可以訪問:

亞當的博客

請記住,這些是全局掛鈎,因此您需要確保不會影響其他任何(其他應用程序)。 我在過去使用過這些,因為我們在我們工作的應用程序中顯示了一個功能點。 基本上我們不希望用戶調用任何powerpoint菜單或鍵盤快捷鍵,因此我們使用了全局鈎子。 我們總是檢查用戶是否在某個區域(屏幕)和我們的應用程序中,否則我們會影響其他應用程序功能(包括我們自己的!)

微軟信息:

鈎子概述

有這個..... 視覺加密

這里的實例

但是這可以很容易地通過拍攝多個屏幕截圖並將它們過度放置等來編碼...

如果您使用的是Windows,並且可以避免發生屏幕日志,那么您可以實施一個很好的解決方案,如虛擬桌面,將您的流程嵌入其中。 當進程在虛擬桌面內運行時,可以繞過在win32 Api上運行的screenlogger工具。

看看這篇文章,你就可以偷看如何從屏幕和鍵盤監控中實現一個很好的解決方案。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM