首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测Windows中软件(间谍软件)拍摄屏幕截图的时间

检测Windows中软件(间谍软件)拍摄屏幕截图的时间
EN

Security用户
提问于 2016-06-08 07:50:03
回答 2查看 16.3K关注 0票数 6

大多数木马,间谍软件和键盘记录器工具有能力拍摄截图。是否有一种方法可以检测应用程序或软件是否正在Windows中截图?可能是Windows调用或dll?

这将有助于查找恶意软件。

EN

回答 2

Security用户

发布于 2016-06-08 12:10:42

我的答案需要写一些代码。我之所以发布这个答案,是因为您在问题中提到了一个与编程相关的解决方案。

从windows开始,windows内核就会为计算机上发生的每一件事情引发一个事件。微软提供了一个名为TraceEvent for .NET的库,它使连接这些事件变得非常简单。

为了检测屏幕截图,您可以监视内存写入事件、文件写入事件等等。您还可以连接到套接字、IO等通知。您可以在大约30行代码中完成所有这些。

从那里开始,根据你想要的侵入性和彻底性,你可以做很多事情。您可以将未知进程(如Winsock的send函数)中的调用挂钩,并最终抓取进程写入套接字的所有数据的副本,并对其进行检查。您可以在刮掉的数据中查找JPEG或PNG报头,如果您找到警钟,就可以发出警报。您可以打开并分析它编写的文件,等等。

在这一点上,事情可能会变得复杂,但您可能会用一个库(如send )来连接EasyHook函数,比如使用大约100个LOC。

另一种方法是查看这样的应用程序需要加载哪些库/WinAPI函数才能执行此功能。您可以检测进程何时启动以及何时使用这些内核事件加载程序集(.dll),因此您只需查找加载程序集的正确(或错误)组合。您可以自动挂钩WinAPI或OpenGL或DirectX函数,这些函数在启动的每个进程中都提供屏幕捕获功能,并直接监视应用程序何时访问这些功能。

有关这种一般方法的更多信息,您可以看到我的另一个答案这里

我想说清楚的是,我所做的唯一容易的事情就是直接连接到操作系统的核心,并通知正在发生的事情。正确使用这些数据来有效捕获恶意代码是一项非常非常困难的任务。

票数 1
EN

Security用户

发布于 2016-06-08 08:25:32

您可以通过监视空闲空间(非常容易)或文件写入(不是那么容易)来检测它。屏幕截图必须存储在某个地方,这样文件就必须堆叠到一个不那么明显的位置。

这是我使用的方法,我通过使用一个简单的文件管理器就成功地找到并消除了一个多记录器。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/126433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档