书籍详情
《黑客免杀攻防》[47M]百度网盘|亲测有效|pdf下载
  • 黑客免杀攻防

  • 出版社:机械工业出版社京东自营官方旗舰店
  • 出版时间:2013-09
  • 热度:11414
  • 上架时间:2024-06-30 09:38:03
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

编辑推荐

  

  全方位揭示黑客免杀技术的常用方法、技术细节和思想原理,为反病毒工程师剖析恶意软件和遏制免杀技术提供具体方法和应对策略
  从攻与防的双重角度详细讲解PE文件知识、逆向工程、C++壳的编写、免杀壳的打造、脱壳技术、Rootkit等安全技术的细节,为反病毒工程师提供技术指导

海报:

内容简介

  《黑客免杀攻防》国内首部关于黑客免杀技术的专著,旨在为反病毒工程师剖析各种恶意软件和应对各种安全威胁提供全面指导。不仅从攻击者(黑客)的视角全方位揭示了黑客免杀技术的常用方法、常用技术和思想原理,还从防御者(反病毒工程师)的视角深入讲解了遏制免杀技术的具体方法策略。从纯技术的角度讲,本书不仅详细讲解了免杀技术的各种细节和方法,还详细讲解了PE文件、逆向工程、C++壳的编写、免杀壳的打造、脱壳、Rootkit等安全技术的细节。
  《黑客免杀攻防》共20章,分为三大部分:基础篇(第1~6章)详细介绍了黑客免杀技术的初级技巧,包括查找(修改)特征码、常见特征码绕过技巧、壳在免杀中的应用、花指令和其他免杀基础知识;高级篇(第7~16章)深入讲解了PE文件、逆向工程、C++壳的编写、免杀壳的打造、脱壳、Rootkit等常用安全技术的原理和细节,以及黑客免杀技术是如何应用它们的,为反病毒工程师应对各种恶意软件提供了原理性指导;扩展篇(第17~20章)为遏制黑客免杀技术提供了思路和具体的方案。

作者简介

  任晓珲,资深安全技术工程师,华章“信息安全技术丛书”专家顾问,致力于免杀技术和反病毒技术的实践。对软件安全、逆向工程、Rootkit、加壳与脱壳等技术有较深入的研究和理解,积累了丰富的经验。北京蓝森科技有限公司创始人,黑客反病毒论坛创始人,邪恶八进制团队成员,资深培训讲师,国内知名信息安全培训品牌15PB的创始人。目前专注于计算机安全的中高端培训。

目录

前言
基础篇 初级免杀技术

第1章 变脸
1.1 为何变脸
1.2 何为变脸
1.3 免杀的发展史
1.4 免杀技术的简单原理
1.5 免杀与其他技术的区别
1.5.1 免杀不是Rootkit技术
1.5.2 免杀不是加密解密技术
1.6 小结

第2章 免杀基础知识
2.1 如何开始免杀
2.2 反病毒软件原理与反病毒技术介绍
2.2.1 反病毒软件的工作原理
2.2.2 基于文件扫描的反病毒技术
2.2.3 基于内存扫描的反病毒技术
2.2.4 基于行为监控的反病毒技术
2.2.5 基于新兴技术的反病毒技术
2.2.6 反病毒技术前沿
2.2.7 反病毒技术展望
2.3 了解PE文件
2.3.1 什么是PE文件
2.3.2 PE文件的结构
2.4 免杀原理
2.4.1 文件免杀原理
2.4.2 内存免杀原理
2.4.3 行为免杀原理
2.5 工具脱壳技巧
2.5.1 壳的分类
2.5.2 免杀与脱壳是什么关系
2.5.3 使用专用脱壳工具脱壳
2.5.4 使用通用脱壳工具脱壳
2.6 小结

第3章 免杀与特征码
3.1 特征码免杀技术
3.1.1 理想状态下的免杀
3.1.2 由脚本木马免杀理解特征码
3.2 特征码定位原理
3.2.1 特征码逐块填充定位原理
3.2.2 特征码逐块暴露定位原理
3.2.3 特征码混合定位原理
3.3 脚本木马定位特征码
3.4 MyCCL查找文件特征码
3.4.1 MyCCL的典型应用
3.4.2 针对MyCCL的一点思考
3.5 MyCCL查找内存特征码
3.6 特征码修改方法
3.6.1 简单的特征码修改
3.6.2 特征码修改进阶
3.7 小结

