- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
随着黑客圈子逐渐向商业化靠拢,以及杀毒厂商间的互相竞争愈演愈烈,导致新出现的免费且好用的木马越来越少,除此之外,木马的生存期也在逐渐缩短!而另一方面,新出现的攻击手法越来越少,使得学习黑客技术的我们不得不考虑怎样摆脱或改善现有环境。
因此,免杀技术逐渐火热起来,而作为一个黑客技术初学者,掌握免杀技术更是迫在眉睫!
这篇文章就带领你由杀毒软件原理开始,逐步砸实基础,从而晋升为免杀高手,为以后的黑客生涯铺平道路。
对于免杀,也许大家或多或少都有些了解,但是大家对杀毒软件又有多少了解呢?也许正因为是你对杀毒软件了解不足,所以才造成一些看似比较奇怪的问题,例如无法精确的定位出特征码,或者每次定位的特征码都不一样等等。
如果我们对杀毒软件若能有一个大体的了解,就会使一些问题迎刃而解,从而做到更加有效率的进行免杀。
一、杀毒软件原理基础
一个杀毒软件的构造的复杂程度要远远高于木马或病毒,所以其原理也比较复杂。而且鉴于现在木马病毒越来越向系统底层发展,杀毒软件的编译技术也在不断向系统底层靠近。例如现在的“主动防御”技术,就是应用 RING0 层的编译技巧。这里我简单为大家介绍一下基本构成。
一个杀毒软件一般由扫描器、病毒库与虚拟机组成,并由主程序将他们结为一体,如图 1。扫描器是杀毒软件的核心,用于发现病毒,一个杀毒软件的杀毒效果好坏就直接取决于它的扫描器编译技术与算法是否先进,而且杀毒软件不同的功能往往对应着不同的扫描器,也就是说,大多数杀毒软件都是由多个扫描器组成的。而病毒库存储的特征码形式则取决于扫描器采用哪种扫描技术。它里面存储着很多病毒所具有的独一无二的特征字符,我们称之为“特征码”。特征码总的分来只有两个,文件特征码与内存特征码。文件特征码存在于一些未执行的文件里,例如 EXE 文件、RMVB 文件、jpg 文件甚至是 txt 文件中都有可能存在文件特征码,也都有可能被查杀。而内存特征码仅仅存在于内存中已运行的应用程序。而虚拟机则是最近引进的概念,它可以使病毒在一个由杀毒软件构建的虚拟环境中执行,与现实的 CPU、硬盘等完全隔离,从而可以更加深入的检测文件的安全性。
简单的说,杀毒软件的原理就是匹配特征码。当扫描得到一个文件时,杀毒软件会检测这个文件里是否包含病毒库里所包含的特征码,如果有,则报毒病查杀,如果没有,纵然这个文件确实是一个病毒,它也会把它当作正常文件来看待。
二、基于文件扫描的杀毒技术
基于文件的杀毒技术可以分为“第一代扫描技术”、“第二代扫描技术”与“算法扫描”这三种方法,对于免杀爱好者来说,要对每一种方法烂熟于心,才能成为高手!但做为一个初学 者来说了解一下即可。这里我们就简单介绍一下其中两种种方法,详细的技术原理如果各位得这有兴趣的话可以自己研究。
1、通配符扫描技术
通配符扫描技术属于是第一代扫描技术的一个分支,对于“通配符”,可以理解为具有一定意义的符号,例如 DOS 命令里的*号就是任意长度的任意字符的意思,而且通配符在不同的领域也里可以代表不同的意思。
现在杀毒软件中简单的扫描器常常支持通配符,因为鉴于字符串扫描技术的执行速度与特征
码长度限制等问题,使得其逐渐退出历史舞台,取而代之的是通配符扫描技术,通配符扫描技术以同样简单的原理与技术却实现了更为强大的功能。
扫描器中的通配符一般用于跳过某些字节或字节范围,以至于现在有些扫描器还支持正则表达式!
下面我们通过一个例子来讲解通配符扫描技术的原理。
例如我们的病毒库中有这样一段特征码:
0400 B801 020E 07BB ??02 %3 33C9 8BD1 419C
上面的特征码可以解释为:
1、尝试匹配 04,如果找到则继续,否则跳出。2、尝试上一匹配目标后匹配 00,如果找到则继续,否则跳出。
3、尝试上一匹配目标后匹配 B8,如果找到则继续,否则跳出。4、尝试上一匹配目标后匹配 01,如果找到则继续,否则跳出。5、尝试上一匹配目标后匹配 02,如果找到则继续,否则跳出。6、尝试上一匹配目标后匹配 0E,如果找到则继续,否则跳出。7、尝试上一匹配目标后匹配 07,如果找到则继续,否则跳出。8、尝试上一匹配目标后匹配 BB,如果找到则继续,否则跳出。9、忽略此字节。
10、尝试上一匹配目标后匹配 02,如果找到则继续,否则跳出。
11、在接下来的3个位置(字节)中尝试匹配 33,如果找到则继续,否则跳出。
12、尝试上一匹配目标后匹配 C9,如果找到则继续,否则跳出。
13、尝试上一匹配目标后匹配 8B,如果找到则继续,否则跳出。
14、尝试上一匹配目标后匹配 D1,如果找到则继续,否则跳出。
15、尝试上一匹配目标后匹配 41,如果找到则继续,否则跳出。
16、尝试上一匹配目标后匹配 9C,如果找到则继续,否则跳出。
这种扫描技术通常支持半字节
文档评论(0)