首页
论坛
专栏
课程

[快讯]十年磨一剑!《加密与解密(第4版)》已上市!

kanxue
8
2018-7-22 18:35 38109
《加密与解密》是一本逆向必读书籍。本书以软件逆向为切入点,讲述了软件安全领域相关的基础知识和技能,可以说是安全人士必读书籍之一了。

在阅读本书前,读者应该对x86汇编语言有大致的了解。汇编语言是大学计算机的必修课。这方面的书籍非常多,例如基普·欧文的《汇编语言:基于x86处理器》、王爽的《汇编语言》等。看雪课程也有几门汇编的视频教学,读者可以直接学习:https://www.kanxue.com/book-list-1-1.htm。虽然大多数书籍以16位汇编为讲解平台,但对理解汇编指令功能而言依然有益。

熟悉和了解C语言对阅读本书也是很有帮助的——扎实的编程基础是学好逆向的关键。另外,读者需要掌握一些常用的算法和数据结构。
针对特定平台下的软件逆向,需要了解特定平台下程序设计的相关知识。本书主要讨论Windows逆向,需要读者掌握一定的Win32编程知识。不论是研究逆向还是编程,都应该了解Win32编程。Win32编程是API方式的Windows程序设计,学习Windows API能使读者更深入地了解Windows的工作方式。推荐阅读佩措尔德(Charles Petzold)的经典著作《Windows程序设计》,它以C语言为讲解平台。

有了上面这些基础,读者就能看懂一些逆向文章了,也能看懂《 加密与解密(第四版)》这本书了。

上述三本书的京东链接,可以直接微信扫描如下二维码购买:


京东链接:https://item.jd.com/12395765.html
当当链接:http://product.dangdang.com/25314072.html



这本书定位是Windows逆向的基础知识,偏重基础,同第三版相比,主要是新增了下图黄色部分(由于厚度问题,其中附录,包括新增的“加密算法变形引擎”将以电子版的形式在随书文件里提供):

由于几个原因,导致书延期了,我和出版社对此深感歉意!
1)交稿时,书达到了1100多页,这样导致书价超200多元,为了减轻读者负担,对内容进行了一优化精减,将一些章节以电子文档形式提供,另外,再将版面格式进行了调整,将页数缩减到九百多页。
2)现在出版业,对文字校对很严格,因此全书文字优化,花了较多时间。

2001年 《加密与解密》 第一版
2003年 《加密与解密》 第二版
2008年 《加密与解密》 第三版
2018年 《加密与解密》 第四版
202x年    ……





目    录

 

基础篇

第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  WOW649

1.3.3  Windows消息机制9

1.3.4  虚拟内存10



调试篇


第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 trace36

2.1.7  Hit trace37

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的ODDisasm61

3.2.2  BeaEngine61

3.2.3  Udis8661

3.2.4  Capstone62

3.2.5  AsmJit63

3.2.6  Keystone64

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  FLIRT81

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  FGInt283

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  TEB302

7.2.4  PEB304

7.3  内核调试基础306

7.3.1  WinDbg搭建双机调试环境306

7.3.2  加载内核驱动并设置符号表308

7.3.3  SSDT与ShadowSSDT表的查看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 Hook371

8.8  小结371


第9章  Win32调试API372


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  编译运行ShadowWalker389

10.2.2  分析Hypervisor390

10.2.3  检测VT支持情况392

10.2.4  VMCS的配置393

10.2.5  EPT的配置396

10.2.6  开启VT399

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  文件偏移与虚拟地址转换420

11.5  输入表421

11.5.1  输入函数的调用421

11.5.2  输入表结构422

11.5.3  输入地址表424

11.5.4  输入表实例分析425

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头部443

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  通过干预输入表处理过程加载目标DLL450

12.1.2  改变程序运行流程使其主动加载目标DLL466

12.1.3  利用系统机制加载DLL484

12.2  DLL注入的作用490

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 Hook501

13.2.2  Inline Hook511

13.2.3  基于异常处理的Hook513

13.2.4  不是Hook的Hook515

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的检测与恢复544

13.9.2  Hook对抗545

13.10  本章小结546


漏洞篇


第14章  漏洞分析技术548

14.1  软件漏洞原理548

14.1.1  缓冲区溢出漏洞548

14.1.2  整型溢出漏洞553

14.1.3  UAF漏洞555

14.2  Shellcode555

14.2.1  Shellcode结构556

14.2.2  Shellcode通用技术559

14.2.3  实战Shellcode编写560

14.3  漏洞利用566

14.3.1  漏洞利用的基本技术567

14.3.2  漏洞利用高级技术570

14.4  漏洞样本572

14.5  样本分析573

14.5.1  准备工作573

14.5.2  静态分析574

14.5.3  动态调试576

14.5.4  追根溯源581

14.5.5  小结585


脱壳篇


第15章  专用加密软件588

15.1  认识壳588

15.1.1  壳的概念588

15.1.2  压缩引擎589

15.2  压缩壳589

15.2.1  UPX589

15.2.2  ASPack590

15.3  加密壳590

15.3.1  ASProtect590

15.3.2  Armadillo590

15.3.3  EXECryptor591

15.3.4  Themida591

15.4  虚拟机保护软件592

15.4.1  虚拟机介绍592

15.4.2  VMProtect简介592


第16章  脱壳技术594


16.1  基础知识594

16.1.1  壳的加载过程594

16.1.2  脱壳机595

16.1.3  手动脱壳596

16.2  寻找OEP596

16.2.1  根据跨段指令寻找OEP596

16.2.2  用内存访问断点寻找OEP600

16.2.3  根据栈平衡原理寻找OEP601

16.2.4  根据编译语言特点寻找OEP602

16.3  抓取内存映像603

16.3.1  Dump原理603

16.3.2  反Dump技术604

16.4  重建输入表606

16.4.1  输入表重建的原理606

16.4.2  确定IAT的地址和大小607

16.4.3  根据IAT重建输入表608

16.4.4  Import REC重建输入表611

16.4.5  输入表加密概括614

16.5  DLL文件脱壳615

16.5.1  寻找OEP615

16.5.2  Dump映像文件617

16.5.3  重建DLL的输入表618

16.5.4  构造重定位表619

16.6  附加数据621

16.7  PE文件的优化623

