书籍详情
黑客反汇编揭秘(第二版)
作者:(俄罗斯)卡巴斯基 著,谭明金 等译
出版社:电子工业出版社
出版时间:2010-06-01
ISBN:9787121106279
定价:¥65.00
购买这本书可以去
内容简介
很多人认为,黑客行为(Hacking)是不道德的,而本书作者Kris Kaspersky认为,这有失公允。黑客行为其实是天性不安分的人的一种本能,此类人天生就爱破解谜题,并乐此不疲。他们与那些以牟利或伤害他人为目标的“黑客”们,根本就是两码事。所以,本书既不是一本破解代码的技术手册,也不是一本关于反黑客的防护手册,本书可以看做是一位喜欢刨根问底的自由主义者的学习笔记。你可以跟随他的脚步,考察Intel编译器,洞悉商业程序的保护机制,学习使用反汇编器与调试器。在第二版中,添加了一些新内容,比如克服反调试技术、探查经过打包、加密、异化或者混淆的代码等。如果你也和作者一样,想探究清楚那些商业软件浩瀚的代码中都有些什么,不妨读一读本书。
作者简介
暂缺《黑客反汇编揭秘(第二版)》作者简介
目录
第1篇 黑客工具介绍
第1章 携黑客工具启程 2
1.1 调试器 2
1.2 反汇编器 6
1.3 反编译器 8
1.4 十六进制编辑器 10
1.5 解包器(Unpacker) 12
1.6 转储器 13
1.7 资源编辑器 14
1.8 窥测器(spy) 14
1.9 监视器(Monitor) 15
1.10 修正器 17
1.11 受保护光盘复制器 17
第2章 UNIX黑客工具 18
2.1 调试器 18
2.2 反汇编器 21
2.3 窥测器 22
2.4 十六进制编辑器 23
2.5 转储器 24
2.6 自动保护工具 24
第3章 调试器与仿真器的仿真 25
3.1 仿真器介绍 25
3.2 历史概况 25
3.2.1 仿真器的应用范围 27
3.2.2 硬件虚拟 31
3.3 流行的仿真器概述 32
3.3.1 DOSBox 32
3.3.2 Bochs 34
3.3.3 VMware 35
3.3.4 Microsoft Virtual PC 37
3.3.5 Xen 39
3.3.6 最势均力敌的竞争对手 40
3.4 仿真器的选用 41
3.4.1 安全性 41
3.4.2 可扩展性 41
3.4.3 源代码是否可用 41
3.4.4 仿真的质量 42
3.4.5 内置调试器 43
3.4.6 注释 43
3.4.7 如何在VMware下配置
3.4.7 SoftICE 45
第4章 汇编器入门 46
4.1 汇编语言方法论 47
4.2 基于C程序实例解释汇编概念 48
4.3 汇编插入语句是基石 49
4.4 可用的汇编语言工具 50
4.5 汇编编译器的概况与比较 51
4.5.1 评判的基本标准 52
4.5.2 MASM 54
4.5.3 TASM 56
4.5.4 FASM 57
4.5.5 NASM 58
4.5.6 YASM 59
4.5.7 结论 60
第2篇 基本黑客技术
第5章 走进黑客门 64
5.1 按密钥类型划分保护机制 67
5.2 保护机制的强度 68
5.3 现成零售方案的缺点 70
5.4 定制保护机制的实现错误 70
5.4.1 非授权复制与序列号分发 70
5.4.2 试用期及其弱点 71
5.4.3 算法重建 74
5.4.4 磁盘与内存的修改 78
5.4.5 反反汇编器 78
5.4.6 反调试技术 79
5.4.7 反监听器 79
5.4.8 反转储器 79
5.4.9 弥补保护机制 80
5.10 容易导致严重后果的小错误 80
第6章 热身 83
6.1 创建保护机制,并尝试破解之 83
6.2 走近反汇编器 85
6.2.1 批反汇编器与交互式反汇编器 86
6.2.2 使用批反汇编器 87
6.2.3 从EXE到CRK 90
6.3 实际的破解范例 101
6.3.1 抑制干扰屏的出现 102
6.3.2 强行注册 105
6.3.3 纯粹的破解或者驯服About
6.3.3 对话框 108
6.4 总结 111
第7章 通晓应用程序调试技术 112
7.1 调试简介 112
7.2 配套使用反汇编器与调试器 113
7.3 API函数断点 115
7.4 消息断点 117
7.5 数据断点 118
7.6 展开堆栈 119
7.7 调试DLL 121
7.8 总结 122
第8章 UNIX与Linux的特定调试技术 123
8.1 ptrace是GDB的基础 124
8.1.1 ptrace及其命令 126
8.1.2 GDB对多进程的支持 127
8.1.3 GDB简介 128
8.1.4 跟踪系统调用 131
8.1.5 有用的链接 132
8.2 用GDB调试二进制文件 133
8.2.1 准备进行文件调试 133
8.2.2 跟踪前的准备 138
第9章 Linice内核调试基础 141
9.1 系统要求 142
9.2 编译与配置Linice 143
9.3 引导系统与启动调试器 144
9.4 Linice的基本使用原理 147
9.5 总结 151
第10章 高级调试专题 152
10.1 SoftICE用作日志记录器 152
10.1.1 热身运动 153
10.1.2 更复杂的过滤器 156
10.1.3 SoftICE的动画型跟踪 159
10.2 随机设置断点的黑客技巧 160
10.2.1 单步跟踪的秘密 161
10.3 通过覆盖方法进行破解 169
10.3.1 总体思路 169
10.3.2 工具的选择 170
10.4 确定代码覆盖的算法 172
10.5 方法的选择 173
10.6 程序破解实例 174
10.7 总结 179
第3篇 高级反汇编技术
第11章 反汇编32位PE文件 182
11.1 PE文件结构不同实现形式的
11.1 特性 182
11.2 PE文件的一般概念与要求 183
11.3 PE文件结构 184
11.4 PE文件的代码插入与删除技术 186
11.4.1 X码概念及其他约定 186
11.4.2 X码的目的与任务 187
11.4.3 对X码的要求 188
11.4.4 插入 189
11.5 总结 215
第12章 反汇编Linux与BSD ELF
第12章 文件 216
12.1 所需要的工具 216
12.2 ELF文件结构 217
12.3 在ELF文件中插入外来码 219
12.3.1 通过合并来感染文件 220
12.3.2 通过扩展文件的最后分区来
12.3.2 感染文件 222
12.3.3 通过压缩部分原始文件而
12.3.3 感染文件 224
12.3.4 通过扩展文件的代码分区
12.3.4 而感染文件 228
12.3.5 通过下移代码分区而感染
12.3.5 文件 231
12.3.6 通过创建定制分区而感染
12.3.5 文件 233
12.3.7 通过在文件与头结构之间
12.3.5 插入代码而感染文件 233
12.3.8 在ELF文件中插入代码的
12.3.5 具体实验 234
12.4 反汇编Linux版Tiny Crackme
12.4 程序 241
12.4.1 探析tiny-crackme 241
12.5 总结 253
第13章 反汇编x86-64程序 254
13.1 简介 254
13.2 所需要的工具 255
13.3 x86-64体系结构概述 258
13.4 切换到64位模式 260
13.5 x86-64平台上的“Hello, World”
13.5 程序 262 13.6 总结 267
第14章 反汇编与破解Linux内核 268
14.1 反汇编Linux内核 268
14.1.1 内核的外围话题 268
14.1.2 攻击内核 269
14.1.3 深入内核 271
14.1.4 错误所在位置 275
14.2 内核攻击秘诀 276
14.2.1 修改Linux徽标 276
第15章 高级补丁技术 281
15.1 联机补丁的秘密与诀窍 281
15.1.1 最简单的联机补丁器 282
15.1.2 大比拼 284
15.1.3 截取作为信号的API函数 285
15.1.4 硬件断点 287
15.2 几种鲜为人知的破解客户程序的
15.2 方法 289
15.2.1 破解客户应用程序的方法
15.2.1 概述 289
15.2.2 在不编辑字节的情况下进行
15.2.2 修改 289
15.2 Windows NT/2000/XP内核黑码
15.2 事宜 296
15.2.1 内核结构 296
15.2.2 内核类型 298
15.2.3 修改内核的方法 300
15.2.4 修改启动徽标 306
15.3 BSOD之后还有活路吗 308
15.3.1 用SoftICE克服BSOD 309
15.3.3 这个反BSOD程序安全吗 317
15.4 有用的链接 317
15.5 总结 318
第16章 反汇编其他格式的文件 319
16.1 反汇编PDF文件 319
16.1.1 Adobe Acrobat为那些不循规
16.1.1 蹈矩的人提供了什么 320
16.1.2 修改Adobe Acrobat 323
16.1.3 使用打印屏幕功能实施破解 324
16.1.4 尽量多懂几种语言 324
16.1.5 PDF文件结构 324
16.1.6 生成加密密钥 328
16.1.7 攻击U-密码 329
16.1.8 如何动手破解PDF密码 331
16.1.9 参考资料 333
16.2 总结 333
第4篇 实用代码探查技术
第17章 在Windows上捉迷藏 336
17.1 Windows反调试技术 337
17.1.1 历史在不断地重演 339
17.1.2 自跟踪程序 340
17.1.3 基于物理内存访问的反调试
17.1.3 技术 345
17.1.4 Windows 2000/XP SDT Restore
17.1.3 如何工作 349
17.2 Windows世界的隐形技术 349
17.2.1 蓝丸、红丸--Windows
17.2.1 Longhorn再现《黑客帝国》 350
17.2.2 Blue Pill 350
17.2.3 规避数字签名 350
17.2.4 沉迷于虚拟世界 352
17.2.5 Red Pill 355
17.3 总结 357
第18章 攻克打包器 358
18.1 初步的分析 358
18.2 解包与其他方法 361
18.3 解包算法 361
18.4 搜索原始入口点 362
18.4.1 活动程序转储 362
18.4.2 通过内存中的签名搜索启动
18.4.2 代码 364
18.4.3 流行但低效的工具
18.4.2 GetModuleHandleA与fs:0 365
18.4.4 解包器的副作用 369
18.4.5 基于堆栈平衡找到OEP的
18.4.2 通用方法 372
18.4.6 如果调试器跳过了解包器
18.4.2 入口点怎么办 375
18.5 转储受保护的应用程序 377
18.5.1 简单转储案例 377
18.5.2 自行搜索 381
18.5.3 从外部查看转储内容 382
18.5.4 动态解密机制 383
18.5.5 对内部数据进行转储 384
18.5.6 糟糕的处事手法 386
18.6 总结 388
第19章 攻克代码混编 389
19.1 混码器如何发挥作用 390
19.2 如何破解混编程序 394
19.2.1 解除代码混编 395
19.3 黑盒方法 397
19.4 虚拟机牢笼 398
19.5 总结 399
第20章 攻克Linux与BSD打包器 400
20.1 打包器对性能的影响 400
20.2 ELFCrypt 401
20.3 UPX 408
20.4 Burneye 410
20.5 Shiva 413
20.6 打包器的比较 414
20.7 总结 415
第21章 调试与反汇编恶意软件 416
21.1 反制调试器反监视 416
21.1.1 时间也会留下印记 416
21.1.2 进程树 418
21.1.3 查看线程 420
21.1.4 恢复系统服务表 426
21.2 攻击程序的核查与反汇编 430
21.2.1 如何反汇编攻击程序 431
21.2.2 分析消息排队攻击程序 432
如何在调试器下运行外壳码 443
参考文献 444
总结 444
第1章 携黑客工具启程 2
1.1 调试器 2
1.2 反汇编器 6
1.3 反编译器 8
1.4 十六进制编辑器 10
1.5 解包器(Unpacker) 12
1.6 转储器 13
1.7 资源编辑器 14
1.8 窥测器(spy) 14
1.9 监视器(Monitor) 15
1.10 修正器 17
1.11 受保护光盘复制器 17
第2章 UNIX黑客工具 18
2.1 调试器 18
2.2 反汇编器 21
2.3 窥测器 22
2.4 十六进制编辑器 23
2.5 转储器 24
2.6 自动保护工具 24
第3章 调试器与仿真器的仿真 25
3.1 仿真器介绍 25
3.2 历史概况 25
3.2.1 仿真器的应用范围 27
3.2.2 硬件虚拟 31
3.3 流行的仿真器概述 32
3.3.1 DOSBox 32
3.3.2 Bochs 34
3.3.3 VMware 35
3.3.4 Microsoft Virtual PC 37
3.3.5 Xen 39
3.3.6 最势均力敌的竞争对手 40
3.4 仿真器的选用 41
3.4.1 安全性 41
3.4.2 可扩展性 41
3.4.3 源代码是否可用 41
3.4.4 仿真的质量 42
3.4.5 内置调试器 43
3.4.6 注释 43
3.4.7 如何在VMware下配置
3.4.7 SoftICE 45
第4章 汇编器入门 46
4.1 汇编语言方法论 47
4.2 基于C程序实例解释汇编概念 48
4.3 汇编插入语句是基石 49
4.4 可用的汇编语言工具 50
4.5 汇编编译器的概况与比较 51
4.5.1 评判的基本标准 52
4.5.2 MASM 54
4.5.3 TASM 56
4.5.4 FASM 57
4.5.5 NASM 58
4.5.6 YASM 59
4.5.7 结论 60
第2篇 基本黑客技术
第5章 走进黑客门 64
5.1 按密钥类型划分保护机制 67
5.2 保护机制的强度 68
5.3 现成零售方案的缺点 70
5.4 定制保护机制的实现错误 70
5.4.1 非授权复制与序列号分发 70
5.4.2 试用期及其弱点 71
5.4.3 算法重建 74
5.4.4 磁盘与内存的修改 78
5.4.5 反反汇编器 78
5.4.6 反调试技术 79
5.4.7 反监听器 79
5.4.8 反转储器 79
5.4.9 弥补保护机制 80
5.10 容易导致严重后果的小错误 80
第6章 热身 83
6.1 创建保护机制,并尝试破解之 83
6.2 走近反汇编器 85
6.2.1 批反汇编器与交互式反汇编器 86
6.2.2 使用批反汇编器 87
6.2.3 从EXE到CRK 90
6.3 实际的破解范例 101
6.3.1 抑制干扰屏的出现 102
6.3.2 强行注册 105
6.3.3 纯粹的破解或者驯服About
6.3.3 对话框 108
6.4 总结 111
第7章 通晓应用程序调试技术 112
7.1 调试简介 112
7.2 配套使用反汇编器与调试器 113
7.3 API函数断点 115
7.4 消息断点 117
7.5 数据断点 118
7.6 展开堆栈 119
7.7 调试DLL 121
7.8 总结 122
第8章 UNIX与Linux的特定调试技术 123
8.1 ptrace是GDB的基础 124
8.1.1 ptrace及其命令 126
8.1.2 GDB对多进程的支持 127
8.1.3 GDB简介 128
8.1.4 跟踪系统调用 131
8.1.5 有用的链接 132
8.2 用GDB调试二进制文件 133
8.2.1 准备进行文件调试 133
8.2.2 跟踪前的准备 138
第9章 Linice内核调试基础 141
9.1 系统要求 142
9.2 编译与配置Linice 143
9.3 引导系统与启动调试器 144
9.4 Linice的基本使用原理 147
9.5 总结 151
第10章 高级调试专题 152
10.1 SoftICE用作日志记录器 152
10.1.1 热身运动 153
10.1.2 更复杂的过滤器 156
10.1.3 SoftICE的动画型跟踪 159
10.2 随机设置断点的黑客技巧 160
10.2.1 单步跟踪的秘密 161
10.3 通过覆盖方法进行破解 169
10.3.1 总体思路 169
10.3.2 工具的选择 170
10.4 确定代码覆盖的算法 172
10.5 方法的选择 173
10.6 程序破解实例 174
10.7 总结 179
第3篇 高级反汇编技术
第11章 反汇编32位PE文件 182
11.1 PE文件结构不同实现形式的
11.1 特性 182
11.2 PE文件的一般概念与要求 183
11.3 PE文件结构 184
11.4 PE文件的代码插入与删除技术 186
11.4.1 X码概念及其他约定 186
11.4.2 X码的目的与任务 187
11.4.3 对X码的要求 188
11.4.4 插入 189
11.5 总结 215
第12章 反汇编Linux与BSD ELF
第12章 文件 216
12.1 所需要的工具 216
12.2 ELF文件结构 217
12.3 在ELF文件中插入外来码 219
12.3.1 通过合并来感染文件 220
12.3.2 通过扩展文件的最后分区来
12.3.2 感染文件 222
12.3.3 通过压缩部分原始文件而
12.3.3 感染文件 224
12.3.4 通过扩展文件的代码分区
12.3.4 而感染文件 228
12.3.5 通过下移代码分区而感染
12.3.5 文件 231
12.3.6 通过创建定制分区而感染
12.3.5 文件 233
12.3.7 通过在文件与头结构之间
12.3.5 插入代码而感染文件 233
12.3.8 在ELF文件中插入代码的
12.3.5 具体实验 234
12.4 反汇编Linux版Tiny Crackme
12.4 程序 241
12.4.1 探析tiny-crackme 241
12.5 总结 253
第13章 反汇编x86-64程序 254
13.1 简介 254
13.2 所需要的工具 255
13.3 x86-64体系结构概述 258
13.4 切换到64位模式 260
13.5 x86-64平台上的“Hello, World”
13.5 程序 262 13.6 总结 267
第14章 反汇编与破解Linux内核 268
14.1 反汇编Linux内核 268
14.1.1 内核的外围话题 268
14.1.2 攻击内核 269
14.1.3 深入内核 271
14.1.4 错误所在位置 275
14.2 内核攻击秘诀 276
14.2.1 修改Linux徽标 276
第15章 高级补丁技术 281
15.1 联机补丁的秘密与诀窍 281
15.1.1 最简单的联机补丁器 282
15.1.2 大比拼 284
15.1.3 截取作为信号的API函数 285
15.1.4 硬件断点 287
15.2 几种鲜为人知的破解客户程序的
15.2 方法 289
15.2.1 破解客户应用程序的方法
15.2.1 概述 289
15.2.2 在不编辑字节的情况下进行
15.2.2 修改 289
15.2 Windows NT/2000/XP内核黑码
15.2 事宜 296
15.2.1 内核结构 296
15.2.2 内核类型 298
15.2.3 修改内核的方法 300
15.2.4 修改启动徽标 306
15.3 BSOD之后还有活路吗 308
15.3.1 用SoftICE克服BSOD 309
15.3.3 这个反BSOD程序安全吗 317
15.4 有用的链接 317
15.5 总结 318
第16章 反汇编其他格式的文件 319
16.1 反汇编PDF文件 319
16.1.1 Adobe Acrobat为那些不循规
16.1.1 蹈矩的人提供了什么 320
16.1.2 修改Adobe Acrobat 323
16.1.3 使用打印屏幕功能实施破解 324
16.1.4 尽量多懂几种语言 324
16.1.5 PDF文件结构 324
16.1.6 生成加密密钥 328
16.1.7 攻击U-密码 329
16.1.8 如何动手破解PDF密码 331
16.1.9 参考资料 333
16.2 总结 333
第4篇 实用代码探查技术
第17章 在Windows上捉迷藏 336
17.1 Windows反调试技术 337
17.1.1 历史在不断地重演 339
17.1.2 自跟踪程序 340
17.1.3 基于物理内存访问的反调试
17.1.3 技术 345
17.1.4 Windows 2000/XP SDT Restore
17.1.3 如何工作 349
17.2 Windows世界的隐形技术 349
17.2.1 蓝丸、红丸--Windows
17.2.1 Longhorn再现《黑客帝国》 350
17.2.2 Blue Pill 350
17.2.3 规避数字签名 350
17.2.4 沉迷于虚拟世界 352
17.2.5 Red Pill 355
17.3 总结 357
第18章 攻克打包器 358
18.1 初步的分析 358
18.2 解包与其他方法 361
18.3 解包算法 361
18.4 搜索原始入口点 362
18.4.1 活动程序转储 362
18.4.2 通过内存中的签名搜索启动
18.4.2 代码 364
18.4.3 流行但低效的工具
18.4.2 GetModuleHandleA与fs:0 365
18.4.4 解包器的副作用 369
18.4.5 基于堆栈平衡找到OEP的
18.4.2 通用方法 372
18.4.6 如果调试器跳过了解包器
18.4.2 入口点怎么办 375
18.5 转储受保护的应用程序 377
18.5.1 简单转储案例 377
18.5.2 自行搜索 381
18.5.3 从外部查看转储内容 382
18.5.4 动态解密机制 383
18.5.5 对内部数据进行转储 384
18.5.6 糟糕的处事手法 386
18.6 总结 388
第19章 攻克代码混编 389
19.1 混码器如何发挥作用 390
19.2 如何破解混编程序 394
19.2.1 解除代码混编 395
19.3 黑盒方法 397
19.4 虚拟机牢笼 398
19.5 总结 399
第20章 攻克Linux与BSD打包器 400
20.1 打包器对性能的影响 400
20.2 ELFCrypt 401
20.3 UPX 408
20.4 Burneye 410
20.5 Shiva 413
20.6 打包器的比较 414
20.7 总结 415
第21章 调试与反汇编恶意软件 416
21.1 反制调试器反监视 416
21.1.1 时间也会留下印记 416
21.1.2 进程树 418
21.1.3 查看线程 420
21.1.4 恢复系统服务表 426
21.2 攻击程序的核查与反汇编 430
21.2.1 如何反汇编攻击程序 431
21.2.2 分析消息排队攻击程序 432
如何在调试器下运行外壳码 443
参考文献 444
总结 444
猜您喜欢