第4章 其他免杀技术
4.1 修改入口点免杀
4.2 使用VMProtect加密
4.3 Overlay附加数据的处理及应用
4.4 驱动程序免杀修改技巧
4.4.1 驱动程序的常见免杀方法
4.4.2 驱动程序的手工免杀思路
4.5 补丁在免杀中的应用
4.6 PE文件进阶介绍
4.6.1 PE文件格式
4.6.2 虚拟内存的简单介绍
4.6.3 PE文件的内存映射
4.7 网页木马的免杀
4.7.1 脚本木马免杀
4.7.2 网页挂马的免杀
4.8 小结

第5章 花指令与免杀
5.1 什么是花指令
5.2 脚本木马的花指令应用
5.3 花指令的根基-汇编语言
5.3.1 认识汇编
5.3.2 通过反汇编添加任意功能
5.4 花指令入门
5.5 花指令在免杀领域的应用
5.5.1 花指令的应用技巧
5.5.2 花指令的修改技巧简介
5.5.3 空白区域寻找与加空白区段
5.6 花指令的高级应用
5.6.1 花指令的提取与快速应用
5.6.2 SEH异常的应用
5.7 小结

第6章 壳在免杀中的应用
6.1 壳的基础知识
6.2 壳在免杀领域的应用
6.2.1 加壳的免杀原理
6.2.2 FreeRes多重加壳
6.3 壳的修改技巧
6.3.1 壳的初级修改
6.3.2 制作通用补丁
6.4 小结
高级篇 免杀技术进阶

第7章 PE文件格式详解
7.1 MS-DOS头
7.1.1 重要字段
7.1.2 其他字段
7.2 PE文件头
7.2.1 Signature字段
7.2.2 IMAGE_FILE_HEADER结构
7.2.3 IMAGE_OPTIONAL_HEADER结构(x86/x64)
7.2.4 数据目录表
7.3 区段表
7.3.1 IMAGE_SECTION_HEADER结构
7.3.2 区段名功能约定
7.3.3 区段对齐详解
7.3.4 地址转换
7.4 导出表
7.4.1 IMAGE_EXPORT_DIRECTORY结构
7.4.2 识别导出表
7.5 导入表
7.5.1 IMAGE_IMPORT_DESCRIPTOR结构
7.5.2 识别导入表
7.6 资源
7.6.1 资源结构
7.6.2 识别资源
7.7 异常
7.8 安全
7.8.1 安全目录结构
7.8.2 识别安全结构
7.9 基址重定位
7.9.1 基址重定位表结构
7.9.2 识别基址重定位表
7.10 调试
7.11 特殊结构数据(版权)
7.12 全局指针
7.13 TLS
7.13.1 TLS的回调函数
7.13.2 TLS的结构(x86/x64)
7.13.3 识别TLS
7.14 载入配置(x86/x64)
7.15 绑定导入表
7.15.1 绑定导入表结构
7.15.2 识别绑定导入表
7.16 导入地址表
7.17 延迟加载表
7.17.1 延迟加载表结构
7.17.2 识别延迟加载表
7.18 COM描述符
7.19 小结

第8章 PE文件知识在免杀中的应用
8.1 PE文件与免杀思路
8.1.1 移动PE文件头位置免杀
8.1.2 导入表移动免杀
8.1.3 导出表移动免杀
8.2 PE文件与反启发式扫描
8.2.1 最后一个区段为代码段
8.2.2 可疑的区段头部属性
8.2.3 可疑的PE选项头的有效尺寸值
8.2.4 可疑的代码节名称
8.2.5 多个PE头部
8.2.6 导入表项存在可疑导入
8.3 一个稍显复杂的例子-隐藏导入表
8.3.1 操作原理与先决条件
8.3.2 修改PE文件
8.3.3 构造我们的反汇编代码
8.4 小结

