首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >c++中的内存扫描

c++中的内存扫描
EN

Stack Overflow用户
提问于 2013-09-13 04:47:30
回答 1查看 1.3K关注 0票数 0

我正在用Visual 2010编写一个WIN32项目。我正试图通过ClamAV(开放源码防病毒)引擎扫描我的主内存,以便在主内存中搜索恶意/受感染的文件。

到目前为止,我编写的代码使用windows函数CreateToolhelp32Snapshot创建了整个主内存的快照。

然后我从快照中打开一个特定的进程,并将其传递给ClamAV引擎,然后引擎决定它是否是恶意的。我每隔10秒重复一遍整个机制。但我认为这不是一个有效的方法,

我想做的是扫描我的整个内存一次,然后我只扫描那些在主内存中新创建的进程。请告诉我,有没有办法只从内存中获得新创建的方法,而不是整个内存?

EN

回答 1

Stack Overflow用户

发布于 2013-09-13 06:29:10

我认为这不能仅仅在用户空间程序中完成。我对Windows不是很熟悉,但是我可以给你一些关于如何做的粗略的提示。

  1. 在执行之前,您应该扫描每个程序的
  2. 使所有内存成为以后分配的程序non-executable (NX位)
  3. 该程序将触发一个页面错误,当它试图执行,扫描它现在!!
  4. 使扫描内存为只读,然后继续执行它。
  5. 一旦一个程序试图编写这个区域,就让它再次成为non-executable

注意:如果您想确保安全,内存区域永远不会同时成为可执行和可写的

通过这种方式,只需检查正在执行的内存。而且应该很有效率。

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

https://stackoverflow.com/questions/18778497

复制
相关文章

相似问题

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