16.8  压缩壳626

16.8.1  UPX外壳626

16.8.2  ASPack外壳629

16.9  加密壳633

16.10  静态脱壳637

16.10.1  外壳Loader分析637

16.10.2  编写静态脱壳器641


保护篇


第17章  软件保护技术644

17.1  防范算法求逆644

17.1.1  基本概念644

17.1.2  堡垒战术645

17.1.3  游击战术646

17.2  抵御静态分析647

17.2.1  花指令647

17.2.2  SMC技术实现649

17.2.3  信息隐藏653

17.2.4  简单的多态变形技术654

17.3  文件完整性检验655

17.3.1  磁盘文件校验实现655

17.3.2  校验和657

17.3.3  内存映像校验657

17.4  代码与数据结合技术659

17.4.1  准备工作660

17.4.2  加密算法的选用661

17.4.3  手动加密代码661

17.4.4  使 .text区块可写662

17.5  软件保护的若干忠告663


第18章  反跟踪技术665


18.1  由BeingDebugged引发的蝴蝶效应665

18.1.1  BeingDebugged665

18.1.2  NtGlobalFlag669

18.1.3  Heap Magic671

18.1.4  从源头消灭BeingDebugged676

18.2  回归Native:用户态的梦魇676

18.2.1  CheckRemoteDebuggerPresent677

18.2.2  ProcessDebugPort677

18.2.3  ThreadHideFromDebugger680

18.2.4  DebugObject682

18.2.5  SystemKernelDebuggerInformation686

18.2.6  Native API688

18.2.7  Hook和AntiHook693

18.3  真正的奥秘:小技巧一览696

18.3.1  SoftICE检测方法696

18.3.2  OllyDbg检测方法698

18.3.3  调试器漏洞700

18.3.4  防止调试器附加701

18.3.5  父进程检测703

18.3.6  时间差703

18.3.7  通过Trap Flag检测704

18.3.8  双进程保护704


第19章  外壳编写基础746


19.1  外壳的结构746

19.2  加壳主程序747

19.2.1  判断文件是否为PE格式747

19.2.2  文件基本数据读入747

19.2.3  附加数据的读取749

19.2.4  输入表的处理749

19.2.5  重定位表的处理752

19.2.6  文件的压缩754

19.2.7  资源数据的处理757

19.2.8  区块的融合761

19.3  用汇编写外壳部分762

19.3.1  外壳的加载过程762

19.3.2  自建输入表763

19.3.3  外壳引导段764

19.3.4  外壳第2段767

19.3.5  将外壳部分添加至原程序772

19.4  用C++ 编写外壳部分775


第20章  虚拟机的设计780


20.1  虚拟机保护技术原理780

20.1.1  反汇编引擎780

20.1.2  指令分类780

20.2  启动框架和调用约定781

20.2.1  调度器781

20.2.2  虚拟环境782

20.2.3  平衡栈VBegin和VCheckEsp783

20.3  Handler的设计784

20.3.1  辅助Handler784

20.3.2  普通Handler和指令拆解785

20.3.3  标志位问题786

20.3.4  相同作用的指令786

20.3.5  转移指令787

20.3.6  转移跳转指令的另一种实现788

20.3.7  call指令789

20.3.8  retn指令789

20.3.9  不可模拟指令790

20.4  托管代码的异常处理790

20.4.1  VC++ 的异常处理790

20.4.2  Delphi的异常处理795

20.5  本章小结798


第21章  VMProtect逆向和还原浅析799

21.1  VMProtect逆向分析799

21.1.1  VMProtect虚拟执行引擎的全景图799

21.1.2  VMProtect虚拟引擎的基本架构804

21.1.3  指令分类804

21.2  VMProtect的还原806

21.2.1  虚拟执行系统807

21.2.2  生成完整的字节码流程图808

21.2.3  给Handler命名并添加语义动作815

21.2.4  将字节码的低级描述转换为中级描述816

21.2.5  清除无用的字节码817

21.2.6  用真值表化简逻辑指令818

21.2.7  从特征中建立部分寄存器映射信息820

21.2.8  其他无法确定的寄存器的图着色算法826

21.2.9  使用DAG匹配生成指令829

21.2.10  其他问题832


软件重构篇


第22章  补丁技术834

22.1  文件补丁834

22.2  内存补丁835

22.2.1  跨进程内存存取机制835

22.2.2  Debug API机制837

22.2.3  利用调试寄存器机制840

22.2.4  利用DLL注入技术843

22.2.5  利用Hook技术847

22.2.6  利用VT技术850

22.3  SMC补丁技术853

22.3.1  单层SMC补丁技术853

22.3.2  多层SMC补丁技术854

22.4  补丁工具856


第23章  代码的二次开发858


23.1  数据对齐858

23.2  增加空间858

23.2.1  区块间隙858

23.2.2  手工构造区块859

23.2.3  工具辅助构造区块860

23.3  获得函数的调用860

23.3.1  增加输入函数860

23.3.2  显式链接调用DLL861

23.4  代码的重定位862

23.4.1  修复重定位表862

23.4.2  代码的自定位技术864

23.5  增加输出函数865

23.6  消息循环866

23.6.1  WndProc函数866

23.6.2  寻找消息循环867

23.6.3  WndProc汇编形式868

23.7  菜单扩展869

23.7.1  扩充WndProc869

23.7.2  扩充Exit菜单的功能870


23.7.3  扩充Open菜单的功能870


23.8  DLL扩展873


23.8.1  扩展接口873


23.8.2  扩展消息循环874



语言篇


第24章  .NET平台加解密

第24章  .NET平台加解密 4

24.1  .NET概述 4

24.1.1  什么是 .NET 4

24.1.2  基本概念 5

24.1.3  第1个 .NET程序 6

24.2  MSIL与元数据 7

24.2.1  PE结构的扩展 7

24.2.2  .NET下的汇编MSIL 14

24.2.3  MSIL与元数据的结合 17

24.3  代码分析与修改技术 19

24.3.1  静态分析 19

24.3.2  动态调试 21

24.3.3  代码修改 24

24.4  .NET代码保护技术及其逆向 26

24.4.1  强名称 26

24.4.2  名称混淆 28

24.4.3  流程混淆 33

24.4.4  压缩 35

