免杀入门学习---------2019.8.27

写一个啃书记录,写一下知识点和自己的理解。 peace!
(主要是图书馆借的书不能圈圈画画,我也不想动笔,写一下博客挺好的。)

这篇随笔的大部分内容来自《黑客免杀攻防》

第一章说的免杀的历史,点了一下免杀和Rootkit的区别。

Rootkit的词条介绍

免杀入门学习---------2019.8.27_第1张图片

当然,一个菜鸟怎么会理解呢,只能默默地记一下,接受了。

第二章 免杀基础知识
罗列一下个人觉得比较重要的点:

1.基于文件扫描的反病毒技术

这类反病毒技术大概分为三种:“第一代扫描技术”、“第二代扫描技术”、“算法扫描技术”

1.1 第一代扫描技术

	1.1.1 字符串扫描技术
	这是超早期的反病毒技术,也是大多数学过编程的菜鸟(比如我)觉得很有效的技术。
	就是拿一个病毒特征码的字典来作为样本,对一个文件扫描的时候,逐个遍历它,
	看是否存在类似的特征码,如果存在则认为这是一个病毒文件。否则,不是。
	1.1.2 通配符扫描技术
	这个大概就是字符串扫描技术的一个进阶版。
	字符串的问题在于它得全匹配才能认定这个文件是病毒,如果病毒文件稍微改一下特征码就可以
	实现绕过。
	所以通配符就出现了。比如在DOS命令里的“ * ”代表任意长度、任意字符。(就跟我们学的正则
	表达式差不多意思)

1.2 第二代扫描技术

	第二代扫描技术很重视检测的精准度。
	
	1.2.1 智能扫描法
		忽略文件中类似NOP这种无意义的命令,替代掉多于的格式字符。

	1.2.2 近似精确识别法
		比较有代表性的是“多套特征码”、“校验和”。

	1.2.3 骨架扫描法
		由卡巴斯基(Kaapersky)公司发明,在检测宏病毒时期很有用
		既不用特征码,也不用校验和,而是逐行解析宏语句并将所欲非必要字符串丢弃,只剩下
		代码的骨架,同过对代码骨架的分析,从而达到反毒效果。

	1.2.4 精确识别法
		作者一笔带过了,大概也不是这个章节该了解的章节。而且这个命名就很宽泛的感觉,后面
		应该可以真正了解到。

基于内存扫描的反病毒技术
基于行为监控的反病毒技术
基于新型技术的反病毒技术

以上三个都是一些泛的概念陈述,而且从名字也能大概知道这技术要干嘛,在哪里干
就没有什么记录的必要了,毕竟只是个随笔。写写自己一天的学习情况,把脑子活跃起来,
防抑郁。

PE文件初体验
这大概是整章里面最比较有趣实用的一个知识点了,一个轻敲PE大门的砖头。

在windows系统中,只要是可以以二进制形式被系统加载执行的文件都是PE文件。PE是Portable 
Executable的缩写它是win32环境自带的可执行文件格式。win64和win32只是寻址的位数不同,所以
这应该不影响对PE的理解。

pe文件结构
由五部分组成(个人觉得应该是四部分,区段表里面包含着区段)
DOS文件头、DOS加载模块、PE文件头、区段表和区段
如图下所示
![PE文件结构](https://img-blog.csdnimg.cn/2019082717074077.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2luc19EaWdnZXI=,size_16,color_FFFFFF,t_70)
en、、、图片上传了但是看不见。可以随时百度看一下,或者看书P16

免杀原理
免杀原理最基本的思想就是破坏特征,这个特征有可能是特征码,也有可能是行为特征,
只要破坏了病毒和木马所固有的特征,并保证其原有功能没有改变,一次免杀就完成了
(抄书里面的一个介绍,写得太简洁明了,能抄就抄)

1.1文件免杀
	
	1.1.1改特征码免杀原理
		比如说:某个木马里面有“不要你觉得,要我觉得”这段字符串,那么如果我们把它改了,中间
		添油加醋或者偷斤少量,那反病毒程序就识别不了。这就是一个改特征码免杀的例子,当然,
		改完之后的木马要功能正常。

	1.1.2花指令免杀原理
		花指令其实就是一段毫无意义的指令,也可以称为垃圾指令。她对程序的执行结果没有影响,
		但是可以影响反病毒程序对她的识别(说得有点过泛了,但是大概的意思是这样子)
	
	1.2.3 加壳免杀原理
		软件加壳可以称为软件加密或者软件压缩。但是目的不一样。
		(正在学逆向的我有一点概念,对我来说很容易接受)
		加壳就相当于对这个文件套一个保护罩,只要它没被剥开,反病毒程序就不知带它里面装的是
		什么。

	1.2.4 内存免杀原理
		内存是数据进入CPU之前的最后一个可控的物理存储设备。前面说的加壳免杀就会在这里失效,
		因为CPU读不懂加壳后的可执行代码。

	1.2.5 行为免杀原理
		原理如名字一样好理解。
		木马和病毒这些文件都会执行一些很敏感的操作,以达到制作这个木马或病毒的目的。
		难搞。

工具脱壳介绍
很简洁的介绍了几个用来脱壳的软件:upx、PEID(这个比较常见)

壳的分类

1.压缩壳
	主要目的是压缩应用程序的体积。比如UPX
2.加密壳
	主要目的是保护原程序不被破坏,一般经过加密壳处理的应用程序体积会增加。
3.虚拟机保护壳
	它的技术关键在于实现了一个软件版的CPU,被加密的可执行代码已经不再遵循Intel制定的OPcode
	标准了,而是执行由虚拟机作者本身制定的非公开的动态的CPU指令编码解码标准,我们通常称之为
	Textcode。(抄的,看得有点迷糊。)
	主要我一直在想,用有虚拟机保护壳如何在内存里面解码,,,突然发现自己偏离了想法。
	我们的本意是绕过反病毒程序的识别,而虚拟机保护壳在作者没有公开Textcode的情况下,反病毒
	程序就无法识别文件了。完美。

cool,一个比较充实的下午。

你可能感兴趣的:(随笔,免杀,菜鸟,学习笔记)