D7 

书名: Windows黑客编程技术详解

作者: 甘迪文

出版时间: 2018年12月

定价: 108.00元

ISBN编号: 9787115499240

开本: 16开

出版社名称: 人民邮电出版社

1篇 用户篇
1章 开发环境 3
1.1 环境安装 3
1.2 工程项目设置 5
1.3 关于Debug模式和Release模式的小提示 7
2章 基础技术 10
2.1 运行单一实例 10
2.2 DLL延迟加载 13
2.3 资源释放 15
3章 注入技术 22
3.1 全局钩子注入 22
3.2 远线程注入 27
3.3 突破SESSION 0隔离的远线程注入 34
3.4 APC注入 37
4章 启动技术 42
4.1 创建进程API 42
4.2 突破SESSION 0隔离创建用户进程 48
4.3 内存直接加载运行 55
5章 自启动技术 60
5.1 注册表 60
5.2 快速启动目录 66
5.3 计划任务 69
5.4 系统服务 75
6章 提权技术 84
6.1 进程访问令牌权限提升 84
6.2 Bypass UAC 89
7章 隐藏技术 97
7.1 进程伪装 97
7.2 傀儡进程 102
7.3 进程隐藏 106
7.4 DLL劫持 112
8章 压缩技术 119
8.1 数据压缩API 119
8.2 ZLIB压缩库 126
9章 加密技术 133
9.1 Windows自带的加密库 133
9.2 Crypto 密码库 152
10章 传输技术 168
10.1 Socket通信 168
10.2 FTP通信 181
10.3 HTTP通信 190
10.4 HTTPS通信 202
11章 功能技术 210
11.1 进程遍历 210
11.2 文件遍历 214
11.3 桌面截屏 219
11.4 按键记录 226
11.5 远程CMD 232
11.6 U盘监控 235
11.7 文件监控 241
11.8 自删除 245
2篇 内核篇
12章 开发环境 253
12.1 环境安装 253
12.2 驱动程序的开发与调试 254
12.3 驱动无源码调试 264
12.4 32位和64位驱动开发 268
13章 文件管理技术 270
13.1 文件管理之内核API 270
13.2 文件管理之IRP 293
13.3 文件管理之NTFS解析 303
14章 注册表管理技术 317
14.1 注册表管理之内核API 317
14.2 注册表管理之HIVE文件解析 329
15章 HOOK技术 337
15.1 SSDT HOOK 337
15.2 过滤驱动 351
16章 监控技术 357
16.1 进程创建监控 357
16.2 模块加载监控 363
16.3 注册表监控 369
16.4 对象监控 374
16.5 Minifilter文件监控 379
16.6 WFP网络监控 385
17章 反监控技术 392
17.1 反进程创建监控 392
17.2 反线程创建监控 397
17.3 反模块加载监控 403
17.4 反注册表监控 407
17.5 反对象监控 411
17.6 反Minifilter文件监控 415
18章 功能技术 421
18.1 过PatchGuard的驱动隐藏 421
18.2 过PatchGuard的进程隐藏 426
18.3 TDI网络通信 429
18.4 强制结束进程 437
18.5 文件保护 442
18.6 文件强删 444
附录 函数一览表 447

《Windows黑客编程技术详解》介绍的是黑客编程的基础技术,涉及用户层下的Windows编程和内核层下的Rootkit编程。本书分为用户篇和内核篇两部分,用户篇包括11章,配套49个示例程序源码;内核篇包括7章,配套28个示例程序源码。本书介绍的每个技术都有详细的实现原理,以及对应的示例代码(配套代码均支持32位和64位Windows 7、Windows 8.1及Windows 10系统),旨在帮助初学者建立起黑客编程技术的基础。 《Windows黑客编程技术详解》面向对计算机系统*全开发感兴趣,或者希望提升*全开发水平的读者,以及从事恶意代码分析研究的*全人员。

书名:加密与解密(4版)

作者:段钢 著

定价 198元

出版社: 电子工业出版社

ISBN:9787121336928

版次:1

开本:16开

出版时间:2018-09-01

用纸:胶版纸

页数:950