24.4.5  加密 39

24.4.6  其他保护手段 46

24.5  小结 48



取证篇


第25章  数据取证技术878

25.1  硬盘数据的获取和固定878

25.1.1  硬盘数据的获取878

25.1.2  电子数据的固定882

25.2  硬盘的分区和数据恢复882

25.2.1  分区的解析884

25.2.2  基于文件系统的数据恢复原理886

25.3  内存分析890

25.3.1  内存镜像的获取891

25.3.2  内存镜像的分析894

25.4  动态仿真技术897

25.4.1  仿真专用硬件897

25.4.2  软件仿真898

25.5  注册表900

25.5.1  Hive文件900

25.5.2  注册表中的时间901

25.5.3  USB移动存储设备902

25.6  文件格式903

25.6.1  文件修复和特征码903

25.6.2  基于文件的数据恢复技术904

25.6.3  数据隐藏的分析906


注:附录以电子版形式,放随书配套映像文件提供下载。 


附录

附录A:浮点指令

附录B:在Visual C++中使用内联汇编

附录C:Visual Basic程序

附录D:加密算法变形引擎



前言

前    言


       软件安全是信息安全领域的重要内容,涉及软件的逆向分析、加密、解密、漏洞分析、安全编程及病毒分析等。随着互联网应用的普及和企业信息化程度的不断提升,社会和企业对安全技术人才的需求逐年增加,国内高校对信息安全学科也越来越重视,但在计算机病毒查杀、网络安全、个人信息安全等方面的人才缺口仍然很大。习近平总书记指出“网络空间的竞争,归根结底是人才竞争”。着重发现、培养、输送信息安全专业人才,已经成为各国信息安全战略的重要组成部分。从就业的角度来看,掌握信息安全相关知识和技能,从业者不但可以提高自身的职场竞争力,而且有机会发挥更大的个人潜力、获得满意的薪酬;从个人成长方面来说,研究信息安全技术有助于掌握许多系统底层知识,是提升职业技能的重要途径。作为一名合格的程序员,除了掌握需求分析、设计模式等,如果能掌握一些系统底层知识,熟悉整个系统的底层结构,必将获益良多。本书以软件逆向为切入点,讲述了软件安全领域相关的基础知识和技能。读者在阅读本书的内容后,很容易就能在逆向分析、漏洞分析、安全编程、病毒分析等领域进行扩展。这些知识点的相互关联,将促使读者开阔思路,使所学融会贯通,领悟更多的学习方法,提升自身的学习能力。


  《加密与解密》从第1版到今天的第4版,能够一直陪伴读者,完全基于广大读者的热情和鼓舞,在此深表谢意。


本书的缘起

      在信息社会里,安全技术变得越来越重要,如何普及安全知识是作者始终关注的一个大问题。正是为了更好地将安全知识普及到社会各个领域的愿望,促成了本书的问世。依托看雪学院的技术背景,由作者主编和主导的看雪安全系列书籍,目前已出版发行了《加密与解密——软件保护技术及完全解决方案》(简体版,繁体版)、《加密与解密(第二版)》(简体版,繁体版)、《加密与解密(第三版)》(简体版,繁体版)、《软件加密技术内幕》等;基于电子资料的形式,历年发行的《看雪论坛精华》被众多网站转载,保守计算,其下载量已达数百万次,极大地推动了国内安全技术的发展。


     这是一本很难写的书,因为在2000年时,软件安全是一个全新的领域,从Windows 95面世以来的6年内,市面上没有一本这方面的书,网上也缺乏相关资料。为了填补国内Windows平台软件安全书籍的空白,作者与看雪论坛的一流好手努力合作,克服种种困难,于2001年9月推出了国内第一本全面介绍Windows平台软件安全技术的书籍,这就是本书的第1版《加密与解密——软件保护技术及完全解决方案》。这本书一经面世,就得到了广大读者的喜爱和认可,获得了2002年全国优秀畅销书奖(科技类),在全国很多计算机专业书店获得了极佳的销售业绩。2003年,本书的繁体版在台湾地区发行,受到了台湾读者的热烈欢迎。



     2003年6月,以本书第一版为基础完成了本书的第二版,2008年完成了本书的第三版。

      现在读者看到的这本厚重的图书,包含了当今Windows环境下软件逆向和保护技术的绝大部分内容——从基本的跟踪调试到深层的虚拟机分析;从浅显的逆向分析到中高级软件保护,其跨度之广、内容之深,国内至今尚无同类出版物能与之比肩。


第4版的变化

《加密与解密(第4版)》是在第三版的基础上完成的,删除了第三版中的过时内容,补充了大量新的内容,结构更加合理。

1.讲解通俗,突出基础

本书加强了基础部分的篇幅,系统讲解了软件逆向的基本流程,主要内容包括动态分析、静态分析及逆向分析的基础知识,重点讲解了逆向必备工具OllyDbg、WinDbg和IDA的用法,并详细讲解了逆向分析的基础知识。初学者通过相关内容的学习,可以轻松入门。

2.案例丰富,覆盖面广

学习逆向的最好方式就是动手实践,在实践中有针对性地学习。书中提供了大量的案例分析,方便读者理论与实践相结合。通过实际操作,提高读者的调试分析能力。

3.新增64位软件逆向技术的相关内容

为了便于理解,书中大多数实例是以32位程序来讲解的。32位和64位平台的差异主要体现在指令集、寄存器长度和调用约定等方面。对有基础分析的人员来说,仅需要一个熟悉的过程就可以适应这些差异。新增的64位逆向部分系统讲解了64位逆向的基本思路,使读者可以轻松地从32位程序逆向过渡到64位程序逆向。

4.加强系统内核相关知识的介绍

掌握系统底层技术是成为技术大牛必经阶段。本书增加了大量关于系统内核技术的介绍,包括内核基础知识、注入技术、HOOK技术及高深的VT技术。另外,对异常处理中的大部分内容进行了重写,更新的内容包括Windows 7/8/10等系统的新特性、x64平台上SEH的具体实现、编译器对SEH的增强实现及SEH安全性等。

5.新增漏洞分析技术的相关内容

随着软件漏洞出现形式的日趋多样化,为了区别于XSS、注入等类型的Web漏洞,也将传统的缓冲区溢出、UAF等涉及二进制编码的漏洞统称为二进制漏洞。本书讨论的软件漏洞都属于二进制漏洞。

