内容简介
国内部关于黑客免杀技术的专著,旨在为反病毒工程师剖析各种恶意软件和应对各种安全威胁提供全面指导。不仅从攻击者(黑客)的视角揭示了黑客免杀技术的常用方法、常用技术和思想原理,还从防御者(反病毒工程师)的视角深入讲解了遏制免杀技术的具体方法策略。从纯技术的角度讲,本书不仅详细讲解了免杀技术的各种细节和方法,还详细讲解了PE文件、逆向工程、C++壳的编写、免杀壳的打造、脱壳、Rootkit等安全技术的细节。
全书共20章,分为三大部分:基础篇(第1~6章)详细介绍了黑客免杀技术的初级技巧,包括查找(修改)特征码、常见特征码绕过技巧、壳在免杀中的应用、花指令和其他免杀基础知识;篇(第7~16章)深入讲解了PE文件、逆向工程、C++壳的编写、免杀壳的打造、脱壳、Rootkit等常用安全技术的原理和细节,以及黑客免杀技术是如何应用它们的,为反病毒工程师应对各种恶意软件提供了原理性指导;扩展篇(第17~20章)为遏制黑客免杀技术提供了思路和具体的方案。
目录
目 录
前言
基础篇 初级免杀技术
第1章 变脸 2
1.1 为何变脸 2
1.2 何为变脸 3
1.3 免杀的发展史 3
1.4 免杀技术的简单原理 4
1.5 免杀与其他技术的区别 5
1.5.1 免杀不是Rootkit技术 5
1.5.2 免杀不是加密解密技术 5
1.6 小结 6
第2章 免杀基础知识 7
2.1 如何开始免杀 7
2.2 反病毒软件原理与反病毒技术介绍 8
2.2.1 反病毒软件的工作原理 8
2.2.2 基于文件扫描的反病毒技术 9
2.2.3 基于内存扫描的反病毒技术 12
2.2.4 基于行为监控的反病毒技术 12
2.2.5 基于新兴技术的反病毒技术 12
2.2.6 反病毒技术前沿 14
2.2.7 反病毒技术展望 14
2.3 了解PE文件 15
2.3.1 什么是PE文件 15
2.3.2 PE文件的结构 16
2.4 免杀原理 17
2.4.1 文件免杀原理 17
2.4.2 内存免杀原理 20
2.4.3 行为免杀原理 21
2.5 工具脱壳技巧 21
2.5.1 壳的分类 22
2.5.2 免杀与脱壳是什么关系 23
2.5.3 使用专用脱壳工具脱壳 24
2.5.4 使用通用脱壳工具脱壳 25
2.6 小结 26
第3章 免杀与特征码 27
3.1 特征码免杀技术 27
3.1.1 理想状态下的免杀 27
3.1.2 由脚本木马免杀理解特征码 28
3.2 特征码定位原理 29
3.2.1 特征码逐块填充定位原理 29
3.2.2 特征码逐块暴露定位原理 31
3.2.3 特征码混合定位原理 34
3.3 脚本木马定位特征码 35
3.4 MyCCL查找文件特征码 39
3.4.1 MyCCL的典型应用 39
3.4.2 针对MyCCL的一点思考 41
3.5 MyCCL查找内存特征码 43
3.6 特征码修改方法 44
3.6.1 简单的特征码修改 44
3.6.2 特征码修改进阶 45
3.7 小结 50
第4章 其他免杀技术 51
4.1 修改入口点免杀 51
4.2 使用VMProtect加密 54
4.3 Overlay附加数据的处理及应用 54
4.4 驱动程序免杀修改技巧 55
4.4.1 驱动程序的常见免杀方法 55
4.4.2 驱动程序的手工免杀思路 56
4.5 补丁在免杀中的应用 57
4.6 PE文件进阶介绍 59
4.6.1 PE文件格式 60
4.6.2 虚拟内存的简单介绍 62
4.6.3 PE文件的内存映射 63
4.7 网页木马的免杀 66
4.7.1 脚本木马免杀 66
4.7.2 网页挂马的免杀 77
4.8 小结 78
第5章 花指令与免杀 80
5.1 什么是花指令 80
5.2 脚本木马的花指令应用 81
5.3 花指令的根基—汇编语言 83
5.3.1 认识汇编 83
5.3.2 通过反汇编添加任意功能 85
5.4 花指令入门 88
5.5 花指令在免杀领域的应用 91
5.5.1 花指令的应用技巧 91
5.5.2 花指令的修改技巧简介 91
5.5.3 空白区域寻找与加空白区段 92
5.6 花指令的应用 94
5.6.1 花指令的提取与快速应用 94
5.6.2 SEH异常的应用 96
5.7 小结 97
第6章 壳在免杀中的应用 98
6.1 壳的基础知识 98
6.2 壳在免杀领域的应用 99
6.2.1 加壳的免杀原理 100
6.2.2 FreeRes多重加壳 100
6.3 壳的修改技巧 101
6.3.1 壳的初级修改 101
6.3.2 制作通用补丁 102
6.4 小结 107
篇 免杀技术进阶
第7章 PE文件格式详解 110
7.1 MS-DOS头 111
7.1.1 重要字段 112
7.1.2 其他字段 112
7.2 PE文件头 113
7.2.1 Signature字段 113
7.2.2 IMAGE_FILE_HEADER结构 113
7.2.3 IMAGE_OPTIONAL_HEADER结构(x86/x64) 115
7.2.4 数据目录表 118
7.3 区段表 119
7.3.1 IMAGE_SECTION_HEADER结构 119
7.3.2 区段名功能约定 121
7.3.3 区段
摘要与插图
前 言为什么要写这本书
计算机安全领域且规模的博弈莫过于病毒与反病毒的博弈,这也是计算机安全领域的硝烟燃起之处。然而,我们当中的有些人可能并不知晓黑客免杀技术现今已经成为反病毒领域中的主要破坏力量,而究其原因,也许是由此技术带来的大规模病毒木马泛滥与黑客免杀技术本身的隐蔽性所导致的。
但是很幸运,您手中的这本书就是迄今为止第一本详细介绍免杀技术的图书,您和我都应为此而感到庆幸。
2008年2月,我应邀与《黑客X档案》杂志的主编一起策划了《黑客免杀入门》的编写工作。《黑客免杀入门》就是本书的雏形,那真的是一个很好的开始。当时还在上大一的我为了使这本书能够快速上市,几乎牺牲了所有课余时间。在经过半年的艰苦写作之后,《黑客免杀入门》终于在2008年10月正式上市,并在半年内创下了5000册销量的佳绩。
但是由于种种原因,使得我对自己的第一本书并不满意,因为要考虑到初学者的接受力与知识储备,因此并未将黑客免杀技术的真正意义体现在那本书里,再加之免杀技术在第一本书发行后的几年里发生了很大变化,因此使我有了编写第二本书的动力。
如何阅读本书
本书详细描述了Windows系统下黑客免杀的所有技术细节,讲解了为什么病毒、木马在经过免杀处理后就会被反病毒软件误认为是正常的程序。除此之外,本书还详细讲述了黑客与反病毒工程师都应该掌握的基础知识,包括PE文件结构、软件逆向工程、壳的原理及编写思路、Rootkit等等。在,笔者总结了一些遏制免杀技术的方法以及应对策略,相信对于很多反病毒工程师来讲都会有所启发。
本书共分为基础篇、篇与扩展篇三大部分,分别面向的是零基础读者、读者与反病毒工程师,要掌握这三部分,所需的基础知识如下:
基础篇 其中所有内容几乎都未过深涉及任何计算机语言,因此只要能熟练操作Windows系统,并对硬件有基本的常识性认识,即可顺利阅读这部分内容,除此之外不再需要读者有任何基础。
篇 要求读者对于C/C++、汇编语言有基本的了解,并且要有一定的Windows程序开发经验,除此之外也需要读者对操作系统的结构有所了解。
扩展篇 要求读者熟悉黑客免杀的技术细节,并初步掌握PE文件结构、软件逆向工程、壳的原理及编写思路、Rootkit等高端技术。
本书的主要内容
基础篇 包括第1章~第6章,这部分由第1章“变脸”开篇,以类比的形式将黑客免杀技术的特点向大家娓娓道来,随后通过对免杀基础知识的介绍,可以迅速让初级读者明白何为黑客免杀技术。
待初级读者理解了何为免杀技术后,随后的几个章节则以比较简单易懂的语言向大家描述与黑客免杀技术密切相关的一些技术,例如特征码、花指令、壳等等。
篇 包括第7章~第16章,这部分所讲的内容都是黑客们得以展开较高层面免杀操作的技术基础,同时也是反病毒工程师与大部分软件安全行业从业者必备的技术基础。
本篇详细地阐述了Windows下的PE文件结构,并着重讲解了软件逆向工程的技术原理与分析思路。除此之外,第11章还在纯C++语言的角度描述了一个壳的编写,这在国内来说尚属次。在本篇的,还详细介绍了部分Rootkit技术的实现原理与当前黑客免杀技术的沿思想。
扩展篇 包括第17章~第20章,这部分主要针对当下的免杀技巧及黑客常用的免杀手法提出了一些反制措施,分别对反特征码定位、遏制Rootkit展开了讨论,并在对时下的反病毒产品简略地给出了一些改进建议。
这正是那酝酿三年的2.0版
现在您拿在手里的这本书是以《黑客免杀入门》的部分内容为基础