第9章 软件逆向工程
9.1 准备工作
9.1.1 要准备的工具及基础知识
9.1.2 程序是从哪里开始运行的
9.2 一个简单的小例子
9.3 函数识别初探
9.4 if-else分支
9.4.1 以常量为判断条件的简单if-else分支
9.4.2 以变量为判断条件的简单if-else分支
9.4.3 以常量为判断条件的复杂if-else分支
9.4.4 以变量为判断条件的复杂if-else分支
9.4.5 识别三目运算符
9.5 循环分支
9.5.1 do-while循环
9.5.2 while循环
9.5.3 for循环
9.5.4 循环体的语句外提优化
9.6 switch-case分支
9.6.1 简单switch-case分支识别技巧
9.6.2 复杂分支的switch-case识别
9.6.3 switch-case分支结构与稀疏矩阵
9.6.4 switch-case分支结构与平衡二叉树
9.7 加法与减法的识别与优化原理
9.7.1 加法的识别与优化
9.7.2 减法的识别与优化
9.8 乘法与除法的识别与优化原理
9.8.1 乘法的位移优化
9.8.2 乘法的lea指令优化
9.8.3 除法与倒数相乘
9.8.4 倒数相乘与定点运算的配合
9.8.5 除法运算的识别与优化
9.8.6 取模运算的识别与优化
9.9 指针与数组
9.9.1 指针与数组的渊源
9.9.2 数组的不同表达方式
9.10 数组、结构体与对象
9.10.1 数组与结构体
9.10.2 结构体与类
9.11 变量作用域的识别
9.12 识别构造与析构函数
9.12.1 快速识别出类
9.12.2 识别构造函数
9.12.3 识别析构函数
9.13 虚函数与纯虚函数的识别
9.13.1 识别简单的虚函数
9.13.2 识别较复杂的虚函数
9.14  正确识别类的继承关系
9.15 最后一役
9.15.1 MFC逆向初探
9.15.2 分析BypassUAC.exe
9.16 小结

第10章 源码级免杀
10.1 怎样定位产生特征的源代码
10.1.1 定位文件特征
10.1.2 定位行为特征
10.2 基于源码的特征修改
10.2.1 变换编译器与编译选项
10.2.2 添加垃圾代码
10.2.3 语法变换
10.2.4 添加汇编花指令
10.3 小结

第11章 详解C++壳的编写
11.1 了解壳的运行流程
11.2 设计一个纯C++编写的壳
11.2.1 用C++编写的壳应该是什么样的
11.2.2 编写过程中会遇到的问题
11.3 用C++写一个简单的壳
11.3.1 配置工程
11.3.2 编写Stub部分
11.3.3 编写加壳部分
11.3.4 编写界面部分
11.4 设计一个由C++编写的专业壳
11.4.1 为问题找到答案
11.4.2 设计专业壳的框架
11.4.3 如何设计Stub部分
11.4.4 如何设计加壳部分
11.4.5 需要注意的细节问题
11.5 怎样调试由C++编写的Stub部分
11.6 小结

第12章 黑客是怎样打造免杀壳的
12.1 免杀壳与加密壳的异同
12.2 导入表加密
12.3 代码混淆与代码乱序
12.4 附加驱动
12.5 小结

第13章 脱壳技术
13.1 寻找OEP
13.1.1 利用内存断点
13.1.2 利用堆栈平衡
13.1.3 利用编译语言特点
13.1.4 利用跨区段跳转
13.2 转储内存映像
13.3 重建导入表
13.3.1 导入表重建原理
13.3.2 使用ImportREC重建导入表
13.4 小结

第14章 Rootkit基础
14.1 构建一个Rootkit基础环境
14.1.1 构建开发环境
14.1.2 构建基于Visual Studio 2012的调试环境
14.1.3 构建基于WinDbg的调试环境
14.1.4 将Rootkit加载到系统
14.1.5 创建一个简单的驱动并调试
14.2 何为Ring0层
14.3 关键表
14.4 内存分页
14.4.1 地址转译
14.4.2 内存访问检查
14.4.3 Windows对重要表的保护
14.5 内存描述符表
14.6 中断描述符表(IDT)
14.7 系统服务调度表
14.8 控制寄存器
14.8.1 利用CR0禁用内存保护机制
14.8.2 其他控制寄存器
14.9 小结

