模块相关

   特征码查杀大家都不会陌生,很早以前就针对这项技术爆发过激烈的讨论,那便是特征码查杀的固有弊端,查杀的滞后性。而自06年之后,行为查杀的技术便开始风行起来了,它主要是根据程序启动的时候,分析其行为,并拦截下认为可能具备危险性的行为,这有迥异于启发式杀毒技术,因为行为杀毒是在实际的环境中运行的。设计个人反病毒软件的思路如下,总分四个模块:

   1. 行为采集模块,主要负责进程之间的调用以及参数的传递

   2. 规则定义模块,定义拦截病毒行为的规则

   3. 行为分析模块,获取病毒执行的行为,并与规则定义模块中的规则做比对

   4. 交互界面,    该模块主要用于交互,一个基于QT的窗口

行为采集

   linux的系统下,可以通过proc目录中的子目录命名信息来获取实际上进程的PID,由此,我们可以遍历目录来读取目录中的这些数字,由此得到当前进程的PID,然后在跟踪到每一个进程,获取到系统调用信息,并作为日志保存。此外也需要通过一个循环,不断的监控进程的产生情况。当前监控的时候,需要排除自身...由于需要跟进到可以进程制定的文件的位置,所以还需要通过read函数来获取proc的每一个进程下的cmdline文件中的相关内容。

 

规则定义

    说白了,这个也便是一个配置文件了,配置的内容全然可以自己定义,随心所欲,前提是有效!因为我们需要一个匹配的过程,同时也需要一个显示的过程,需要把一些信息反馈给用户。不过,这样的做法很有局限性,毕竟人脑的容量有限度,很多东西不可能了然于心,所以这种基于行为的反病毒软件,就是要根据新的行为及时的的添加新的规则。

行为分析

   这个模块在这里就便是核心模块了,之前我们已经有两个模块为这个模块做了足够的准备,一个是采集系统调用的信息,一个是定义病毒的行为拦截规则。这个模块我们可以使用get_rule函数来读取规则,然后利用get_sysinfo函数来获取当前系统调用的信息,并将这些进程的信息与get_rule中获取到的信息进行匹配,如果匹配成功了,就判定该进程是可疑进程,最后调用adjudicator(判官的意思,-.-!!)函数来进行处理,这里实现了将可疑进程的相关信息显示出来,若要进行进一步的操作,可以写一些提供用户手工选择的方式,或者自动进行一个删除,或者恢复等操作。

用户交互

该模块就是显示模块了,无非就是读取日志文件的行为内容,反馈给用户,实现简单...