书籍详情

软件加密原理与应用

软件加密原理与应用

作者:飞天诚信编著

出版社:电子工业出版社

出版时间:2004-11-01

ISBN:9787121003738

定价:¥55.00

购买这本书可以去
内容简介
  因特网的迅速普及在给大家的生活和工作带来了日新月异的变化的同时,也为盗版软件在网络上的快速传播与流通提供了良好的媒介,这使得学习软件保护技术,以增强软件自身抵抗盗版流毒的免疫力越来越成为大多数软件开发商的必修课。本书是飞天诚信科技有限公司多年从事软件保护所累积的经验及心得的集成,具有很强的实用性。全书不但由浅入深地讲解了软件保护技术,而且精选并剖析了一些破解实例,另外还从一定的角度透视了解密者的心态,并在多处对照了软件保护与破解的思维方法,希望这些内容可以很好地帮助开发者结合自身产品的技术特点设计出相对完美的软件保护方案。本书主要面向软件开发商,以及对软件加密和解密有浓厚兴趣的读者。无论是这一领域的初学者还是有着丰富经验的开发人员,都能从本书中受益。本书主要内容:*软件加密的发展历史,软件加密的误区*软件加密的方法,与特定语言相关的软件加密技术*破解技术剖析及常见的软件加密薄弱环节*PE技术、实战外壳加密与反脱壳技术(附大量示例源码)*调试技术与反调试技术(附大量示例源码)*软件加密技巧与整体方案设计*加密锁分类及其使用技巧(智能卡加密锁)本书不但由浅入深地讲解了软件保护技术,而且还精选并剖析了一些破解实例,并从一定的角度透视解密者的心态,在多处对照了软件保护与破解的思维方法。主要内容有:软件加密的发展历史、误区、方法,以及与特定语言相关的软件加密技术;破解技术剖析,以及常见的软件加密薄弱环节;PE技术、实战外壳加密与反脱壳技术(附大量示例源码),并提供了作者自己编写的小工具(加壳工具PEMaker等);调试技术与反调试技术(附大量示例源码);软件加密技巧与整体方案设计;加密锁分类及其使用技巧(智能卡加密锁)。本书是作者多年从事软件保护所积累的经验和心得,有很强的实用性,本书主要面向软件开发商、对软件加密和解密有浓厚兴趣的读者。