6.探讨软件保护技术的实施

本书细研究了大量极具商业价值的软件保护技术,包括反跟踪技术、外壳编写基础、加密算法变形引擎、虚拟机的设计等,读者完全可以将这些技术应用到自己软件保护体系中去。

7.新增电子取证技术

电子取证是一个对受侵害的计算机系统进行扫描和破解,以及对入侵事件进行重建的过程,它融合了计算机和刑侦两个专业领域的知识和经验。在本书中介绍了当前常用的电子取证技术。


预备知识

      在阅读本书前,读者应该对x86汇编语言有大致的了解。汇编语言是大学计算机的必修课,这方面的书籍非常多,例如《汇编语言:基于x86处理器》、王爽的《汇编语言》等,虽然大多数书籍以16位汇编为讲解平台,但对理解汇编指令功能而言依然有益。


     读者如果熟悉和了解C语言,对阅读本书也是很有帮助的,扎实的编程基础是学好逆向的关键。另外,读者需要掌握一些常用的算法和数据结构。

     针对特定平台下的软件逆向,需要了解特定平台下程序设计的相关知识。本书主要讨论Windows逆向,需要读者掌握一定的Win32编程知识。不论是研究逆向还是编程,都应该了解Win32编程。Win32编程是API方式的Windows程序设计,学习Windows API能使读者更深入地了解Windows工作方式。推荐阅读Charles Petzold的经典著作《Windows程序设计》,它以C语言为讲解平台。

     到此为止,作者将假设你没有任何加密与解密的经验,并以此为标准组织本书的内容。


适合的读者

本书适合以下读者阅读。

  • 安全技术相关工作者:研究软件安全的一本不错的技术工具书。
  • 对逆向调试技术感兴趣的读者:增强逆向调试技能,提高软件的质量。
  • 对软件保护感兴趣的软件开发人员:更好地保护软件作品。
  • 相关专业在校学生:掌握的相关知识和技能,获得职场竞争的秘密武器。
  • 关注个人信息安全、计算机安全技术并想了解技术内幕的读者:解决很多技术疑难问题。

内容导读

      大多数人可能认为软件加密与解密是一门高深的学问。造成这种认识的原因是以前这方面的技术资料缺乏,将加密与解密这一技术“神”化了。在这个领域,初学者一般不知从何下手,于是没有方向,花费大量的时间和精力,甚至要走不少弯路。本书将给对加密与解密感兴趣的读者指明方向,提供捷径。

      本书大部分章节既相互关联又彼此独立,因此读者可以根据自己的情况选择合适自己的内容来阅读。


注:附录以电子版形式,放随书配套映像文件提供下载。 

附录

附录A:浮点指令

附录B:在Visual C++中使用内联汇编

附录C:Visual Basic程序   //包括《加密与解密》第三版VB部分+《软件加密技术内幕》VB PCODE逆向部分

附录D:.Net平台加解密


特别致谢

在本书的编写过程中,有很多朋友付出了智慧和辛勤的劳动,在此一致表示感谢!

首先,感谢我的父母、妻子、女儿对我的大力支持,使我顺利完成本书的编写!

谨对电子工业出版社博文视点公司所有相关人员致以真诚的谢意!感谢博文视点公司总经理郭立、编辑潘昕所做的大量工作!

特别感谢看雪论坛各位版主及技术小组的成员对本书的大力支持!

感谢版主团队成员linhanshi、netwind、gjden、Claud、仙果、玩命、cnbragon、piaox、BDomne、zmworm、KevinsBobo、LowRebSwrd、海风月影、菩提、xiaohang、非虫、moonife、pencil、loongzyd、moonife、pencil、莫灰灰、rockinuk、jackozoo、Feisu、humourkyo、hawking、arhat、北极星2003、monkeycz、小虾、MindMac等!

感谢[看雪智能硬件小组]的gjden、ggggwwww、xdxdxdxd、Gowabby、topofall、儒者立心、mozha、怪才、坐北朝南、Wilson、光棍节、凭栏映影、wooy0ung、南极小虾、阿東、missdiog、猥琐菜鸟、Yale、Fycrlve、沧海一粟、gd菜鸡。

感谢[看雪Android安全小组]的LowRebSwrd 、Claud、darmao、dssljt、DuckyDog、ele7enxxh、FIGHTING安、JoenChen、jltxgcy、jusnic、lody、SANCDAYE、Ov4ns7wp、ThomasKing、万抽抽、王正飞、GeneBlue,foyjog,不知世事,蒋钟庆,MindMac。

感谢[看雪iOS安全小组]的roysue、zhuliang。

感谢[看雪Web安全小组]的piaox、ermei、govsb、qq-tianqi、anybaby、webappsec、iheartbeat、猥琐菜鸟。

感谢[看雪漏洞分析小组]的仙果、wingdbg、BDomne、Keoyo_k0shl、KeenDavid、icepng、TKMoma、君子谬、IronMannn、riusksk、污师、岁月别催。

感谢[看雪翻译小组]的哆啦咪、cherrir、daemond、freakish、fyb波、Green奇、ghostway、hanbingxzy、hesir、jasonk龙莲、lumou、Logdty、rainbow、skeep、SpearMint、StrokMitream、sudozhange、Vancir、wangrin、xycxmz、zplusplus、梦野间、木无聊偶、南极小虾、敲代码的猫、银雁冰、一壶葱茜、玉林小学生。。

感谢CCDebuger对第2章“动态分析技术”和第16章“脱壳技术”的校对!

感谢accessd参与2.2节“MDebug调试器”的编写!

感谢gzgzlxg对第3章“静态分析技术”提出的修正和补充意见!

感谢zmworm对工具IDA使用的补充建议!

感谢WiNrOOt提供的IDA简易教程!

感谢北京建極練科技有限公司CTO段夕华对第4章“逆向分析技术”提出的宝贵修正意见!

感谢LOCKLOSE提供的IDA 7.0中文字符搜索的解决方法!

感谢武汉科锐安全教育张延清对4.2节”64位软件逆向技术”的编写作出的贡献!

感谢Blowfish对5.1节“序列号保护方式”的编写作出的贡献!