《加密与解密(4版)》以加密与解密为切入点,讲述了软件领域的基础知识和技能,如调试技能、逆向分析、加密保护、外壳开发、虚拟机设计等。这些知识彼此联系,读者在掌握这些内容之后,很容易就能在漏洞分析、编程、病毒分析、软件保护等领域进行扩展。从就业的角度来说,掌握加密与解密的相关技术,可以提高自身的竞争能力;从个人成长的角度来说,研究软件技术有助于掌握一些系统底层知识,是提升职业技能的重要途径。作为一名合格的程序员,除了掌握需求分析、设计模式等外,如果能掌握一些系统底层知识、熟悉整个系统的底层结构,在工作中必将获益良多。《加密与解密(4版)》适合研究人员、软件调试人员、程序开发人员阅读,也可以作为高校信息相关专业的辅助教材。

 

基础篇
第1章 基础知识 2
1.1 什么是加密与解密 2
1.1.1 软件的加密与解密 2
1.1.2 软件逆向工程 2
1.1.3 逆向分析技术 3
1.2 文本字符 4
1.2.1 ASCII与Unicode字符集 4
1.2.2 字节存储顺序 6
1.3 Windows操作系统 6
1.3.1 Win32 API函数 6
1.3.2 WOW64 9
1.3.3 Windows消息机制 9
1.3.4 虚拟内存 11

调试篇
第2章 动态分析技术 14
2.1 OllyDbg调试器 14
2.1.1 OllyDbg的界面 14
2.1.2 OllyDbg的配置 15
2.1.3 基本操作 16
2.1.4 常用断点 27
2.1.5 插件 35
2.1.6 Run trace 36
2.1.7 Hit trace 37
2.1.8 调试符号 37
2.1.9 加载程序 39
2.1.10 OllyDbg的常见问题 40
2.2 x64dbg调试器 42
2.3 MDebug调试器 44
2.3.1 MDebug的界面 44
2.3.2 表达式 45
2.3.3 调试 45
2.3.4 断点 46
2.3.5 MDebug的其他功能 47
2.4 WinDbg调试器 47
2.4.1 WinDbg的安装与配置 47
2.4.2 调试过程 51
2.4.3 断点命令 51
2.4.4 栈窗口 53
2.4.5 内存命令 55
2.4.6 脚本 56
2.4.7 调试功能扩展 58
2.4.8 小结 59
第3章 静态分析技术 60
3.1 文件类型分析 60
3.2 反汇编引擎 61
3.2.1 OllyDbg的ODDisasm 61
3.2.2 BeaEngine 61
3.2.3 Udis86 61
3.2.4 Capstone 62
3.2.5 AsmJit 63
3.2.6 Keystone 64
3.2.7 小结 64
3.3 静态反汇编 65
3.3.1 IDA Pro简介 65
3.3.2 IDA的配置 66
3.3.3 IDA主窗口 68
3.3.4 交叉参考 69
3.3.5 参考重命名 70
3.3.6 标签的用法 71
3.3.7 格式化指令操作数 71
3.3.8 函数的操作 72
3.3.9 代码和数据转换 72
3.3.10 字符串 73
3.3.11 数组 74
3.3.12 结构体 75
3.3.13 枚举类型 79
3.3.14 变量 80
3.3.15 FLIRT 81
3.3.16 IDC脚本 82
3.3.17 插件 86
3.3.18 IDA调试器 87
3.3.19 远程调试 90
3.3.20 其他功能 93
3.3.21 小结 94
3.4 十六进制工具 94
3.5 静态分析技术应用实例 97
3.5.1 解密初步 97
3.5.2 逆向工程初步 99

