首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请帮助我开发一个利用恶意行为检测病毒的程序。

请帮助我开发一个利用恶意行为检测病毒的程序。
EN

Stack Overflow用户
提问于 2009-11-25 10:26:06
回答 3查看 3.2K关注 0票数 2

我知道防病毒怎么检测病毒。我读过几篇文章:

反病毒程序如何检测病毒?

http://www.antivirusworld.com/articles/antivirus.php

http://www.agusblog.com/wordpress/what-is-a-virus-signature-are-they-still-used-3.htm

http://hooked-on-mnemonics.blogspot.com/2011/01/intro-to-creating-anti-virus-signatures.html

在这一个月的假期里。我想学习并编写一个简单的病毒检测程序:所以,有2-3种方法(来自上述文章):

  1. 病毒词典:寻找病毒特征
  2. 检测恶意行为

我想走第二条路。我想从简单的事情开始。

顺便提一下,我最近遇到了一个名为"ThreatFire“的软件。做得很好。

  1. 我不明白的第一件事是,这个程序怎么能在另一个程序之间释放另一个程序的执行,并提示用户它的动作。这难道不像是违法行为吗?
  2. 它如何扫描其他程序的记忆?程序仅限于其虚拟空间,对吗?
  3. C# .NET做这种事对吗?
  4. 请张贴你的想法,如何去做它?还提到一些我能做的简单的事情。
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-26 03:12:42

  1. 之所以会发生这种情况,是因为所讨论的软件可能安装了一个特殊的驱动程序,允许它进行底层内核访问,从而允许它拦截和拒绝各种潜在的恶意行为。
  2. 通过拥有许多驱动程序所做的权限,这使它能够扫描另一个进程的内存空间。
  3. 不是的。C#需要很大一部分已经加载的操作系统。驱动程序需要先加载。
  4. 了解驱动程序和内核级编程。。。我还没有这么做,所以我在这里帮不了什么忙。
票数 5
EN

Stack Overflow用户

发布于 2009-11-29 06:51:57

我认为系统调用是可行的,而且比实际尝试扫描多进程的内存空间要可行得多。虽然我不是一个低级别的Windows人员,但这似乎可以通过使用Windows挂钩到底层API来实现,后者可以修改系统范围内对系统调用的响应。这些钩子可以像内核模块一样安装,并拦截并可能修改系统调用。我找到了一个提供更多信息的关于CodeProject的文章

在我参加的一门机器学习课程中,一个小组决定尝试一些类似于你在一个学期项目中描述的东西。他们使用程序最近发出的系统调用列表来确定正在执行的程序是否是恶意的,结果是有希望的(假设95%的识别率在新的样本上)。在他们的项目中,他们在窗口调用列表上使用SVM进行培训,并使用它来确定一个好的窗口大小。之后,您可以从不同的恶意程序中收集系统调用列表,或者对整个列表进行培训,或者找到您认为的“恶意活动”并标记它。这种方法的酷之处(除了基于ML的事实)是窗口的大小很小,而且许多训练有素的急切分类器(SVM,神经网络)执行得很快。

不管怎么说,如果它不是你的风格,它似乎可以不使用ML来完成。如果你想要更多关于这个团体的信息,请告诉我--也许我能把它挖出来。祝好运!

票数 3
EN

Stack Overflow用户

发布于 2009-12-03 12:16:14

  1. Windows为此提供了API(通常涉及在内核中运行至少部分代码)。如果您有足够的权限,也可以将一个.dll注入到其他进程中。见注入
  2. 当你拥有上述能力时,你就可以做到这一点。您可以在内核空间中访问所有东西,也可以访问目标进程内的所有内容。
  3. 至少对于内核中的底层内容来说,您需要一些比C#更低的东西,比如C或C++。我不确定,但你也许可以在C#应用程序中做一些其他的事情。
  4. DLL注入听起来是最简单的起点。您仍然处于用户空间,不需要学习如何生活在内核世界(这是完全不同的世界,真的)。

关于一般主题的一些松散的想法:

  • 您可以插入由跟踪进程发出的系统调用。一般认为,如果不发出系统调用,进程就不能做任何“危险的”事情。
  • 您可以拦截它的网络流量,查看它连接到哪里、发送了什么、接收了什么、它接触了哪些文件、哪些系统调用失败了。
  • 你可以扫描它的内存并在沙箱中模拟它的执行(真的很难)
  • 使用系统调用干预,您可以模拟对系统调用的一些响应,但实际上只是对进程进行沙箱化处理。
  • 您可以扫描进程内存并从中提取一些一般特征(连接到网络、修改注册表、挂钩到Windows、枚举进程等),并查看它是否具有恶意
  • 只要把整个东西放在沙箱里,看看会发生什么(谷歌Chrome已经制作了一个不错的沙箱,而且它是开源的!)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1796007

复制
相关文章

相似问题

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