文件大小:43.19 MB
文件类型:pdf
发布时间:2021-08-22 11:12:41
需资源分:2
下载次数:21
Tag:加密与解密[第4版].pdf
::资源简介::
加密与解密[第4版],1
专家寄语,13
基础篇
第01章 基础知识,36
1_1 什么是加密与解密,36
1_1_1 软件的加密与解密,36
1_1_2 软件逆向工程,36
1_1_3 逆向分析技术,37
1_2 文本字符,38
1_2_1 ASCII与Unicode字符集,38
1_2_2 字节存储顺序,40
1_3 Windows操作系统,40
1_3_1 Win32_API函数,40
1_3_2 WOW64,43
1_3_3 Windows消息机制,43
1_3_4 虚拟内存,45
调试篇
第02章 动态分析技术,48
2_1 OllyDbg调试器,48
2_1_1 OllyDbg的界面,48
2_1_2 OllyDbg的配置,49
2_1_3 基本操作,50
2_1_4 常用断点,61
2_1_5 插件,69
2_1_6 Run_trace,70
2_1_7 Hit_trace,71
2_1_8 调试符号,71
2_1_9 加载程序,73
2_1_10 OllyDbg的常见问题,74
2_2 x64dbg调试器,76
2_3 MDebug调试器,78
2_3_1 MDebug的界面,78
2_3_2 表达式,79
2_3_3 调试,79
2_3_4 断点,80
2_3_5 MDebug的其他功能,81
2_4 WinDbg调试器,81
2_4_1 WinDbg的安装与配置,81
2_4_2 调试过程,85
2_4_3 断点命令,85
2_4_4 栈窗口,87
2_4_5 内存命令,89
2_4_6 脚本,90
2_4_7 调试功能扩展,92
2_4_8 小结,93
第03章 静态分析技术,94
3_1 文件类型分析,94
3_2 反汇编引擎,95
3_2_1 OllyDbg的ODDisasm,95
3_2_2 BeaEngine,95
3_2_3 Udis86,95
3_2_4 Capstone,96
3_2_5 AsmJit,97
3_2_6 Keystone,98
3_2_7 小结,98
3_3 静态反汇编,99
3_3_1 IDA Pro简介,99
3_3_2 IDA的配置,100
3_3_3 IDA主窗口,102
3_3_4 交叉参考,103
3_3_5 参考重命名,104
3_3_6 标签的用法,105
3_3_7 格式化指令操作数,105
3_3_8 函数的操作,106
3_3_9 代码和数据转换,106
3_3_10 字符串,107
3_3_11 数组,108
3_3_12 结构体,109
3_3_13 枚举类型,113
3_3_14 变量,114
3_3_15 FLIRT,115
3_3_16 IDC脚本,116
3_3_17 插件,120
3_3_18 IDA调试器,121
3_3_19 远程调试,124
3_3_20 其他功能,127
3_3_21 小结,128
3_4 十六进制工具,128
3_5 静态分析技术应用实例,131
3_5_1 解密初步,131
3_5_2 逆向工程初步,133
解密篇
第04章 逆向分析技术,136
4_1 32位软件逆向技术,136
4_1_1 启动函数,136
4_1_2 函数,137
4_1_3 数据结构,145
4_1_4 虚函数,149
4_1_5 控制语句,151
4_1_6 循环语句,158
4_1_7 数学运算符,159
4_1_8 文本字符串,162
4_1_9 指令修改技巧,164
4_2 64位软件逆向技术,165
4_2_1 寄存器,165
4_2_2 函数,166
4_2_3 数据结构,176
4_2_4 控制语句,179
4_2_5 循环语句,188
4_2_6 数学运算符,192
4_2_7 虚函数,203
4_2_8 小结,227
第05章 演示版保护技术,228
5_1 序列号保护方式,228
5_1_1 序列号保护机制,228
5_1_2 如何攻击序列号保护机制,229
5_1_3 字符串比较形式,231
5_1_4 制作注册机,232
5_2 警告窗口,237
5_3 时间限制,239
5_3_1 计时器,239
5_3_2 时间限制,239
5_3_3 拆解时间限制保护,240
5_4 菜单功能限制,241
5_4_1 相关函数,241
5_4_2 拆解菜单限制保护,242
5_5 KeyFile保护,242
5_5_1 相关API函数,242
5_5_2 拆解KeyFile保护,243
5_6 网络验证,247
5_6_1 相关函数,248
5_6_2 破解网络验证的一般思路,248
5_7 光盘检测,253
5_7_1 相关函数,253
5_7_2 拆解光盘保护,254
5_8 只运行1个实例,255
5_8_1 实现方法,255
5_8_2 实例,256
5_9 常用断点设置技巧,256
第06章 加密算法,257
6_1 单向散列算法,257
6_1_1 MD5算法,257
6_1_2 SHA算法,261
6_1_3 SM3密码杂凑算法,265
6_1_4 小结,265
6_2 对称加密算法,265
6_2_1 RC4流密码,265
6_2_2 TEA算法,267
6_2_3 IDEA算法,270
6_2_4 BlowFish算法,277
6_2_5 AES算法,280
6_2_6 SM4分组密码算法,293
6_2_7 小结,293
6_3 公开密钥加密算法,293
6_3_1 RSA算法,294
6_3_2 ElGamal公钥算法,298
6_3_3 DSA数字签名算法,304
6_3_4 椭圆曲线密码编码学,306
6_3_5 SM2算法,313
6_4 其他算法,313
6_4_1 CRC32算法,313
6_4_2 Base64编码,314
6_5 常见的加密库接口及其识别,315
6_5_1 Miracl大数运算库,315
6_5_2 FGInt,317
6_5_3 其他加密算法库介绍,318
6_6 加密算法在软件保护中的应用,319
系统篇
第07章 Windows内核基础,324
7_1 内核理论基础,324
7_1_1 权限级别,324
7_1_2 内存空间布局,325
7_1_3 Windows与内核启动过程,326
7_1_4 Windows R3与R0通信,328
7_1_5 内核函数,330
7_1_6 内核驱动模块,331
7_2 内核重要数据结构,332
7_2_1 内核对象,332
7_2_2 SSDT,334
7_2_3 TEB,336
7_2_4 PEB,338
7_3 内核调试基础,340
7_3_1 使用WinDbg搭建双机调试环境,340
7_3_2 加载内核驱动并设置符号表,342
7_3_3 SSDT与Shadow SSDT的查看,345
第08章 Windows下的异常处理,347
8_1 异常处理的基本概念,347
8_1_1 异常列表,347
8_1_2 异常处理的基本过程,348
8_2 SEH的概念及基本知识,353
8_2_1 SEH的相关数据结构,353
8_2_2 SEH处理程序的安装和卸载,354
8_2_3 SEH实例跟踪,355
8_3 SEH异常处理程序原理及设计,359
8_3_1 异常分发的详细过程,359
8_3_2 线程异常处理,364
8_3_3 异常处理的栈展开,370
8_3_4 MSC编译器对线程异常处理的增强,376
8_3_5 顶层异常处理,383
8_3_6 异常处理程序的安全性,391
8_4 向量化异常处理,395
8_4_1 向量化异常处理的使用,395
8_4_2 VEH与SEH的异同,396
8_4_3 向量化异常处理的新内容,397
8_5 x64平台上的异常处理,397
8_5_1 原生x64程序的异常分发,398
8_5_2 WOW64下的异常分发,400
8_6 异常处理程序设计中的注意事项,401
8_7 异常处理的实际应用,402
8_7_1 使用SEH对用户输入进行验证,402
8_7_2 SEH在加密与解密中的应用,403
8_7_3 用VEH实现API_Hook,405
8_8 本章小结,405
第09章 Win32调试API,406
9_1 调试相关函数简要说明,406
9_2 调试事件,409
9_3 创建并跟踪进程,411
9_4 调试循环体,412
9_5 处理调试事件,413
9_6 线程环境,414
9_7 将代码注入进程,416
第10章 VT技术,418
10_1 硬件虚拟化的基本概念,418
10_1_1 概述,418
10_1_2 相关结构和汇编指令,419
10_1_3 EPT机制,422
10_2 VT技术的应用,423
10_2_1 编译运行ShadowWalker,423
10_2_2 分析Hypervisor,424
10_2_3 检测VT支持情况,426
10_2_4 VMCS的配置,427
10_2_5 EPT的配置,430
10_2_6 开启VT,433
10_2_7 内存隐藏的实现,433
10_3 VT调试方法,435
第11章 PE文件格式,438
11_1 PE的基本概念,439
11_1_1 基地址,439
11_1_2 虚拟地址,440
11_1_3 相对虚拟地址,440
11_1_4 文件偏移地址,441
11_2 MS-DOS头部,441
11_3 PE文件头,442
11_3_1 Signature字段,442
11_3_2 IMAGE_FILE_HEADER结构,443
11_3_3 IMAGE_OPTIONAL_HEADER结构,444
11_4 区块,449
11_4_1 区块表,449
11_4_2 常见区块与区块合并,451
11_4_3 区块的对齐值,453
11_4_4 文件偏移与虚拟地址的转换,453
11_5 输入表,455
11_5_1 输入函数的调用,455
11_5_2 输入表的结构,456
11_5_3 输入地址表,458
11_5_4 输入表实例分析,458
11_6 绑定输入,462
11_7 输出表,463
11_7_1 输出表的结构,464
11_7_2 输出表实例分析,465
11_8 基址重定位,466
11_8_1 基址重定位的概念,466
11_8_2 基址重定位表的结构,467
11_8_3 基址重定位表实例分析,468
11_9 资源,469
11_9_1 资源结构,469
11_9_2 资源结构实例分析,472
11_9_3 资源编辑工具,474
11_10 TLS初始化,474
11_11 调试目录,475
11_12 延迟载入数据,475
11_13 程序异常数据,476
11_14 _NET头部,476
11_15 编写PE分析工具,477
11_15_1 检查文件格式,477
11_15_2 读取FileHeader和OptionalHeader的内容,478
11_15_3 得到数据目录表信息,479
11_15_4 得到区块表信息,480
11_15_5 得到输出表信息,481
11_15_6 得到输入表信息,482
第12章 注入技术,484
12_1 DLL注入方法,484
12_1_1 通过干预输入表处理过程加载目标DLL,484
12_1_2 改变程序运行流程使其主动加载目标DLL,500
12_1_3 利用系统机制加载DLL,518
12_2 DLL注入的应用,525
12_3 DLL注入的防范,525
12_3_1 驱动层防范,525
12_3_2 应用层防范,527
第13章 Hook技术,531
13_1 Hook概述,531
13_1_1 IAT_Hook篡改MessageBox消息,531
13_1_2 Inline_Hook篡改指定MessageBox消息,533
13_2 Hook的分类,534
13_2_1 Address_Hook,535
13_2_2 Inline_Hook,545
13_2_3 基于异常处理的Hook,547
13_2_4 不是Hook的Hook,548
13_3 Hook位置的挑选,549
13_4 Hook的典型过程,553
13_4_1 Address_Hook的实施过程,553
13_4_2 Inline Hook的实施过程,560
13_4_3 基于异常处理的Hook实施过程,563
13_4_4 二次Hook的注意事项,566
13_4_5 通用Hook引擎的实现,567
13_5 Detour函数的典型用法,567
13_6 Hook中的注意事项,570
13_7 Hook在x64平台上的新问题,575
13_8 Hook技术的应用,577
13_9 Hook的检测/恢复与对抗,578
13_9_1 Hook的检测与恢复,578
13_9_2 Hook的对抗,579
13_10 本章小结,580
漏洞篇
第14章 漏洞分析技术,582
14_1 软件漏洞原理,582
14_1_1 缓冲区溢出漏洞,582
14_1_2 整型溢出漏洞,587
14_1_3 UAF漏洞,589
14_2 Shellcode,589
14_2_1 Shellcode的结构,590
14_2_2 Shellcode通用技术,593
14_2_3 实战Shellcode编写,594
14_3 漏洞利用,600
14_3_1 漏洞利用基本技术,601
14_3_2 漏洞利用高级技术,604
14_4 漏洞样本,606
14_5 样本分析,607
14_5_1 准备工作,607
14_5_2 静态分析,608
14_5_3 动态调试,610
14_5_4 追根溯源,615
14_5_5 小结,619
脱壳篇
第15章 专用加密软件,622
15_1 认识壳,622
15_1_1 壳的概念,622
15_1_2 压缩引擎,623
15_2 压缩壳,623
15_2_1 UPX,623
15_2_2 ASPack,624
15_3 加密壳,624
15_3_1 ASProtect,624
15_3_2 Armadillo,624
15_3_3 EXECryptor,625
15_3_4 Themida,625
15_4 虚拟机保护软件,626
15_4_1 虚拟机介绍,626
15_4_2 VMProtect简介,626
第16章 脱壳技术,628
16_1 基础知识,628
16_1_1 壳的加载过程,628
16_1_2 脱壳机,629
16_1_3 手动脱壳,630
16_2 寻找OEP,630
16_2_1 根据跨段指令寻找OEP,630
16_2_2 用内存访问断点寻找OEP,634
16_2_3 根据栈平衡原理寻找OEP,635
16_2_4 根据编译语言特点寻找OEP,636
16_3 抓取内存映像,637
16_3_1 Dump原理,637
16_3_2 反Dump技术,638
16_4 重建输入表,640
16_4_1 输入表重建的原理,640
16_4_2 确定IAT的地址和大小,641
16_4_3 根据IAT重建输入表,642
16_4_4 用Import REC重建输入表,645
16_4_5 输入表加密概括,648
16_5 DLL文件脱壳,649
16_5_1 寻找OEP,649
16_5_2 Dump映像文件,651
16_5_3 重建DLL的输入表,652
16_5_4 构造重定位表,653
16_6 附加数据,655
16_7 PE文件的优化,657
16_8 压缩壳,660
16_8_1 UPX外壳,660
16_8_2 ASPack外壳,663
16_9 加密壳,667
16_10 静态脱壳,671
16_10_1 外壳Loader分析,671
16_10_2 编写静态脱壳器,675
保护篇
第17章 软件保护技术,678
17_1 防范算法求逆,678
17_1_1 基本概念,678
17_1_2 堡垒战术,679
17_1_3 游击战术,680
17_2 抵御静态分析,681
17_2_1 花指令,681
17_2_2 SMC技术实现,683
17_2_3 信息隐藏,687
17_2_4 简单的多态变形技术,688
17_3 文件完整性检验,689
17_3_1 磁盘文件校验的实现,689
17_3_2 校验和,691
17_3_3 内存映像校验,691
17_4 代码与数据结合,693
17_4_1 准备工作,694
17_4_2 加密算法的选用,695
17_4_3 手动加密代码,695
17_4_4 使 _text区块可写,696
17_5 关于软件保护的若干忠告,697
第18章 反跟踪技术,699
18_1 由BeingDebugged引发的蝴蝶效应,699
18_1_1 BeingDebugged,699
18_1_2 NtGlobalFlag,703
18_1_3 Heap Magic,705
18_1_4 从源头消灭BeingDebugged,710
18_2 回归Native:用户态的梦魇,710
18_2_1 CheckRemoteDebuggerPresent,711
18_2_2 ProcessDebugPort,711
18_2_3 ThreadHideFromDebugger,714
18_2_4 DebugObject,716
18_2_5 SystemKernelDebuggerInformation,720
18_2_6 Native API,722
18_2_7 Hook和AntiHook,727
18_3 真正的奥秘:小技巧一览,730
18_3_1 SoftICE检测方法,730
18_3_2 OllyDbg检测方法,732
18_3_3 调试器漏洞,734
18_3_4 防止调试器附加,735
18_3_5 父进程检测,737
18_3_6 时间差,737
18_3_7 通过Trap Flag检测,738
18_3_8 双进程保护,738
第19章 外壳编写基础,739
19_1 外壳的结构,739
19_2 加壳主程序,740
19_2_1 判断文件是否为PE格式,740
19_2_2 文件基本数据读入,740
19_2_3 附加数据的读取,742
19_2_4 输入表的处理,742
19_2_5 重定位表的处理,745
19_2_6 文件的压缩,747
19_2_7 资源数据的处理,750
19_2_8 区块的融合,754
19_3 用汇编写外壳部分,755
19_3_1 外壳的加载过程,755
19_3_2 自建输入表,756
19_3_3 外壳引导段,757
19_3_4 外壳第2部分,760
19_3_5 将外壳部分添加至原程序,765
19_4 用C++编写外壳部分,768
第20章 虚拟机的设计,773
20_1 虚拟机保护技术原理,773
20_1_1 反汇编引擎,773
20_1_2 指令分类,773
20_2 启动框架和调用约定,774
20_2_1 调度器,774
20_2_2 虚拟环境,775
20_2_3 平衡栈vBegin和vCheckESP,776
20_3 Handler的设计,777
20_3_1 辅助Handler,777
20_3_2 普通Handler和指令拆解,778
20_3_3 标志位问题,779
20_3_4 相同作用的指令,779
20_3_5 转移指令,780
20_3_6 转移跳转指令的另一种实现,781
20_3_7 call指令,782
20_3_8 retn指令,782
20_3_9 不可模拟指令,783
20_4 托管代码的异常处理,783
20_4_1 VC++的异常处理,783
20_4_2 Delphi的异常处理,788
20_5 本章小结,791
第21章 VMProtect逆向和还原浅析,792
21_1 VMProtect逆向分析,792
21_1_1 VMProtect虚拟执行引擎的全景图,792
21_1_2 VMProtect虚拟引擎的基本架构,797
21_1_3 指令分类,797
21_2 VMProtect的还原,799
21_2_1 虚拟执行系统,800
21_2_2 生成完整的字节码流程图,801
21_2_3 给Handler命名并添加语义动作,808
21_2_4 将字节码的低级描述转换为中级描述,809
21_2_5 清除无用的字节码,810
21_2_6 用真值表化简逻辑指令,810
21_2_7 从特征中建立部分寄存器映射信息,813
21_2_8 其他无法确定的寄存器的图着色算法,819
21_2_9 使用DAG匹配生成指令,822
21_2_10 其他问题,825
软件重构篇
第22章 补丁技术,828
22_1 文件补丁,828
22_2 内存补丁,829
22_2_1 跨进程内存存取机制,829
22_2_2 Debug API机制,831
22_2_3 利用调试寄存器机制,834
22_2_4 利用DLL注入技术,837
22_2_5 利用Hook技术,841
22_2_6 利用VT技术,844
22_3 SMC补丁技术,847
22_3_1 单层SMC补丁技术,847
22_3_2 多层SMC补丁技术,848
22_4 补丁工具,850
第23章 代码的二次开发,852
23_1 数据对齐,852
23_2 增加空间,852
23_2_1 区块间隙,852
23_2_2 手动构造区块,853
23_2_3 工具辅助构造区块,854
23_3 获得函数的调用信息,854
23_3_1 增加输入函数,854
23_3_2 显式链接调用DLL,855
23_4 代码的重定位,856
23_4_1 修复重定位表,856
23_4_2 代码的自定位技术,858
23_5 增加输出函数,859
23_6 消息循环,860
23_6_1 WndProc函数,860
23_6_2 寻找消息循环,861
23_6_3 WndProc汇编形式,862
23_7 菜单扩展,863
23_7_1 扩充WndProc,863
23_7_2 扩充Exit菜单的功能,864
23_7_3 扩充Open菜单的功能,864
23_8 DLL扩展,867
23_8_1 扩展接口,867
23_8_2 扩展消息循环,868
语言和平台篇
第24章 _NET平台加解密,872
24_1 _NET概述,872
24_1_1 什么是 _NET,872
24_1_2 基本概念,873
24_1_3 第1个 _NET程序,874
24_2 MSIL与元数据,875
24_2_1 PE结构的扩展,875
24_2_2 _NET下的汇编MSIL,881
24_2_3 MSIL与元数据的结合,883
24_3 代码分析与修改技术,885
24_3_1 静态分析,885
24_3_2 动态调试,887
24_3_3 代码修改,889
24_4 _NET代码保护技术及其逆向,891
24_4_1 强名称,891
24_4_2 名称混淆,893
24_4_3 流程混淆,897
24_4_4 压缩,899
24_4_5 加密,903
24_4_6 其他保护手段,909
24_5 本章小结,910
取证篇
第25章 数据取证技术,912
25_1 硬盘数据的获取和固定,912
25_1_1 硬盘数据的获取,912
25_1_2 电子数据的固定,916
25_2 硬盘的分区和数据恢复,916
25_2_1 分区的解析,918
25_2_2 基于文件系统的数据恢复原理,920
25_3 内存分析,924
25_3_1 内存镜像的获取,925
25_3_2 内存镜像的分析,928
25_4 动态仿真技术,931
25_4_1 仿真专用硬件,931
25_4_2 软件仿真,932
25_5 注册表,934
25_5_1 Hive文件,934
25_5_2 注册表中的时间,935
25_5_3 USB移动存储设备,936
25_6 文件格式,937
25_6_1 文件修复和特征码,937
25_6_2 基于文件的数据恢复技术,938
25_6_3 数据隐藏的分析,940
术语表,943
参考文献,945
::下载地址::
>> 评论