感谢riijj为5.6节“网络验证”提供的实例!

感谢cnbragon参与第6章“加密算法”的编写!

感谢麦洛科菲信息安全培训创始人周扬荣参与第7章“Windows内核基础”的编写!

感谢Hume对第8章“Windows下的异常处理”的编写作出的贡献!

感谢段治华参与第8章“Windows下的异常处理”、第12章“注入技术”和第13章“Hook技术”的编写!

感谢Hying对第9章“Win32调试API”和 第20章“外壳编写基础”的编写作出的贡献!

感谢程勋德对第10章“VT技术”和23.2.6节“利用VT技术”的编写作出的贡献!

感谢王勇对11.15节“编写PE分析工具”的编写作出的贡献!

感谢snowdbg参与14章“漏洞分析技术”的编写作!

感谢BDomne对第14章“漏洞分析技术”的校对!

感谢DiKeN对16.10节“静态脱壳”的编写作出的贡献!

感谢李江涛对17.2.2节“SMC技术实现”的编写作出的贡献!

感谢afanty对17.1节“防范算法求逆”的编写作出的贡献!

感谢forgot参与第18章“反跟踪技术”的编写!

感谢15PB信息安全教育薛亮亮对20.4节“用C++编写外壳部分”的编写作出的贡献!

感谢阎文斌(玩命)参与第19章“加密算法变形引擎”的编写!

感谢罗翼对23.2.1节“跨进程内存存取机制”、23.2.2节“Debug API机制”和23.2.3节“利用调试寄存器机制”的编写作出的贡献!

感谢罗巍对23.2.5节“利用HOOK技术”的编写作出的贡献!

感谢冯典参与第21章“虚拟机的设计”和第22章“VMProtect逆向和还原浅析”的编写!

感谢崔孝晨(hannibal)参与第25章“数据取证技术”的编写!

感谢linhanshi在工具方面提供的帮助!

感谢老罗《矛与盾的较量——CRC实践篇》一文所带来的启发!

感谢Lenus在内存Dump和内存断点方面给予的技术支持!

感谢skylly对第16章“脱壳技术”的脚本制作提供的技术支持!

感谢hnhuqiong提供的ODbgScript脚本教学!

感谢VolX提供了随书文件中的Aspr2.XX_unpacker.osc脚本!

感谢CoDe_Inject对23.2.4节“DLL注入技术”的编写提供的帮助!

感谢dREAMtHEATER在Win32编程和PE格式上的大力支持!

感谢武汉科锐安全教育的Backer为23.2.4节“DLL劫持技术”提供的lpk.cpp!

感谢softworm撰写的《Themida的SDK分析》一文,文本收录在随书文件“16.9 加密壳”目录中。

感谢周文雄(小楼)提供的Visual Basic 6逆向技术支持,相关内容请参考随书文件附录C。

感谢tankaiha对“.Net平台加解密”内容的编写,本章收录在随书文件附录D!

感谢宋成广对“.Net平台加解密”内容的校对!

感谢cyclotron对“伪编译”内容的编写作出的贡献!

感谢郭春杨对附录B“在Visual C++中使用内联汇编”的编写作出的贡献!

感谢pll621在扩展PE功能方面具有开拓性的研究!

感谢Fisheep对“浮点指令小结”和“信息隐藏技术”的编写作出的贡献!

感谢Sun Bird、JoJo、kvllz、frozenrain、jero、mocha、NWMonster、petnt、sudami、tankaiha、wynney、XPoy、王清、小虾等朋友为术语表的整理所做的工作!

感谢黄敏、郭倩茹、朱林峰、万嗣超、高伟超、陈佳林、刘婧、刘习文、郭泽文、严正华、Sun Bird、JoJo、kvllz等对本书的大力支持!

感谢热心读者和看雪热心会员对《加密与解密(第三版)》中的错误进行的反馈和指正!他们是:AlexLong、AsmDebuger、a王、cnliuqh、ddstrg、epluguo、Fido、giftedboy、Gruuuuubby、hdy981、isiah、jerrysun、junxiong、kan、kangaroo、keagan、kmlch、konyka、linkto、littlewisp、lizaixue、manbug、obaby、pathletboy、Phonax、playsun、ppdo、rootboy、senhuxi、senhuxi 、shoooo、smartsl、ucantseeme、usufu、usufu、Xacs、XLSDG、yangjt、ybhdgggset、zhiyajun、zwfy、家有睡神、青枫、清风、嗜血狂君、未秋叶落、轩辕小聪、雪未来白无垢、雨中的鱼等!

同时,要感谢那些参与《加密与解密》前3版、《软件加密技术内幕》组稿的众多看雪论坛一流高手,是他们的参与和奉献让此书得以顺利完成。

在此,还要感谢看雪论坛其他朋友的支持和帮助!是你们提供的帮助,才使得笔者能够完成此书。如果以上未提及对您的谢意,在此,我表示由衷的感谢!


关于本书配套文件

     随书文件中的软件和实例,经过多方面的检查和测试,绝无病毒。但是,一些加解密工具采用了某些病毒技术,会导致部分代码与某些病毒的特征码类似,造成查毒软件的误报,请读者自行决定是否使用。

     建议将随书文件复制到硬盘中,并去除“只读”属性再进行调试,以免出现一些无法解释的错误。

     随书文件的获取:请用微信扫描本书附送书签上的二维码,按提示获取《加密与解密(第4版)》的配套文件。


关于看雪学院

        看雪学院(www.kanxue.com)是一个专注于PC、移动、智能设备安全研究及逆向工程的开发者社区!创建于2000年,历经19年的发展,受到业内的广泛认同,在行业中树立了令人尊敬的专业形象。网站始终关注安全技术领域的最新发展,为IT专业人士、技术专家提供了一个氛围良好的交流与合作空间。多年来,看雪网站培养了大批安全人才,使他们从普通IT爱好者成长为具有一技之长的安全专才。同时,网站建立了一套行之有效的人才选拔机制,为IT企业源源不断输送和推荐了众多优秀人才,在业内形成了很好的口碑。近20年的发展过程中,看雪网站形成了大量有价值的技术资料,经过看雪团队的共同努力,先后出版过数本技术专著,深受出版社和广大读者好评,社会影响深远。看雪网站未来的发展,将更多依靠团队的力量,推出符合用户需求的安全产品,为会员提供安全知识的在线视频课程和教学,同时为企业提供智能设备安全测试等产品和服务。



