理解杀毒软件技术的意义 脱壳、虚拟、启发式介绍

如果生命是一种执着的力量,那么总有一种力量,比生命更加执着,就是死亡!当你去深刻思考“死亡”这两个字的含义,用心去感受生命的来临与离去,更或许有的人,需要在他弥留之际,才能真正理解生命的价值。

  在计算机的世界里,病毒就是一种执着的力量,那么杀毒软件,就是死亡的力量;也或者病毒才是死亡的力量,不管怎样,杀毒软件是一种不可或缺的东西。

一、杀毒软件引擎与病毒库的关系

  其实病毒库与杀毒引擎没有直接的关系,杀毒引擎的任务和功能非常简单,就是对指定的文件或者程序进行判断其是否合法。而病毒库,只不过是对杀毒引擎的一种补充,那个过程,就是杀毒引擎对文件或者程序判断。明白这一点,就应该知道,好的杀毒软件,重要在引擎的优秀,病毒库越大,杀毒速度肯定会降低。因为病毒库杀毒的过程,是引擎把判断能力交给病毒库,用病毒库与指定的文件进行对比判断。

二、加壳、脱壳

  1.什么是加壳:所谓加壳,是一种通过一系列数学运算,将可执行程序文件或动态链接库文件的编码进行改变(目前还有一些加壳软件可以压缩、加密驱动程序),以达到缩小文件体积或加密程序编码的目的。

  当被加壳的程序运行时,外壳程序先被执行,然后由这个外壳程序负责将用户原有的程序在内存中解压缩,并把控制权交还给脱壳后的真正程序。一切操作自动完成,用户不知道也无需知道壳程序是如何运行的。一般情况下,加壳程序和未加壳程序的运行结果是一样的。

  如何判断一个可执行文件是否被加了壳呢?有一个简单的方法(对中文软件效果较明显)。用记事本打开一个可执行文件,如果能看到软件的提示信息则一般是未加壳的,如果完全是乱码,则多半是被加壳的。

  为什么黑客能够利用加壳技术来对抗反病毒软件呢?众所周知,目前杀毒软件主要依靠特征码技术查杀病毒。由于加壳软件会对源文件进行压缩、变形,使加密前后的特征码完全不同。

  脱壳能力不强的杀毒软件,对付“加壳”后病毒就需要添加两条不同的特征记录。如果黑客换一种加壳工具加壳,则对于这些杀毒软件来说又是一种新的病毒,必须添加新的特征记录才能够查杀。如果杀毒软件的脱壳能力较强,则可以先将病毒文件脱壳,再进行查杀,这样只需要一条记录就可以对这些病毒通杀,不仅减小杀毒软件对系统资源的占用,同时大大提升了其查杀病毒的能力。

  2. 脱壳

  马甲”能穿也能脱。相应的,有加壳也一定会有解壳(也叫脱壳)。脱壳主要有两种方法:硬脱壳和动态脱壳。

  第一种,是硬脱壳,这是指找出加壳软件的加壳算法,写出逆向算法,就像压缩和解压缩一样。由于,目前很多“壳”均带有加密、变形的特点,每次加壳生成的代码都不一样。硬脱壳对此无能为力,但由于其技术门槛较低,仍然被一些杀毒软件所使用。

  第二种,是动态脱壳。由于加壳的程序运行时必须还原成原始形态,即加壳程序会在运行时自行脱掉“马甲”。目前,有一种脱壳方式是抓取(Dump)内存中的镜像,再重构成标准的执行文件。相比硬脱壳方法,这种脱壳方法对自行加密、变形的壳处理效果更好。

三、虚拟机脱壳引擎(VUE)技术

  对于病毒,如果让其运行,则用户计算机就会被病毒感染。因此,一种新的思路被提出,即给病毒构造一个仿真的环境,诱骗病毒自己脱掉“马甲”。并且“虚拟环境”和用户的计算机隔离,病毒在虚拟机的操作不会对用户计算机有任何的影响。

  “虚拟机脱壳”技术已经成为近年来全球安全业界公认的、解决这一问题的最有效利器。但由于编写虚拟机系统需要解决虚拟CPU、虚拟周边硬件设备、虚拟驱动程序等多个方面的困难。

