1.1 认识加密技术 1
1.1.1数据加密的基本概念 1
第1章 加密VS解密——大碰撞 1
1.1.2加密技术及其相关问题 2
1.2加密VS解密:矛与盾的关系 4
1.3常见软件加密保护技术 4
1.3.1常见软件加密保护技术 5
1.3.2加密解密的相关概念 7
1.3.3关于注册码 12
1.4熟悉汇编语言的几条常用命令 13
2.1为什么要学习代码分析技术 15
第2章 代码分析技术及代码指令 15
2.1.1初识PE格式文件 17
2.1.2文件偏移地址与虚拟地址转换 20
2.1.3如何寻找程序的入口点(OEP) 26
2.1.4如何转储程序 28
2.1.5如何修复输入表 29
2.1.6直接调用引入表函数 34
2.2 加密解密中常用的基础知识 35
2.2.1经常见到的名词 35
2.2.2常用命令介绍 35
2.3.1条件设置指令 39
2.3熟悉加密解密中常用的代码指令 39
2.3.2浮点运算与浮点指令 40
第3章 认识软件分析技术 48
3.1静态分析技术及流行工具 48
3.1.1什么是静态分析 48
3.1.2程序类型分析工具 49
3.1.3资源编辑器工具 52
3.1.4反汇编分析工具 58
3.2动态分析技术及流行工具 60
3.3注册表分析技术及流行工具 61
3.3.1注册表编辑工具Regedit 61
3.3.2注册表照相机RegSnap 66
3.3.3注册表监视工具RegMon 69
3.3.4注册表监视工具Regshot 70
3.3.5注册表文件监视工具File Monitor 71
第4章 静态分析软件与文件编辑工具 73
4.1静态分析软件W32Dasm 73
4.1.1对选择的文件进行反汇编 73
4.1.2保存反汇编文本文件 74
4.1.3反汇编源代码的基本操作 75
4.1.4复制汇编代码文本 81
4.1.5装载32位的汇编代码动态调试 81
4.1.7对程序实行单步跟踪 83
4.1.8设置激活断点 83
4.1.6运行、暂停或终止反汇编程序 83
4.1.9偏移地址和虚拟地址转换 84
4.2W32Dasm秘技放送 86
4.2.1让W32Dasm中的中文字符正确显示 86
4.2.2揭秘序列号保护 87
4.2.3突破CD-Check光盘的检测保护 92
4.2.4破解功能限制的滞碍 97
4.2.5让Nag窗口安静地走开 99
4.2.6突破时间限制 101
4.3静态分析软件IDA Pro 103
4.3.1 IDA Pro的主窗口和菜单配置 103
4.3.2如何打开/装载文件 106
4.3.3注释与交叉参考 107
4.3.4如何查找字符串 108
4.3.5参考重命名 109
4.3.6标签与进制的转换 110
4.3.7手动识别代码和数据 111
4.3.8数组和结构体 111
4.3.9枚举类型与堆栈变量 113
4.3.10 IDC脚本控制器 114
4.3.11输出反汇编代码 116
4.4可执行文件编辑工具 117
4.4.1 Hiew使用简介 117
4.4.2 UltraEdit使用简介 123
4.4.3 HexWorkshop使用简介 128
4.4.4 WinHex使用简介 132
4.4.5 eXeScope使用简介 132
第5章 动态分析软件及其应用 136
5.1动态分析软件SoftICE 136
5.1.1 SoftICE安装后的配置 136
5.1.2 SoftICE的调用 141
5.1.3认识SoftICE窗口界面 141
5.1.4 SoftICE中的组合键与常用命令 143
5.1.5使SoftICE在程序的入口处停下来 151
5.1.6如何实现多次跟踪 151
5.1.7修改代码的属性 152
5.2动态分析软件TRW2000 154
5.2.1 TRW2000的安装与配置 154
5.2.2认识TRW2000的窗口 156
5.2.3认识TRW2000的命令和常用键 159
5.2.4 TRW2000经典步骤 164
5.2.5反汇编分析中的经典句式 166
5.3动态分析软件OllyDbg 169
5.3.1认识OllyDbg界面 170
5.3.2 OllyDbg的基本操作 172
5.3.3 OllyDbg的常用菜单命令 174
5.3.4如何用OllyDbg设置断点 177
5.4.1 SmartCheck使用介绍 178
5.4 SmartCheck与Keymake使用简介 178
5.4.2注册机编写器Keymake使用介绍 180
第6章 暴力破解技术及其工具 190
6.1暴力破解基础 190
6.1.1暴力破解的原理 190
6.1.2为什么要使用暴力破解 191
6.1.3对使用暴力破解的软件分类 192
6.1.4暴力破解的几个条件 192
6.1.5暴力破解思维浅析 195
6.1.6文件补丁方式暴破方法 196
6.1.7内存补丁方式暴破方法 198
6.1.8用到的汇编指令机器码 200
6.1.9动态改变条件跳转指令的执行方向 202
6.2如何制作词典文件 203
6.2.1 自制词典文件——万能钥匙Xkey 203
6.2.2 自制词典文件——Txt2Dic 207
6.3暴力破解实例 207
6.3.1完美破解UnFoxAll 207
6.3.2暴力破解Foxmail的本地口令 211
6.3.3暴力破解CB-CAD3.52 213
6.3.4使用KERNEL32.DLL破解 218
7.1为什么要给程序打补丁 221
7.1.1认识补丁文件的组成 221
第7章 补丁技术及其工具 221
7.1.2补丁的分类 222
7.2认识补丁工具 223
7.2.1补丁制作工具CodeFusion 223
7.2.2内存补丁制作工具R!SC1sPatcher 227
7.3补丁技术的应用 229
7.3.1开始程序分析 229
7.3.2确定配置方案 230
7.3.3制作补丁程序 233
7.3.4如何为程序添加功能 235
7.3.5可执行文件的加密研究 236
7.4 SMC技术大揭秘 241
7.4.1认识SMC函数 242
7.4.2高级补丁技术 242
7.5用CrackCode2000制作注册机 244
7.5.1寻找注册码 245
7.5.2内存直接寻址法 246
7.5.3寄存器间接寻址法 246
7.5.4 Decompile Winhelp注册机的写法 247
7.5.5 CrackCode的加强模式 248
第8章 加壳/脱壳技术研究 251
8.1加壳/脱壳知识基础 251
8.1.1什么是壳 251
8.1.2为什么要加壳 251
8.1.3如何为程序加载壳 252
8.2认识几款加壳工具 256
8.2.1 ASPack及其使用方法 256
8.2.2 UPX及其使用方法 258
8.2.3 PEcompact及其使用方法 259
8.2.4 ASProtect及其使用方法 260
8.2.5 tElock及其使用方法 261
8.2.6幻影(DBPE)及其使用方法 262
8.3脱壳软件使用介绍 262
8.3.1脱ASPack壳的软件 263
8.3.2脱UPX壳的软件 264
8.3.3脱PECompact壳的软件 265
8.3.4 ProcDump使用简介 266
8.3.5 UN-PACK软件使用介绍 268
8.4如何进行手动脱壳 269
8.4.1确定入口点(OEP) 269
8.4.2抓取内存映像文件 270
8.4.3重建PE文件 270
8.4.5使用ImportREC进行手动脱壳 270
8.4.6如何将可编辑资源重建 276
8.5加深一点对壳的理解 277
8.5.1侦壳应用实例 277
8.5.2软件加壳/脱壳入门级实例 279
9.1.1如何解密FOX加密的程序 282
9.1对FoxPro程序的反编译 282
第9章 反编译语言程序 282
9.1.2反编译工具UnFoxAll 283
9.2揭开Visual Basic程序的保护机制 285
9.2.1 WKTVBDE调试工具 285
9.2.2 Visual Basic程序中常用的中断 291
9.3用DeDe解密Delphi程序 293
9.3.1 DeDe反编译调试工具 293
9.3.2破解远程控制程序 296
9.4解密InstallShield安装脚本 297
9.4.1如何直接解压InstallShield 298
9.4.2解密InstallShield压缩 298
10.1.1 VXD、KMD、WDM基本概念 301
第10章 加密解密高手真经 301
10.1有关编程的相关技术资料 301
10.1.2实现程序的自删除 302
10.1.3用硬件信息实现共享软件的安全注册 303
10.2光盘的加密与解密技术 306
10.2.1光盘加密流技术 306
10.2.2使用CD-Protector软件加密光盘 308
10.2.3使用FreeLock加密数据光碟光盘加密流技术 309
10.2.4破解加密光盘 313
10.2.5加密MP3光盘破解手记 314
10.2.6利用File Monitor对付隐藏目录的加密光盘 315
10.2.7如何制作隐藏目录、超大文件 316