作者简介
暂缺《软件加密原理与应用》作者简介
目录
第1章 软件加密综述 1
1.1 软件加密的发展历史 2
1.2 软件加密方式的确定因素 5
1.3 软件保护的应用模式 7
1.4 软件加密的误区 9
1.5 软件加密的代价 11
第2章 方法 13
2.1 密码表 13
2.2 软盘加密 14
2.2.1 软盘的构造和原理 14
2.2.2 软盘驱动器的结构原理 19
2.2.3 软盘控制器 23
2.2.4 终极软盘控制方法——直接I/O 27
2.2.5 软盘加密技术与技巧 39
2.3 电子注册 44
2.3.1 用户名/密码 45
2.3.2 计算机信息 46
2.3.3 Key file或License file 48
2.4 光盘加密 48
2.4.1 光盘的构造和原理 48
2.4.2 常见的光盘加密方法 50
2.4.3 光盘加密的缺点 54
2.5 硬件加密 54
2.5.1 硬件加密的发展史 54
2.5.2 硬件加密的原理 55
2.5.3 市面上常见的加密锁 55
第3章 破解 56
3.1 了解解密者 56
3.1.1 解密者的心态 56
3.1.2 解密者的水平 58
3.1.3 解密者的思路 58
3.2 Patch,Serial和KeyMaker——地下世界的规则 59
3.2.1 文件补丁(File Patch) 60
3.2.2 内存补丁(Memory Patch) 61
3.2.3 序列码(Serial Number) 61
3.2.4 注册机(Key Maker) 62
3.3 另类破解 63
3.3.1 内存快照 63
3.3.2 暴力破解 66
3.3.3 溢出攻击 67
3.4 解密者的工作流程 68
3.4.1 研究保护方法 68
3.4.2 脱壳 68
3.4.3 辨别开发工具 68
3.4.4 静态分析 70
3.4.5 动态分析 71
3.4.6 解密工具 72
3.4.7 反编译 72
3.5 软件保护的薄弱环节 73
3.5.1 软件的安装与卸载 73
3.5.2 软件调用动态链接库 73
3.5.3 暴露信息的系统API调用 74
3.5.4 一个被放大的加密点 75
3.5.5 加密点的安排 76
第4章 语言 77
4.1 解释与编译 77
4.1.1 编译 78
4.1.2 解释 79
4.1.3 编译型语言 80
4.1.4 解释型语言 80
4.2 永远的汇编语言 81
4.2.1 各代微处理器的寄存器的区别 81
4.2.2 存储器寻址的实地址方式和保护虚拟地址方式 86
4.2.3 寻址方式概述 92
4.2.4 常用指令概述 96
4.3 Java代码的保护 103
4.3.1 类文件格式 104
4.3.2 Java虚拟机 106
4.3.3 Java的安全性 110
4.3.4 Java类文件的保护 111
4.4 虚拟机保护策略 123
4.4.1 虚拟计算机简介 123
4.4.2 虚拟机保护策略的具体实现 126
4.4.3 如何用TINY来保护软件 138
第5章 外壳 144
5.1 什么是外壳 144
5.2 与壳有关的技术 145
5.3 PE基础知识 149
5.3.1 WIN32可执行程序的加载 150
5.3.2 虚拟地址 150
5.3.3 RVA 150
5.3.4 导出函数表 150
5.3.5 引入函数表及引入函数地址表 151
5.3.6 Section及Section表 151
5.3.7 编译器、Obj文件 152
5.3.8 链接器、Lib文件 152
5.3.9 WIN32 ASM 152
5.3.10 调用方式 153
5.3.11 局部变量全局变量 155
5.3.12 PE文件头 155
5.4 加壳与脱壳 168
5.4.1 壳的识别 168
5.4.2 使用ProcDump实现自动脱壳 170
5.4.3 找入口点(OEP) 170
5.4.4 引入表修复 173
5.4.5 打造自己的外壳 178
5.5 实战自己的外壳 178
5.5.1 PEMaker使用 178
5.5.2 指针、函数指针 184
5.5.3 在程序启动前添加MessageBox 185
5.5.4 在启动时做更多的事 186
5.5.5 Windows程序入口 187
5.5.6 壳的入口函数 190
5.5.7 置换引入函数表实现Hook ExitProcess 196
5.5.8 代码、数据 197
5.5.9 对代码进行异或加密 199
5.5.10 壳内自检 202
5.5.11 基址重定位 206
5.6 关于壳的扩充 225
5.6.1 规避防毒软件 225
5.6.2 增加区块 225
5.6.3 增加程序引用的动态库 225
5.6.4 在壳中应用线程 226
5.6.5 定时访问加密锁 227
5.6.6 利用Sleep实现定时检测 227
5.6.7 WndProc Hook简易法 228
5.6.8 在壳中应用C?? 228
第6章 信息 232
6.1 如何获得用户的身份 232
6.2 什么样的信息是我们需要的 233
6.2.1 获取网卡的MAC地址 233
6.2.2 获取CPU的信息 235
6.2.3 获取硬盘序列号信息 240
6.3 密码学应用 251
6.3.1 密码学的定义 252
6.3.2 密码学的分类 252
6.3.3 常用密码算法介绍 254
6.3.4 密码学的应用 260
6.3.5 密码学的局限性 261
6.4 网络认证 261
第7章 调试 268
7.1 调试工具介绍 268
7.1.1 NuMega公司的SoftICE调试器 268
7.1.2 WinDbg简介 278
7.1.3 国产调试器TRW 294
7.1.4 用户级调试器OllyDebugger 298
7.2 静态分析与反静态分析 305
7.2.1 识别文件信息 306
7.2.2 带有反汇编功能的二进制编辑器 306
7.2.3 反汇编工具 307
7.2.4 花指令 311
7.3 反跟踪 318
7.3.1 调试器检测 318
7.3.2 CC断点的检测、补丁系统动态库 328
7.3.3 API变址调用 329
7.3.4 让SoftICE崩溃的技术 332
7.3.5 Anti UI Debugger 332
7.3.6 Anti Spy++ 333
7.3.7 结构化异常 335
7.4 反补丁 342
7.5 反脱壳 343
7.5.1 一次性代码 343
7.5.2 核内壳 345
7.5.3 代码块动态加解密 348
7.5.4 API重定向 350
7.5.5 APIRedir 351
7.5.6 AdvAPIHook 355
7.5.7 Anti冲击波2000 355
7.6 反加载 356
7.7 Win32 Debug-API 357
7.7.1 Debug-API的使用 357
7.7.2 Debug-API的应用 364
7.8 Monitor监视技术 371
7.8.1 监视技术简介 371
7.8.2 市面常见的监视工具简介 371
第8章 技巧 378
8.1 时间控制的技巧 378
8.2 带有迷惑性的代码 383
8.2.1 分身的字符串 384
8.2.2 捕捉解密者的陷阱 385
8.2.3 虚假的错误信息 386
8.2.4 验证的时机 386
8.3 逻辑的迷宫 387
8.4 消息接口DLL 390
8.5 类加密 394
8.5.1 基类加密 394
8.5.2 简单数据类型加密 396
8.6 用消息隐藏程序的流程 398
第9章 加密锁 401
9.1 加密锁简介 401
9.2 加密锁的历史 403
9.2.1 第一代 逻辑电路加密锁 403
9.2.2 第二代 存储器加密锁 404
9.2.3 第三代 逻辑电路加存储器加密锁 404
9.2.4 第四代 可编程加密锁 405
9.2.5 第五代 智能卡加密锁 405
9.3 加密锁的攻防战 406
9.4 不可解密的加密锁——智能卡带来的革命 408
9.4.1 智能卡简介 408
9.4.2 智能卡为什么可以应用于加密 409
9.4.3 采用智能卡技术的加密锁所带来的技术进步 411
9.4.4 现有的几种智能卡加密锁 412
9.5 加密锁使用的技巧 418
9.5.1 怎样用可编程加密锁加密 418
9.5.2 怎样用智能卡加密锁加密 422
9.5.3 怎样用ROCKEY5虚拟加密锁进行程序模拟保护 430
9.5.4 不良的加密锁加密方案举例及应对方法 431
参考文献 442
猜您喜欢

读书导航