四、启发式杀毒

  病毒和正常程序的区别可以体现在许多方面,比较常见的如:通常一个应用程序在最初的指令,是检查命令行输入有无参数项、清屏和保存原来屏幕显示等,而病毒程序则没有会这样做的,通常它最初的指令是直接写盘操作、解码指令,或搜索某路径下的可执行程序等相关操作指令序列。这些显著的不同之处,一个熟练的程序员在调试状态下只需一瞥便可一目了然。启发式代码扫描技术实际上就是把这种经验和知识移植到一个查病毒软件中的具体程序体现。

  启发式指的“自我发现的能力”或“运用某种方式或方法去判定事物的知识和技能。”一个运用启发式扫描技术的病毒检测软件,实际上就是以特定方式实现的动态高度器或反编译器,通过对有关指令序列的反编译逐步理解和确定其蕴藏的真正动机。例如,如果一段程序以如下序列开始:MOV AH ,5/INT,13h,即调用格式化盘操作的BIOS指令功能,那么这段程序就高度可疑值得引起警觉,尤其是假如这段指令之前不存在取得命令行关于执行的参数选项,又没有要求用户交互性输入继续进行的操作指令时,就可以有把握地认为这是一个病毒或恶意破坏的程序。

  启发式杀毒代表着未来反病毒技术发展的必然趋势,具备某种人工智能特点的反毒技术,向我们展示了一种通用的、不需升级(较省需要升级或不依赖于升级)的病毒检测技术和产品的可能性。由于诸多传统技术无法企及的强大优势,必将得到普遍的应用和迅速的发展。纯粹的启发式代码分析技术的应用(不借助任何事先的对于被测目标病毒样本的研究和了解),已能达到80%以上的病毒检出率, 而其误报率极易控制在0.1%之下,这对于仅仅使用传统的基于对已知病毒的研究而抽取“特征字串”的特征扫描技术的查毒软件来说,是不可想象的,一次质的飞跃。在新病毒,新变种层出不穷,病毒数量不断激增的今天,这种新技术的产生和应用更具有特殊的重要意义。

转载于:https://www.cnblogs.com/lify0407/archive/2007/08/16/859010.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gb酱油和gbt酱油哪个好_都是酱油,生抽好还是味极鲜好?老板:两者差别很大,别买错了...

导读:都是酱油,生抽好还是味极鲜好?老板:两者差别很大,别买错了一道美食的完成不只是依赖掌厨的高超技艺,还与炒制的锅具、所用的调料等有关。其中最重要的就是调料,有了调料的辅助,…

C#连接基于Java开发IM——Openfire

Openfire简介 Openfire 是开源的、基于可拓展通讯和表示协议(XMPP)、采用Java编程语言开发的实时协作服务器。Openfire的效率很高,单台服务器可支持上万并发用户。   Server和Client端的通信都用xml文档的形式进行通信。 但是Openfire是Java语言写的,对…

数字万用表的使用

参考:连3岁小孩子都能看懂的万用表使用方法 地址:https://www.bilibili.com/video/BV1Gx411z7x2?p1&vd_sourcecc0e43b449de7e8663ca1f89dd5fea7d 目录万用表外观测量电阻测量通断/二极管测量电容测量温度测量电流测量电压测量三极管万用表外观 测量…

程序员讨论 《黑客帝国》 (三) 情感

人总会与人比较,找出自己拥有而别人没有的东西,从而建立起自信心。早期机器就已经在记忆和运算能力上超越人类,于是人类嘲笑机器没有智慧,突然有一天机器出现了智慧,能解决复杂问题,学会“骗人”了。人类傻…

在GridView开头插入自动编号的方法

网上看了很多方法,发现都是照抄别人,而且,都是把第一列替换掉了,往往不是我们的理想结果。经过本人的实践,下面方法觉得更好用一些。就是不知道数据量过大时,效率怎么样,不过既然能用&#xff0…

python数据整理 高一_关于Python爬虫的最全知识梳理,项目经理花了三天总结出来的经验...

作爲零基础小白,大体上可分爲三个阶段去完成,第一阶段是入门,掌握必备基础知识,比如Python基础、网络央求的基本原理等,第二阶段是模仿,跟着别人的爬虫代码学,弄懂每一行代码,熟习主…

GNS3中不同型号路由器支持的模块表

Dynamips 支持的模块C7200 开始Slot 0:C7200-IO-FE <------> 支持1 个Fastethernet 接口C7200-IO-2FE <------> 支持2 个Fastethernet 接口(DynamipsGUI 2.3 里面没有这个选项,想用只有自己添加了)C7200-IO-GE-E <------> 插这个卡以后会同时出现2 个端口,Et…

南京:第三届软博会“外包”将唱主角

南京&#xff1a;第三届软博会“外包”将唱主角 新华网江苏频道2007-08-17 09:10:31 来源: 本网综合 据《江南时报》报道&#xff0c;再过半个月&#xff0c;名列“中国十大知名展会品牌”之一的南京“软博会”——第三届中国&#xff08;南京&#xff09;国际软件产品博览会将…