第15章 Rootkit在免杀中的应用
15.1 用户模式Rootkit
15.1.1 DLL远程注入技巧
15.1.2 内联钩子
15.1.3 导入地址表钩子
15.1.4 一个保护文件不被删除的例子
15.2 内核编程基础
15.2.1 内核编程环境与用户层编程环境的异同
15.2.2 如何选择Windows驱动开发模型
15.2.3 驱动设备与请求处理
15.2.4 内核编程中的数据类型
15.2.5 函数调用
15.2.6 Windows内核编程的特点
15.3 内核模式Rootkit
15.3.1 SYSENTER钩子
15.3.2 SSDT钩子
15.3.3 内联钩子
15.3.4 IRP钩子
15.3.5 LADDR钩子
15.3.6 IDT钩子
15.3.7 IOAPIC钩子
15.4 小结

第16章 免杀技术前沿
16.1 免杀技术的发展趋势
16.2 免杀前沿之突破主动防御
16.2.1 “移花接木”之屏幕截图突破主动防御
16.2.2 “暗渡陈仓”之利用可信进程突破主动防御
16.2.3 “釜底抽薪”之利用系统进程突破主动防御
16.2.4 “顺手牵羊”之利用逻辑漏洞突破主动防御
16.2.5 “浑水摸鱼”之利用变形复制突破主动防御
16.2.6 “金蝉脱壳”之利用异同逃逸虚拟机
16.2.7 “借尸还魂”之利用替换文件突破主动防御
16.2.8 “借刀杀人”之利用调试接口突破主动防御
16.3 黑客免杀技术的展望
16.4 小结
扩展篇 遏制免杀技术初探

第17章 浅谈部分免杀技巧的遏制
17.1 盯紧PE文件
17.2 盯紧程序行为
17.3 小结

第18章 反特征码定位
18.1 释放干扰码
18.2 定位行为的判定
18.3 设定“靶特征码”
18.4 小结

第19章 遏制免杀与Anti Rootkit
19.1 适当的监控
19.2 基本检测逻辑
19.3 Rootkit检测方法初探
19.4 小结

第20章 浅谈反病毒产品的改进
20.1 云查杀与本地查杀紧密结合
20.2 注重感染型病毒木马的清除工作
20.3 精进启发式扫描解决效率问题
20.4 小结
附录A 80x86汇编基础知识