解密篇
第4章 逆向分析技术 102
4.1 32位软件逆向技术 102
4.1.1 启动函数 102
4.1.2 函数 103
4.1.3 数据结构 111
4.1.4 虚函数 115
4.1.5 控制语句 117
4.1.6 循环语句 124
4.1.7 数学运算符 125
4.1.8 文本字符串 128
4.1.9 指令修改技巧 130
4.2 64位软件逆向技术 131
4.2.1 寄存器 131
4.2.2 函数 132
4.2.3 数据结构 142
4.2.4 控制语句 145
4.2.5 循环语句 154
4.2.6 数学运算符 158
4.2.7 虚函数 169
4.2.8 小结 193
第5章 演示版保护技术 194
5.1 序列号保护方式 194
5.1.1 序列号保护机制 194
5.1.2 如何攻击序列号保护机制 195
5.1.3 字符串比较形式 197
5.1.4 制作注册机 198
5.2 警告窗口 203
5.3 时间限制 205
5.3.1 计时器 205
5.3.2 时间限制 205
5.3.3 拆解时间限制保护 206
5.4 菜单功能限制 207
5.4.1 相关函数 207
5.4.2 拆解菜单限制保护 208
5.5 KeyFile保护 208
5.5.1 相关API函数 208
5.5.2 拆解KeyFile保护 209
5.6 网络验证 213
5.6.1 相关函数 214
5.6.2 破解网络验证的一般思路 214
5.7 光盘检测 219
5.7.1 相关函数 219
5.7.2 拆解光盘保护 220
5.8 只运行1个实例 221
5.8.1 实现方法 221
5.8.2 实例 222
5.9 常用断点设置技巧 222
第6章 加密算法 223
6.1 单向散列算法 223
6.1.1 MD5算法 223
6.1.2 SHA算法 227
6.1.3 SM3密码杂凑算法 231
6.1.4 小结 231
6.2 对称加密算法 231
6.2.1 RC4流密码 231
6.2.2 TEA算法 233
6.2.3 IDEA算法 236
6.2.4 BlowFish算法 243
6.2.5 AES算法 246
6.2.6 SM4分组密码算法 259
6.2.7 小结 259
6.3 公开密钥加密算法 259
6.3.1 RSA算法 260
6.3.2 ElGamal公钥算法 264
6.3.3 DSA数字签名算法 270
6.3.4 椭圆曲线密码编码学 272
6.3.5 SM2算法 279
6.4 其他算法 279
6.4.1 CRC32算法 279
6.4.2 Base64编码 280
6.5 常见的加密库接口及其识别 281
6.5.1 Miracl大数运算库 281
6.5.2 FGInt 283
6.5.3 其他加密算法库介绍 284
6.6 加密算法在软件保护中的应用 285

