C#-击败键盘记录者的透明窗口

C#-击败键盘记录者的透明窗口,c#,window,transparent,keylogger,C#,Window,Transparent,Keylogger,如何创建一个用户完全清楚但在屏幕截图中不可见的窗口。我知道这是可能的,因为Neo SafeKeys(一种可以击败键盘记录者的屏幕键盘)没有出现在我安装的键盘记录软件拍摄的屏幕截图中 为了给你一个想法,用户完全可以看到该窗口,但是当截屏时,Neo SafeKeys窗口根本不出现(好像它根本不存在) Neo SafeKeys表示,它在窗口上方使用了一层不可见的保护层来防止截图。我已经在互联网上搜索过了,想知道如何复制这个,但没有结果。是否有人知道如何执行此操作(用户可以看到但在屏幕截图中不可见的窗口

如何创建一个用户完全清楚但在屏幕截图中不可见的窗口。我知道这是可能的,因为Neo SafeKeys(一种可以击败键盘记录者的屏幕键盘)没有出现在我安装的键盘记录软件拍摄的屏幕截图中

为了给你一个想法,用户完全可以看到该窗口,但是当截屏时,Neo SafeKeys窗口根本不出现(好像它根本不存在)


Neo SafeKeys表示,它在窗口上方使用了一层不可见的保护层来防止截图。我已经在互联网上搜索过了,想知道如何复制这个,但没有结果。是否有人知道如何执行此操作(用户可以看到但在屏幕截图中不可见的窗口)?

您可以防止按下PrtScn键时执行任何操作。看看while,告诉你怎么做

本文所做的是清除剪贴板。你可以做的是截取屏幕图像并以数字方式删除你的应用程序,然后将修改后的图像放在剪贴板上,从而产生使窗口透明的“效果”

此外,您可能想看看哪种方法可以让窗口显示为“蓝色”,尽管这并不容易。

在C#应用程序中,您可以设置一个全局钩子来监视键盘事件。然后,应用程序成为打印屏幕的全局处理程序。现在,如果另一个应用程序以本机方式管理屏幕打印,则无法停止该操作,但任何通过windows运行的应用程序都可以访问

WM_KEYBOARD_LL钩子是少数几个可以在托管代码中使用的全局钩子之一,因为它不需要将DLL注入到每个目标中

有关某些代码,您可以访问此处:

请记住,这些是全局钩子,因此您希望确保不会影响其他应用程序(其他应用程序)。我过去在主持展示我们所开发的应用程序中的电源点时使用过这些。基本上,我们不希望用户调用任何powerpoint菜单或键盘快捷方式,因此我们使用了全局挂钩。我们总是检查用户是否在某个区域(屏幕)和我们的应用程序中,否则我们会影响其他应用程序的功能(包括我们自己的!)

Microsoft信息:

是否有人知道如何执行此操作(用户可以看到但在屏幕截图中不可见的窗口)

使用DirectX直接渲染到设备。

这里有。。。。。

实例


但是,如果你使用Windows,并且你可以避免屏幕记录的发生,你可以实现一个很好的解决方案,比如虚拟桌面,将你的进程嵌入其中。当进程在虚拟桌面中运行时,可以绕过运行在win32 Api上的屏幕记录器工具

看看这篇文章,你就可以窥探一下如何实现一个很好的解决方案,从屏幕和键盘监控的scape


我只是猜测,但也许你必须捕捉屏幕截图事件并在事件发生之前将窗口消失?这可以用C完成吗?或者它需要像C一样的低级编程?你可以通过互操作间接使用C。@DenysDenysenko如果捕获屏幕截图事件还没有发生,你怎么能在捕获屏幕截图事件之前消失窗口?我很难过,这只是一个猜测。您可以处理与WinAPI相同的事件,如果有,您可以使用它。感谢您的回复。然而,如果键盘记录器使用其他屏幕捕获软件而不是通常的打印屏幕,会发生什么情况?@Matthew-根本没有办法100%防止这种情况。即使你找到了解决方案,也有人可以用数码相机给他们的显示器拍照。谢谢你的回答。我完全了解数码相机的问题。不过,我只关注键盘记录者在电脑上截图。顺便说一句,谢谢你的链接:)@Matthew-另一个解决方案,虽然不是很优雅,也不建议设置一个计时器,每隔500毫秒或其他时间清除剪贴板。谢谢你的回答。你知道有用的指南吗?你想创建什么样的应用程序?在DirectX中绘制屏幕上的键盘相对简单,但如果您试图构建一个类似于普通windows应用程序的WinForms控件(编辑框、下拉列表等),那么要获得所需的内容可能会非常复杂。我想创建一个屏幕上的键盘,以便在网站中显示。它显然应该由一系列按钮组成。我不认为我会添加下拉框之类的东西。然而,最重要的是它对屏幕截图是透明的。你看,这个应用程序旨在击败屏幕截图键盘记录者。因此,如果应用程序对用户可见,但在屏幕截图中完全不可见,这将是可取的。我知道这是可能的,因为Neo SafeKeys做到了。我肯定会坚持使用DirectX。键盘和按钮的二维绘图很简单。请注意,键盘记录者不需要使用PrtScrn按键或剪贴板来刮屏幕。即使是视频存储也不是禁区,但这只是另一个障碍。另一个需要考虑的问题是,如果你在一个网站上这样做,你需要制作一个插件来在远程机器上部署其中的任何一个。有很多像Unity3d这样的插件,你可以在其中渲染你的键盘。你可能应该在这个答案中总结更多的链接。是的,你说得对,这个示例基于虚拟桌面的概念,这个简单的技术有一种神奇的魔力,就是提供一个隔离的环境,在这个环境中,任何通过WIN32 Api工作的键盘记录器或屏幕记录器都将被阻止,并且无法按预期工作。当一个进程运行到一个虚拟桌面上时,您可以针对典型的问题实现某种安全性