精彩书摘

  基础篇
  初级免杀技术
  简介:
  此部分详细讲解了黑客免杀技术的初级技巧,包括查找(修改)特征码、常见特征码绕过技巧、壳的简单利用,以及一些相关基础知识。
  如果您从未了解过免杀技术,或自认为对于免杀的了解还不够充分,那么建议您通读这部分内容。
  需要前置知识:
  熟悉Windows操作系统。
  理解计算机的基本概念,例如什么是CPU、内存、硬盘等。
  章节预览:
  第1章 变脸
  第2章 免杀基础知识
  第3章 免杀与特征码
  第4章 其他免杀技术
  第5章 花指令与免杀
  第6章 壳在免杀中的应用
  第1章 变  脸
  由尼古拉斯·凯奇主演的电影《变脸》想必大家并不陌生。通过整形手术,尼古拉斯·凯奇扮演的警探变身为歹徒,打入匪徒内部,而那名被假冒的歹徒也使用同样的手段混入了警署,扰乱了这名不幸警探的生活。就这样,原本十恶不赦的歹徒披着警探的“外衣”肆意满足着自己的窥探欲,并取得了重要的信息。
  1.1 为何变脸
  我们都不会承认自己是窥探狂,但是我想绝大部分人都不会否认自己偶尔会有窥探他人的想法,虽然在现实生活中并不容易做到。然而,在计算机领域中实施同样的行为则显然会容易许多。
  比如,众人皆知的后门与木马就是为了窥探并获取他人计算机中的信息而诞生的。但是,病毒与木马永远无法得到受害者的喜爱与杀毒软件的怜悯,在大多数情况下,它们会被无情地斩杀!当然我相信本书的读者也都希望如此。
  不过这可不是攻击者所希望看到的结果,他们希望自己的木马能顺利绕过杀毒软件与防火墙,在受害者的计算机中长期隐藏下去,并能在必要的时候向攻击者提供有用的信息。
  然而事实上并没有多少木马或后门能达到这个目的,例如各位读者都熟悉的灰鸽子木马,很显然它现在可以被任何杀毒软件发现并查杀,不过我们是否从此以后就不用再担心灰鸽子木马了呢?对于这个问题,攻击者们用他们制造的成百上千个灰鸽子木马变种给出了清晰的答复。
  很显然,我们的威胁依然存在!
  只要免杀技术在世界上存在一天,那么后门木马就不会消亡;免杀技术一日不消亡,木马病毒的变种就会源源不断地出现。
  不知各位读者想过没有,攻击者们是怎样制造出那么多的变种的呢?他们使用的是什么技术?有没有什么应对方案?
  这就要求我们以攻击者的角度来进行研究,这样才能更好地探求到答案。本章就以攻击者的视角开篇,为这3个问题找到满意的答案。
  1.2 何为变脸
  上一节我们用变脸形象地解释了免杀技术。不知各位读者此时是否了解了何为免杀?
  在国内,黑客免杀技术应该是这几年才浮出水面的,也就是说国内的免杀技术发展至今也不过六七年。对于一个技术的发展来说,特别是对于黑客这个边缘群体里的边缘技术来说,几年的发展时间是比较短的。
  因此给一个还未成体系的技术下定义显然是比较困难的,然而我们又需要这样一个定义,以便于对它有更清晰的了解。
  很明显,免杀,也就是反病毒(Anti Virus)、反间谍(Anti Spyware)的对立面,英文为Anti Anti- Virus(Virus AV)或by Pass AV。逐字翻译即为“反–反病毒”,我们可以翻译为“反杀毒技术”。单从汉语“免杀”的字面意思来理解,可以将其看作是一种能使病毒或木马免于被杀毒软件查杀的技术。
  笔者认为免杀技术属于信息安全领域中“病毒/木马技术”里的一个分支,它随着杀毒软件的出现而诞生,并且一定是出现在杀毒软件之后的。
  由此看来,免杀技术其实就是一种反杀毒技术。它除了使病毒木马免于被查杀外,还可以扩增病毒木马的功能,改变病毒木马的行为,甚至添加Rootkit、Anti Rootkit代码。
  然而即便如此,免杀技术也并非就是十恶不赦的,它并不总是被恶意攻击者所使用,也有用于“正途”的时候。例如,在软件保护所用的加密产品(比如壳)中,有一些会被杀毒软件误认为是木马或病毒;一些安全领域中使用的部分安全检测产品,也会被杀毒软件误杀。这时就需要使用免杀技术来应对这些不稳定因素。所以说,免杀仅仅是一项技术而已,它最终导致什么后果完全取决于使用它的人,就像冶炼、火药、核能与远程监控技术一样。
  1.3 免杀的发展史
  关于世界免杀技术的历史情况现在并无从考证,但从国内情况来讲它的起步可以说是非常晚的。以下是笔者在创作《黑客免杀入门》一书时调查后总结的一份列表,出版后被百度百科引用(但是引用内容在后期被植入了广告,请各位读者注意甄别)。
  1989年:第一款杀毒软件Mcafee诞生,标志着反病毒与反查杀时代的到来。
  1997年:国内出现了第一个可以自动变异的千面人病毒(Polymorphic/Mutation Virus)。自动变异就是病毒针对杀毒软件的免杀方法之一,但是与现在免杀手法的定义有出入。
  2002年7月31日:国内第一个真正意义上的变种病毒“中国黑客II”出现,它不但具有新的特征,还实现了“中国黑客”第一代所未实现的功能。可见这个变种也是病毒编写者自己制造的。
  2004年:在黑客圈子内部,免杀技术在这一年首次公开提出,由于当时还没有CLL等专用免杀工具,所以一般都使用WinHEX逐字节更改技术。
  2005年1月:大名鼎鼎的免杀工具CCL的软件作者tankaiha在杂志上发表了一篇文章,推广了CCL工具,从此国内黑客界才有了第一个专门用于免杀的工具。
  2005年的2~7月:通过各方面有意或无意的宣传,黑客爱好者们逐渐重视免杀技术,在一些黑客站点的木马专栏下,开始有越来越多的人讨论此技术,这也为以后木马免杀技术的火暴埋下根基。
  2005年8月:第一个可查的关于免杀的教学录像诞生,为大量黑客爱好者提供了一个有效的参考资料,成功地对免杀技术进行了第一次科普。
  2005年9月:免杀技术开始被越来越多的黑客技术爱好者知晓。
  由上面的信息可见,国内在1997年出现了第一个可以自动变异的千面人病毒,虽然自动变异也可以看作是针对杀毒软件的一种免杀方法,但是由于它与现在定义的免杀手法有出入,因此如果将国内免杀技术的起源定于1997年会显得比较牵强。
  2002年7月31日,国内第一个真正意义上的变种病毒“中国黑客II”的出现或可称为免杀技术的起源,因此我们暂且将国内免杀技术起源定在2002年7月。
  从国内免杀技术的发展过程来看,一直到2005年9月免杀技术才正式进入公众的视野。但是从国外的发展来看,20世纪80年代就已经出现了使用Rootkit反扫描技术的病毒,不过这属于一个源码级应用的例子。而国内的病毒或木马是什么时候开始使用Rootkit的呢?2003年还是2003年以后的某个日子?要知道国内各大论坛普遍出现系统内核利用的文章应该是从2007年~2008年才开始的。
  由此我们就不难发现,国内某些领域的落后可能是以年为单位计算的。但是我相信免杀技术或许是一个特例。当然,这仍需要我们共同的努力!
  1.4 免杀技术的简单原理
  在笔者最初接触免杀技术,使用MyCCL定位特征码的时候就有很多疑问,例如“特征码究竟是什么”、“特征码是怎么被定位出来的”,以及“除此之外就没有其他的了吗”……
  当然,后来我终于明白了这些看似简单的问题,并且很高兴能在这里分享出来。
  下面我们就先从一句话开始谈起,“免杀就是定位特征码”这句话相信一些读者可能听说过。不过笔者撰写本书的基本目标之一,就是想让读者知道这句话是错误的。
  然而,我们不得不承认免杀确实是从特征码开始的。原因很简单,因为杀毒软件也是从这里开始的,所以我们先要明白“特征码”是什么。
  所谓的“特征码”其实是从反病毒领域引进的一个词,意指相应病毒或木马所特有的一段二进制码。我们都知道,其实病毒与木马就是一个特殊的应用程序,鉴于其特殊性,它的文件结构与相应的二进制指令肯定是要与正常程序(比如正常的PE文件格式)是有所不同的。
  当反病毒公司的相关技术人员得到一个病毒样本时,他最重要的任务之一就是找出这个病毒的“特征码”。
  但是“特征码”究竟是从哪里来的呢?或者说相关技术人员是依靠什么找到特征码的呢?我们知道,一个正常的应用程序是不可能包含格式化所有硬盘的指令的,但是假如某个病毒包含这段“个性十足”的指令,那么我们将其对应的二进制码定位为特征码简直是再准确不过了。
  事实上我们不容易碰到这种具有鲜明个性的病毒,但在给病毒定位特征码时所应用的原理是大同小异的。
  不过,现实世界中的杀毒软件所用的特征码是异常复杂的,一般都是由数段特征片段加上一定的逻辑判断机制组合而成的。
  相比较而言,破坏这种复杂的特征码显然要简单许多,我们只需要有计划地向病毒或木马文件中分批填入无用的垃圾信息即可。如果被垃圾信息覆盖后文件不再会被杀毒软件所查杀,那么我们就可以判定覆盖区域内一定存在特征码片段。不管这种覆盖是否包括了全部特征码,只要是杀毒软件不再查杀,那么目的就达到了。
  当然,如果仔细思考一下,其实这里还有很多问题没有解决,例如填入垃圾信息后的木马是否仍可以运行、我们在填入时所用的算法是什么样的,等等。
  对于这些比较复杂的问题,在本书后面会有专门的章节介绍,此处提出这些问题会使大家在阅读本书时更有针对性。
  1.5 免杀与其他技术的区别
  正如前面所讲的,免杀是一门新兴技术,同时也是一门涉猎很广的技术,因此笔者觉得很有必要阐明它与其他相关技术的不同之处,以免读者产生混淆,或造成概念不清。
  1.5.1 免杀不是Rootkit技术
  诚然,免杀与Rootkit有许多相同之处,例如它们的最终目的都是隐藏自己不被其他程序发现。但是我们不能因此就说免杀就是Rootkit技术。
  我们从单词Rootkit中的kit就不难发现,其实Rootkit的本质是指一组非常直接的工具,但是免杀只是使用这组工具的方法之一。
  现在的免杀主要分为3种,其中的一种便是行为免杀,也就是通过控制病毒木马的行为来达到躲过杀毒软件主动防御检测的目的。而这种行为免杀所用到的处理技术之一就是通过Anti Rookit来使反病毒程序的Rootkit失效,从而不能有效地监测系统,达到一劳永逸的目的。当然,我们还可以通过对病毒或木马的调整来被动地达到行为免杀的效果。
  因此我们可以看到,Rootkit并不能代表免杀技术,它只是构成高级免杀技巧的组成部分。
  1.5.2 免杀不是加密解密技术
  有很多人认为免杀其实就是破解技术的一个分支,例如对于程序的修改、脱壳加壳、对程序的加密解密等,这些都是免杀与加密解密的相同之处。
  但是就两种技术所导致的行为来讲,它们主要存在以下不同:
  加密解密技术是针对某一个程序展开研究,而免杀技术在任何时候都是针对两个程序展开研究。
  加密解密技术是以某一程序为媒介所产生的技术对抗(例如程序保护者与破解者),免杀技术则是通过某一个程序对另外一个程序所产生的技术对抗(例如免杀的木马与杀毒软件)。
  除此之外,加密解密技术大多是在没有源代码的情况下进行的(称为无源工作环境),而源码级免杀则是指通过直接修改源代码的方式达到免杀目的,它是一种有源工作环境下的技术。
  1.6 小结
  免杀技术从诞生之初的修改源代码与特征码,到现在的利用Anti Rootkit躲过主动防御,期间走过的路并不平坦,有许多无名的技术爱好者为我们后续的学习打下了基础。
  对于免杀技术,现在最重要的就是建立起其独有的知识体系,使其成为一个真正的技术领域,当然这也是笔者撰写本书的愿望之一。
  在未来的几年中,免杀技术势必会随着杀毒软件的进步而发展,而杀毒软件的发展则取决于新型病毒与木马的前沿走向。
  因此从病毒与木马的角度上来讲,随着技术的发展,其发展路线必然会产生分化,一类更加注重其功能性,例如加入人工智能、云计算等相关技术思想;另一类则逐渐脱离系统,向硬件靠拢,例如将后门安装在BIOS或某处固件中,甚至是处理器的微代码中。
  这两种发展路线的共同点就是小型化、精确化,因此也更加难以掌控。我们可以更容易地想到,一个存在于BIOS或固件中的恶意程序,其体积不可能动辄几百KB,因此它所包含的二义性(可改动)的字节肯定不会太多。
  并且,由于人类受到这个好奇本能的影响,窥探他人的愿望以及对陌生领域的求知欲会促使病毒木马与反病毒产品持续抗争,这种抗争将一直随着技术的发展而延续下去。在这场脑力角逐中总会有无数新人摸索着参与进来,黑客免杀技术作为他们接触病毒与木马领域的敲门砖,必然会在技术的发展与历史的潮流中总会占有一席之地。
  ……