反馈信息

我们非常希望能够了解读者对本书的看法。如果您对本书内容有任何问题或有自己的学习心得想要与其他读者分享,欢迎来看雪论坛交流。

技术支持:http://www.kanxue.com

邮件地址:kanxue@pediy.com

段  钢

2018年3月于上海


专 家 寄 语

十几年来,尽管技术不断更替,看雪论坛一直都在专业安全领域坚韧地发展着,不断有人加入,不断有人分享,高手越来越多。

十几年来,很多安全论坛已经成了明日黄花。我本人是安全焦点论坛的核心成员,安全焦点论坛曾是中国乃至全球0day技术研讨能力最强的论坛之一,后来也转型为安全会议。

为什么看雪论坛会有如此的活力和持续的进化能力?我觉得这与其创始人段钢对新人成长的细致关照密不可分。看雪论坛在入门文章的编写、入门帖的整理及精华提高帖的审校和传播方面做了大量的工作,不仅注重高手之间的研讨,还关注新人的上手和提高,仅从此书就能看出这一点。

软件逆向涉及很多枯燥的技术,例如汇编、操作系统底层、外壳对抗等,这很容易让新手放弃。本书注重由易到难的学习顺序,每个章节都提供了实战CrackMe程序。这很像玩游戏打关,书中的技术语言就是通关攻略——练习代替了说教,实战代替了知识点的罗列,每过一关就多一分自信、多一分成就感,带领初学者一步一步成为高手。

阅读此书,会让你在逆向和对抗技术方面收获满满。


知道创宇CTO、COO 杨冀龙


Windows软件逆向是一个难度比较大的技术方向,因此,在入门阶段有一本好书作为指引就显得尤为重要。我曾向很多年轻人推荐过《加密与解密》,这是一本真正源自实战、指导实战的技术书。 


腾讯玄武实验室负责人  TK(于旸)

看雪论坛十几年来培养了众多软件逆向分析人才,这些人现在已经成为中国网络空间安全的中坚力量。《加密与解密》这本书非常经典,对二进制代码分析和调试、病毒与木马分析、软件破解、版权保护感兴趣的人来讲是一本非常好的入门书籍,只要阅读、实践、钻研,就会有收获。


360公司首席安全官  谭晓生

《加密与解密》第1版出版至今已经有十几个年头,十多年前我也曾买过一本。此次《加密与解密(第4版)》出版,受看雪学院段钢之邀为本书寄语。用两个字表达我的感受,那就是——力荐!一本书18年,从Windows 2000到Windows 10;一个网站18年,从一个软件调试板块到现在的多平台多板块……我佩服段钢的坚持,正因为这种坚持,他影响了一批又一批人,为国内安全行业的技术水平提高贡献了很大的力量。尽管本书的书名叫“加密与解密”,但内容覆盖了加密与解密、调试和反调试、破解与保护及漏洞分析和利用等技术。本书从基础知识开始,辅以各种实例,由浅入深,是安全研究人员、开发人员不可多得的入门及提高书籍。最后,希望看雪学院能够在知识分享和人才培养方面再接再厉,把更多的安全爱好者变成安全专家。


犇众信息(盘古团队)创始人、CEO  韩争光

30年前,中国最早的一批黑客所活跃的领域就是软件加解密。今天,曾经的一个个社区、一个个ID都已消逝,成了让人唏嘘的回忆。成立于世纪之交的看雪学院成为中国软件加解密的旗帜,是段钢老师理念和坚持的必然。在逆向破解领域,一批批爱好者从入门到成为现在国内安全领域的专家,段钢老师的看雪论坛和《加密与解密》功不可没。我本人也是《加密与解密》最早的忠实读者之一,直到今天,在这本书的字里行间,我还能感受到那个年代技术爱好者的纯真和认真。愿看雪越来越好! 腾讯KEEN实验室和


GeekPwn创办人  大牛蛙(王琦)

加解密是信息安全技术的核心基础,看雪论坛是国内安全人才的黄埔军校,对逆向人才培养功不可没。18年,4个修订版本,段钢始终坚持做逆向社区交流这件事,矢志不渝,令整个安全业界敬重。 


京东首席信息安全专家  Tony Lee

软件安全的本质是对抗博弈,而对抗博弈的关键在于知己知彼。《加密与解密》是每一个软件安全研究者的必读专业书籍,它能帮助我们快速构建完整的专业知识结构,更重要的是,它能赋予我们不断深入分析与改造软件系统的能力。


武汉大学计算机学院教授、博士生导师,全国网络与信息安全防护峰会联合发起人、执行主席  彭国军


安全可以分成很多领域,而加密与解密是这些领域中最需要扎实功底的。多年来,难得看到像看雪这样在安全领域坚持这么久的团队。今天,看雪作为国内为数不多的专业技术团队,依然保持着对安全技术的纯真追求,而《加密与解密》从第1版到现在的第4版,正是看雪对技术追求最好的诠释。


Goodwell(龚蔚)

在大学里,我对计算机的兴趣始于病毒和游戏的加解密。作为专业书籍,《加密与解密》是一本向过去与未来致敬的技术佳品,最能体现IT产业特别是安全领域经典的传承,也是看雪多年的魅力所在,值得收藏与学习。


IDF极安客实验室联合创始人  万涛(老鹰)

当年,《加密与解密》第1版出版时引起了轰动。这本书是国内这个领域的第一本权威著作,我也仔细读过,获益良多。如今,《加密与解密(第4版)》与时俱进,新增了不少当下流行的内容,让我恨不得能先睹为快。


腾讯KEEN实验室  wushi


加密与解密是安全领域永恒的话题。作为一名安全爱好者,我有幸见证了《加密与解密》这本书的发展历程。这本书全面剖析了软件调试的方方面面,是每一个安全从业者的必备书籍。


腾讯云鼎实验室负责人  killer

我买过《加密与解密》的第2版,虽说书名看上去像是密码学相关书籍,但实际上更多地讲述了代码的破解与保护、程序的逆向分析与调试等软件安全领域非常实用的技术。我和我的很多同事、学生等都读过这本书。可以说,这本书伴随了几代软件安全从业者的成长。