系统篇
第7章 Windows内核基础 290
7.1 内核理论基础 290
7.1.1 权限级别 290
7.1.2 内存空间布局 291
7.1.3 Windows与内核启动过程 292
7.1.4 Windows R3与R0通信 294
7.1.5 内核函数 296
7.1.6 内核驱动模块 297
7.2 内核重要数据结构 298
7.2.1 内核对象 298
7.2.2 SSDT 300
7.2.3 TEB 302
7.2.4 PEB 304
7.3 内核调试基础 306
7.3.1 使用WinDbg搭建双机调试环境 306
7.3.2 加载内核驱动并设置符号表 308
7.3.3 SSDT与Shadow SSDT的查看 311
第8章 Windows下的异常处理 313
8.1 异常处理的基本概念 313
8.1.1 异常列表 313
8.1.2 异常处理的基本过程 314
8.2 SEH的概念及基本知识 319
8.2.1 SEH的相关数据结构 319
8.2.2 SEH处理程序的安装和卸载 320
8.2.3 SEH实例跟踪 321
8.3 SEH异常处理程序原理及设计 325
8.3.1 异常分发的详细过程 325
8.3.2 线程异常处理 330
8.3.3 异常处理的栈展开 336
8.3.4 MSC编译器对线程异常处理的增强 342
8.3.5 顶层异常处理 349
8.3.6 异常处理程序的安全性 357
8.4 向量化异常处理 361
8.4.1 向量化异常处理的使用 361
8.4.2 VEH与SEH的异同 362
8.4.3 向量化异常处理的新内容 363
8.5 x64平台上的异常处理 363
8.5.1 原生x64程序的异常分发 364
8.5.2 WOW64下的异常分发 366
8.6 异常处理程序设计中的注意事项 367
8.7 异常处理的实际应用 368
8.7.1 使用SEH对用户输入进行验证 368
8.7.2 SEH在加密与解密中的应用 369
8.7.3 用VEH实现API Hook 371
8.8 本章小结 371
第9章 Win32调试API 372
9.1 调试相关函数简要说明 372
9.2 调试事件 375
9.3 创建并跟踪进程 377
9.4 调试循环体 378
9.5 处理调试事件 379
9.6 线程环境 380
9.7 将代码注入进程 382
第10章 VT技术 384
10.1 硬件虚拟化的基本概念 384
10.1.1 概述 384
10.1.2 相关结构和汇编指令 385
10.1.3 EPT机制 388
10.2 VT技术的应用 389
10.2.1 编译运行ShadowWalker 389
10.2.2 分析Hypervisor 390
10.2.3 检测VT支持情况 392
10.2.4 VMCS的配置 393
10.2.5 EPT的配置 396
10.2.6 开启VT 399
10.2.7 内存隐藏的实现 399
10.3 VT调试方法 401
第11章 PE文件格式 404
11.1 PE的基本概念 405
11.1.1 基地址 405
11.1.2 虚拟地址 406
11.1.3 相对虚拟地址 406
11.1.4 文件偏移地址 407
11.2 MS-DOS头部 407
11.3 PE文件头 408
11.3.1 Signature字段 408
11.3.2 IMAGE_FILE_HEADER结构 409
11.3.3 IMAGE_OPTIONAL_HEADER结构 410
11.4 区块 415
11.4.1 区块表 415
11.4.2 常见区块与区块合并 417
11.4.3 区块的对齐值 419
11.4.4 文件偏移与虚拟地址的转换 419
11.5 输入表 421
11.5.1 输入函数的调用 421
11.5.2 输入表的结构 422
11.5.3 输入地址表 424
11.5.4 输入表实例分析 424
11.6 绑定输入 428
11.7 输出表 429
11.7.1 输出表的结构 430
11.7.2 输出表实例分析 431
11.8 基址重定位 432
11.8.1 基址重定位的概念 432
11.8.2 基址重定位表的结构 433
11.8.3 基址重定位表实例分析 434
11.9 资源 435
11.9.1 资源结构 435
11.9.2 资源结构实例分析 438
11.9.3 资源编辑工具 440
11.10 TLS初始化 440
11.11 调试目录 441
11.12 延迟载入数据 441
11.13 程序异常数据 442
11.14 .NET头部 442
11.15 编写PE分析工具 443
11.15.1 检查文件格式 443
11.15.2 读取FileHeader和OptionalHeader的内容 444
11.15.3 得到数据目录表信息 445
11.15.4 得到区块表信息 446
11.15.5 得到输出表信息 447
11.15.6 得到输入表信息 448
第12章 注入技术 450
12.1 DLL注入方法 450
12.1.1 通过干预输入表处理过程加载目标DLL 450
12.1.2 改变程序运行流程使其主动加载目标DLL 466
12.1.3 利用系统机制加载DLL 484
12.2 DLL注入的应用 491
12.3 DLL注入的防范 491
12.3.1 驱动层防范 491
12.3.2 应用层防范 493
第13章 Hook技术 497
13.1 Hook概述 497
13.1.1 IAT Hook篡改MessageBox消息 497
13.1.2 Inline Hook篡改指定MessageBox消息 499
13.2 Hook的分类 500
13.2.1 Address Hook 501
13.2.2 Inline Hook 511
13.2.3 基于异常处理的Hook 513
13.2.4 不是Hook的Hook 514
13.3 Hook位置的挑选 515
13.4 Hook的典型过程 519
13.4.1 Address Hook的实施过程 519
13.4.2 Inline Hook的实施过程 526
13.4.3 基于异常处理的Hook实施过程 529
13.4.4 二次Hook的注意事项 532
13.4.5 通用Hook引擎的实现 533
13.5 Detour函数的典型用法 533
13.6 Hook中的注意事项 536
13.7 Hook在x64平台上的新问题 541
13.8 Hook技术的应用 543
13.9 Hook的检测、恢复与对抗 544
13.9.1 Hook的检

 

返回顶部