vue鼠标右键自定义菜单_vue-右键菜单功能

[TOC]>[success] # :-: vue-右键菜单功能[在线demo点击我](https://xunleif2e.github.io/vue-context-menu/demo/dist/#/)项目中有时候会有右键菜单的需求&#xff0c;所以在github找了一个[右键菜单](https://github.com/xunleif2e/vue-context-menu)的插件&#xff0c;使用…

Zookeeper:fsync超时导致实例异常

一、问题描述 2019-02-19 08:44左右&#xff0c;实时计算服务重启&#xff0c;报错显示找不到zk集群的leader节点&#xff0c;同时ZooKeeper集群有告警显示连接超时&#xff1a; 指标[连接耗时(ms)18221]符合告警规则[连接耗时(ms)>3000] 二、排查过程 查看当前集群状态&…

断言(assert)的用法

参考&#xff1a;https://www.runoob.com/w3cnote/c-assert.html 目录作用总结与注意事项Demo作用 assert 是个宏&#xff0c;并且作用并非"报错"。 assert() 的用法像是一种"契约式编程"&#xff0c;程序满足我的假设条件&#xff0c;才能正常良好的运作…

oracle 变量

插入 日期时间 循环插入 declaretotal date: trunc(sysdate-1) ;beginfor i_count in 1..10000 LOOPinsert into DQ_DATE(date_time) values ( total );total : total 1/24;end loop; end; 转载于:https://www.cnblogs.com/kingxiaozi/p/3790327.html

马云语录,非常值得一看(转)

来源:计算机网1999至今 在杭州设立研究开发中心&#xff0c;以香港为总部&#xff0c;创办阿里巴巴网站(Alibaba.com) 孙正义跟我有同一个观点&#xff0c;一个方案是一流的Idea加三流的实施&#xff1b;另外一个方案&#xff0c;一流的实施&#xff0c;三流的Idea&#xff0c;…

keepalived mysql双主架构图_基于keepalived Mysql双主热备配置

基于keepalived双主热备:一.环境:OS:CentOS 6.5 X64DB Version:Percona Mysql 5.7.15-9-log路径:/app/mysql57数据文件路径:/data/mysql57/dataDB1:192.168.213.4DB2:192.168.213.5二.安装keepalived包(两台主机都需操作)1.下载keepalived包cd /usr/local/toolswget http://www…

centos7 docker安装和使用_入门教程

centos7 docker安装和使用_入门教程 原文:centos7 docker安装和使用_入门教程说明&#xff1a;本文也是参考互联网上的文章写的&#xff0c;感谢相关作者的贡献。 操作系统 64位CentOS Linux release 7.2.1511 (Core) 配置好IP&#xff1a;192.168.1.160 修改yum源 目的是提升对…

公钥、私钥、数字签名和数字证书

参考:公钥、私钥、数字签名和数字证书的概念及解密 地址:https://blog.csdn.net/oscar999/article/details/123489420 作者:oscar999 目录 概念解析https 的非对称加密和对称加密如何产生密钥和证书使用keytool 产生公私钥到一个密钥库文件中从密钥库文件导出证书openssl 将…

curl命令具体解释

对于windows用户假设用Cygwin模拟unix环境的话&#xff0c;里面没有带curl命令&#xff0c;要自己装&#xff0c;所以建议用Gow来模拟&#xff0c;它已经自带了curl工具&#xff0c;安装后直接在cmd环境中用curl命令就可&#xff0c;由于路径已经自己主动给你配置好了。 linux …

[转] SQL2000 关于 Java JDBC 驱动的安装和设定

1、首先要记得sql2000 要打上sp3以上的补丁.(建议用sp4)2、装上SQL Server 2000 Driver for JDBC Service Pack 3下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyId07287B11-0502-461A-B138-2AA54BFDC03A&displaylangen3、安装完SQL Server 2000 Driver…

wxpython 可视化开发pdf_MicroPython for the Internet of Things.pdf

标签&#xff1a;MicroPythonMicroPythonPythonPythonIoTiot是Internet Of Things的缩写&#xff0c;字面翻译是“物体组成的因特网”&#xff0c;准确的翻译应该为“物联网”。物联网(Internet Of Things)又称传感网&#xff0c;简要讲就是互联网从人向物的延伸。“物联网”(I…

PAT A1149 Dangerous Goods Packaging (25 分)——set查找

When shipping goods with containers, we have to be careful not to pack some incompatible goods into the same container, or we might get ourselves in serious trouble. For example, oxidizing agent &#xff08;氧化剂&#xff09; must not be packed with flamma…