清华大学网络科学与网络空间研究院教授  段海新

十几年前的一本《加密与解密》,培养了最早的一批安全爱好者,当年这本书的读者很多已经成为了今日网络安全领域的领军人。加密与解密、调试与反调试、破解与保护、隐藏与取证一直以来都是最底层最高深的安全领域,一本《加密与解密》能够带我们走入二进制安全的神秘殿堂。


陈洋  小米首席安全官

软件安全一门是一个迷人的研究领域,加解密是信息安全技术的核心基础,段钢老师的《加密与解密》是看雪论坛经过20年的沉淀,也是国内该领域的权威著作之一,正是秉承着对技术的执着追求,已更新到第四版本。作为一本逆向必读的专业书籍,相信它影响了一代网络安全爱好者,也是很多人启蒙的地方,更记载着很多人成长的轨迹。值此看雪20周年,让我们一起“莫失莫忘,不离不弃”,为网络安全行业贡献力量。


四叶草安全创始人 马坤

人生能有几个二十载,在中国网络安全人才极度缺乏的今天,看雪的这份坚守为中国网络安全事业的发展提供了宝贵的人才资源。如今,看雪正在步入黄金的青年时代,希望在下一个二十年里,看雪能够培养出更多的网络安全精英,创造属于看雪的那份辉煌!


陈彪 梆梆安全CTO

网安人才的培养是需要土壤和众多养分的,期待看雪社区不忘初心、继往开来。


杨珉,国家973首席科学家,教育部青年长江学者,复旦大学计算机学院教授

看雪二十周年之际,送诗一首,祝看雪越来越壮大,培养出更多的信息安全人才!

看雪二十载,学者过万千;分享不胜数,知识无不言;

人才多成长,夫子不为钱;安全路道远,再做一百年。


彭瀛  爱加密创始人及董事长

《加密与解密》是信息安全领域难得的经典著作,不仅注重基础知识与原理的讲解,还注重信息安全实战,体现了信息安全的基础性、实战性、实用性和趣味性。《加密与解密》和看雪论坛伴随着一代代信息安全人才成长,有效推动了各层面信息安全人才的培养,引渡无数人将信息安全作为自己的事业追求。信息安全就是要解决实际问题的,这本书及看雪论坛将持续指导大家探索信息安全的基本原理,解决实际的信息安全问题。


西安电子科技大学教授、博士生导师  沈玉龙

软件安全和加解密一直是软件行业最难掌握的技术方向之一,原因就在于涉及面太广,要想成为个中高手,必须先对硬件架构、汇编语言、调试技术、内核编程、操作系统等进行深入学习。面对众多技术细节,初学者往往不得其门而入。《加密与解密》成体系地讲解了信息安全领域的几乎全部关键技术点,由浅入深并辅以实例,不愧是初学者的指路明灯!


北京小悟科技创始人、CEO,《Windows环境下32位汇编语言程序设计》作者  罗云彬

与看雪学院结缘始于2001年。《加密与解密》第1版出版时我就买过一本,从中受益良多。这本书以深入浅出的方式讲解了大量Windows内核编程的相关知识,包括注入HOOK、结构化异常、PE文件结构等,不仅对安全研究人员有很大的帮助,对想成为Windows编程高手的人来说也是不可多得的教材,强烈推荐。


猎豹移动总经理  姚辉

记得几年前上大学的时候,我就是一边开着IDA和OllyDbg,一边刷着看雪论坛,一边读着第3版的《加密与解密》,一点一点地走进了二进制安全的世界。段老师创办的看雪论坛,更是很多痴迷于二进制安全的朋友的精神家园。一件事情做一年容易,做三五年也不难。但如段老师一般,十几年坚持做一件事情,实在难能可贵。作为安全行业的新人,我想对打算学习二进制安全的朋友说:《加密与解密(第4版)》是一本不可多得的、充满实践精神的好书,它一定会给你的学习带来巨大的帮助。


长亭科技CEO  陈宇森

刚进入安全这个行业时,有几本书对我影响很大,其中一本就是《加密与解密》。这么多年过去,这本书居然出版了第4版。我自己也写过一本安全方面的书,很理解出书之不易、过程之烦琐。相信《加密与解密(第4版)》会成为我和我的团队进入二进制世界的灯塔。感谢段钢老师!


Joinsec创始人  余弦

大学第一次接触《加密与解密》,逆向的学习也是从此开始。多年过去,现在已经是第四版了,他的价值不仅仅是一本书,在他的背后有看雪上面大量关于本书内容的交流,这些内容形成了书籍的第二生命。在看《加密与解密》的同时也能在看雪论坛上面找到志同道合的朋友,岂不是一种享受!


几维安全联合创始人,CEO 范俊伟

本书技术覆盖面广、可操作性强,称得上是国内最完整、最实用的底层安全技术书籍,曾指引众多热爱技术的人进入安全行业,而其中的许多人已经成为相关企业的技术骨干。看雪论坛有着深厚的技术积淀和人才积累,这本书中介绍的所有技术均有相关资深安全从业者活跃于论坛,可为安全技术爱好者及想进入安全行业的人提供交流互动和提升技术能力的平台。

本书详细而透彻地讲解了系统底层的基础知识和安全核心技术的实践技能,基础知识的介绍包含Windows异常机制、内核基础、调试器、加密算法等,而核心技术方面则有反汇编技术、静态分析技术、动态分析技术、代码注入技术、HOOK技术、漏洞分析技术、脱壳技术等,这些知识都是底层安全从业人员和高级黑客必须掌握的。


启明星辰ADLab高级安全研究员,看雪论坛“智能设备”版主  甘杰(gjden)

在从事反病毒工作的前几年里,《加密与解密》是少数几本对我和同事们帮助极大的书籍之一。相信《加密与解密(第4版)》依然会是反病毒、系统安全、软件保护等方向的权威参考和案头必备工具书。


Palo Alto Networks安全研究员,看雪论坛“Android安全”版主  Claud Xiao


作 者 简 介

本书由看雪学院创始人段钢主持编著。在本书的编写过程中,参与创作的每位作者倾力将各自擅长的专业技术毫无保留地奉献给广大读者,使得本书展现出了极具价值的丰富内容。如果读者在阅读本书后,能够感受到管窥技术奥秘带来的内心的喜悦,并愿意与大家分享这份感受,这是作者最大的愿望。
主 编:段 钢
编 委:(按章节顺序排列)
accessd、张延清、张波、沈晓斌、周扬荣、温玉杰、段治华、印  豪、程勋德、snowdbg、赵  勇、唐植明 、李江涛、林子深、薛亮亮、冯典、罗翼、罗巍、林小华、崔孝晨、郭春杨、丁益青、tankaiha 、阎文斌

主编





















































[防守篇]2018看雪.TSRC CTF 挑战赛(团队赛)11月1日征题开启!

最后于 4天前 被kanxue编辑 ,原因:
最新回复 (270)
mikeer 2018-7-22 19:00
2

0

再99-20,优惠后的价格是138元
没看到有优惠券啊???
mikeer 2018-7-22 19:00
3

0

大哥,修正一下好不好?
kanxue 8 2018-7-22 19:06
4

0

可能和你的帐号有关系:

最后于 2018-7-23 08:16 被kanxue编辑 ,原因:
mikeer 2018-7-22 19:08
5

0

大哥,我看到的界面是这样的。
最后于 2018-7-22 19:10 被mikeer编辑 ,原因:
KevinsBobo 2 2018-7-22 19:15
6

0

mikeer 大哥,我看到的界面是这样的。
去领券中心看看,昨天我一朋友也看不到,去领券中心找到了满99减20的券
junkboy 2018-7-22 20:02
7

0

虽然对win32不感兴趣,但还是先买一本收藏
大道在我 2018-7-22 20:03
8

0

淘宝看看  淘宝比京东便宜10块钱148.5元 
junkboy 2018-7-22 20:08
9

0

大道在我 淘宝看看 淘宝比京东便宜10块钱148.5元 [em_1]
在微信打开jd商品页,价格158.40元,下方有个“领券”字样,可以领99-20的图书券,就是138.40元,还可以白条三期免息。
SSYor 2018-7-22 20:09
10

0

关注下
niuzuoquan 2018-7-22 20:33
11

0

138定了一本。
niuzuoquan 2018-7-22 20:35
12

0

1.2.3.4版本都齐了。
hugehehe 2018-7-22 20:51
13

0

终于等到你!
happysamuel 2018-7-23 00:19
14

0

终于出版了,等了很久了了,好消息
Fick 2018-7-23 01:32
15

0

我好像只有100减6元的优惠劵啊 
陈jack 2018-7-23 04:35
16

0

wsadzxc 2018-7-23 05:54
17

0

只想知道会不会有kindle版,已经习惯了电子书了
起名真智障 2018-7-23 07:38
18

0

终于出了,买买买,微信公众号通知一下啊
o冰柠檬o 2018-7-23 08:44
19

0

终于等到了,买买买
blackcore 2018-7-23 09:15
20

0

电脑坏了,昨天没有上网,今天来公司就看见了这个好消息。已经买了,不用再倒计时了。
金奔腾 2018-7-23 09:18
21

0

等了好久终于出版了,考虑一下要不要信仰充值,主要是钱不够了...
ninebianbian 2018-7-23 09:37
22

0

买了买了,白条付款后131,开心
蜜雪草精灵 2018-7-23 09:39
23

0

就算这书超过300也一定支持~
valice 2018-7-23 09:39
24

0

为了学习,选择剁手了
大道在我 2018-7-23 09:41
25

0

准备发多少本
Lixinist 2018-7-23 09:52
26

0

看淘宝上还说7.31后有货,本来想去淘宝的。但是kanxue都说“预计8月下旬上市”。还是来京东买吧
已买
最后于 2018-7-23 10:11 被Lixinist编辑 ,原因: 已买
crackhappy 2018-7-23 10:34
27

0

预订了……折扣不小哦!
wsadzxc 2018-7-23 11:33
28

0

我也预订了,但还是希望早点有kindle版,习惯了深夜躺在床上看书
yun澐 2018-7-23 11:35
29

0

支持
蓝色淡风 2 2018-7-23 11:56
30

0

期待
zldww 2018-7-23 11:56
31

0

终于开卖了,等了好久了
mihacker 2018-7-23 12:39
32

0

  从第三版后等了两年。
hairuoai 2018-7-23 12:48
33

0

京东已预定....信仰充值....
水流花谢 2018-7-23 18:49
34

0

买的起书,买不起地方放书
kclonline 2018-7-23 19:08
35

0

看起来138最便宜了?
nothingkey 2018-7-23 20:43
36

0

终于等到你
傲灬世 2018-7-23 23:06
37

0

京东可以领20元优惠券
八岛 1 2018-7-24 09:10
38

0

128到手!
molimoli 2018-7-24 10:49
39

0

没看到有优惠券啊??? 
wxhui 2018-7-24 12:23
40

0

已经购买,京东白条再减10元,128到手!
rescuo 2018-7-24 14:13
41

0

已购买,电子版好久发放?
kanxue 8 2018-7-24 15:33
42

0

wsadzxc 我也预订了,但还是希望早点有kindle版,习惯了深夜躺在床上看书
躺床上看书,伤眼睛,我眼睛就是中学时,躺床上看书造成的。
电子版,1年内应该不会有发。
xxRea 2018-7-24 16:59
43

0

入手一本~!
本物天下霸唱 2018-7-24 17:37
44

0

火前留名,准备入手
wx_宝义马技术-刘工 2018-7-24 18:27
45

0

不用买,去年踩楼中奖了一本另外问下坛主,中奖那个什么时候可以发?
wx_宝义马技术-刘工 2018-7-24 18:27
46

0

不用买,去年踩楼中奖了一本另外问下坛主,中奖那个什么时候可以发?
raax 1 2018-7-24 18:33
47

0

终于来了……
riusksk 41 2018-7-24 18:54
48

0

终于出了,可以考虑再出本 <加解密•移动篇>了
sureselsun 2018-7-24 23:17
49

0

有电子版购买吗?
o冰柠檬o 2018-7-25 09:10
50

0

mikeer 再99-20,优惠后的价格是138元 没看到有优惠券啊???
新用户貌似是没得哪个99-20的卷的,找到老账号就回出现了
返回