揭秘数据解密的关键技术

副标题:无

作   者:刘颖东编著

分类号:

ISBN:9787115196705

微信扫一扫,移动浏览光盘

简介

本书一共11章,从逆向工程的介绍开始作为入口点写作,通过向读者讲解逆向工程的相关基本知识后,就进入第2章的游戏资源文件概述,通过第2章的讲解,让读者知道本书接下来利用逆向工程技术剖析游戏资源文件。从第3章开始就进入游戏资源分析的开始,主要讲解的是计算机数据的存储原理。第4章讲解的是一些在游戏领域中常见的多媒体存储格式,让读者知道了解这些格式对后面的文件逆向分析有极大的帮助。第5章讲解的是加密与解密,加密与解密在逆向工程的分析中是不可避免的,只有熟练掌握加密与解密的才能在后面的文件分析中做到游刃有余。第6章讲解的是压缩编码,游戏不可避免使用各种压缩方法来减少资源文件的占用空间,压缩后的文件对逆向工程分析带来了和加密和解密相似的复杂性,同样读者需要掌握多种压缩方式。第7章讲解了一些有助逆向工程的工具,熟悉掌握使用这些工具将大大提供逆向工程的效率。第8章讲解的是游戏文件系统设计的一般方法,研究一样事物首先对这样事物有充分的认识才能知道如何在哪里下手分析。第9章讲解的是游戏资源文件的常见设计格式,这部分是本书的重中之重,就像归纳事物的发展规律和武术中的套路一样,读者如果掌握了这个套路那么面向任何不同的游戏资源文件格式都可以知道大体的存储方式,对逆向分析文件格式有很大帮助。第10章讲解的是验证分析结果的正确性,让读者不仅学会如何分析文件,还要学会自己验证结果,就像科学领域中科学家需要利用各种不同的手段做不同的实验验证自己提出的猜想。第11章讲解的是利用逆向工程手段反汇编游戏的程序或相关的库文件来挖掘一些对逆向文件格式有帮助的资料数据。

目录

第1章 走进数据解密. 1

1.1 数据解密是什么 1

1.1.1 代码逆向工程和数据逆向工程 1

1.2 数据解密的方法 2

1.2.1 黑盒分析法 2

1.2.2 白盒分析法 2

1.2.3 黑盒分析法与白盒分析法的比较 3

1.3 万能的汇编语言 3

1.3.1 为什么选择汇编语言 4

1.3.2 16位和32位的80x86汇编语言 4

1.4 通用寄存器 5

1.4.1 eax、ebx、ecx和edx寄存器 5

1.4.2 eax、ebx、ecx和edx寄存器的用途 5

1.5 变址寄存器 6

1.5.1 esi和edi寄存器 6

1.5.2 esi和edi寄存器的用途 6

1.6 指针寄存器 6

1.6.1 ebp和esp寄存器 7

1.6.2 ebp和esp寄存器的用途 7

1.7 标志寄存器 7

.1.7.1 eflags寄存器 7

1.7.2 eflags寄存器的用途 8

1.8 灵活的寻址方式 8

1.8.1 寻址方式的分类 9

1.8.2 高级语言中的数据结构和80386寻址方式的关系 9

1.9 80386指令 10

1.9.1 intel格式和at&t格式的指令 10

1.9.2 数据传送指令mov、xchg、push、pop 11

1.9.3 地址传送指令 12

1.9.4 算数运算指令 13

1.9.5 逻辑运算指令 15

1.9.6 移位指令 17

1.9.7 条件转移指令 18

1.9.8 函数调用指令 19

1.10 函数调用约定 20

1.10.1 3种常用的调用约定 20

1.10.2 调用约定的参数传递顺序 21

1.11 字节码 21

1.11.1 代码和数据的区别 21

1.11.2 pe文件 22

第2章 识别汇编代码的高级模式 23

2.1 汇编中的常量、指针和变量——c语言中的常量、指针和变量 24

2.1.1 常量、指针和变量的定义 25

2.1.2 常量、指针和变量的实现机制 25

2.2 汇编中的字符串——c语言中的

字符串 27

2.2.1 字符串的定义 27

2.2.2 字符串的实现机制 27

2.3 汇编中的数组——c语言中的数组 29

2.3.1 数组的定义 29

2.3.2 数组的实现机制 30

2.3.3 二维数组的实现机制 32

2.4 汇编中的结构体——c语言中的结构体 34

2.4.1 结构体的定义 34

2.4.2 结构体的实现机制 35

2.5 汇编中的条件分支语句——c语言中的条件分支语句 46

2.5.1 条件分支语句的定义 46

2.5.2 if的实现机制 47

2.5.3 包含复杂表达式的if

语句的实现机制 51

2.5.4 switch语句的实现机制 60

2.6 汇编中的循环——c语言中的循环 69

2.6.1 循环的定义 69

2.6.2 while语句的实现机制 70

2.6.3 do...while语句实现机制 71

2.6.4 for语句的实现机制 73

2.6.5 continue和break的实现机制 74

2.7 汇编中的函数——c语言中的函数 75

2.7.1 函数的定义 75

2.7.2 按值传递的函数的实现机制 76

2.7.3 按地址传递的函数的实现机制 80

2.7.4 函数的返回值实现机制 83

第3章 资源文件简介 87

3.1 资源文件概述 87

3.1.1 将游戏资源文件打包 87

3.1.2 游戏的发动机——游戏引擎 89

3.1.3 游戏的皮肤——图像 89

3.1.4 游戏的声音——音频 90

3.1.5 游戏的导演——脚本 90

3.2 提取游戏资源的利器.. 91

3.2.1 susie32 91

3.2.2 multiex commander 92

3.2.3 game extractor 93

3.2.4 3d ripper 94

3.2.5 rpgviewer 94

3.2.6 gameviewer 94

3.3 逆向数据结构的应用 94

3.3.1 检测数据的安全性 95

3.3.2 增加软件的兼容性 95

3.3.3 挖掘未公开的技术 96

3.3.4 游戏的修改 96

3.3.5 网络协议的分析 97

第4章 揭秘文件数据基础——0和1 98

4.1 文件数据存储原理 98

4.1.1 位 99

4.1.2 字节 99

4.1.3 数据类型 100

4.2 十六进制编辑器介绍 101

4.2.1 winhex功能介绍 101

4.2.2 计算器 102

4.2.3 位置管理器和书签 102

4.2.4 文件同步比较 103

4.2.5 数据解释器 104

4.3 字符串 105

4.3.1 字符串存储原理 105

4.3.2 ascii和unicode 107

4.4 数值的表示方法 108

4.4.1 十六进制表示方法 109

4.4.2 有符号数和无符号数 109

4.5 文件数据的存储顺序 110

4.5.1 little-endian 111

4.5.2 big-endian 112

4.6 数据存储实验 112

第5章 媒体数据格式解析 117

5.1 bmp图像文件格式 117

5.1.1 bmp图像文件介绍 118

5.1.2 bmp图像文件存储结构 118

5.1.3 分析bmp图像文件结构 122

5.2 png图像文件格式 128

5.2.1 png图像文件介绍 128

5.2.2 png图像文件存储结构 128

5.2.3 分析png图像文件结构 134

5.3 3d模型文件介绍 145

5.3.1 3d中的术语 146

5.3.2 x文件介绍 147

5.3.3 x文件存储结构 147

5.3.4 分析静态x文件结构 148

5.3.5 动画原理 154

5.3.6 分析动态x文件结构 155

5.4 md3模型文件格式 165

5.4.1 md3模型文件介绍 165

5.4.2 md3模型文件存储结构 165

5.4.3 分析md3模型文件结构 168

第6章 数据加密vs数据解密 177

6.1 数据加密的基础 177

6.1.1 and运算 177

6.1.2 or运算 178

6.1.3 xor运算 178

6.1.4 not运算 179

6.1.5 shl运算 179

6.1.6 shr运算 180

6.1.7 位运算的应用 180

6.2 游戏中常用的加密算法 181

6.2.1 对称加密和非对称加密 181

6.2.2 对称加/解密和非对称加/解密的区别 182

6.2.3 xor加密 182

6.2.4 xor加密解密分析实例 196

6.2.5 md5加密 202

6.2.6 crc加密 204

6.2.7 blowfish加密 207

6.2.8 tea加密 209

6.3 自定义的加密/解密算法 211

6.3.1 查找主程序中的字符串 212

6.3.2 查找dll的导出函数表 213

6.3.3 使用内联汇编调用加密/解密函数 214

6.3.4 调用dll中的加密/解密函数 229

6.4 实例:分析一个游戏的资源文件密解密方式 242

6.4.1 收集信息 242

6.4.2 详细分析 244

第7章 神奇的数据压缩算法 285

7.1 rle编码的识别 286

7.1.1 rle编码介绍 286

7.1.2 如何识别rle 287

7.2 zlib编码的识别 288

7.2.1 zlib编码介绍 288

7.2.2 如何识别zlib编码 289

7.3 lzss编码的识别 290

7.3.1 lzss编码介绍 290

7.3.2 如何识别lzss编码 290

7.4 lzo编码的识别 296

7.4.1 lzo和minilzo编码介绍 296

7.4.2 如何识别lzo编码 297

7.5 quicklz编码 300

7.5.1 quicklz编码介绍 300

7.5.2 如何识别quicklz 301

7.6 破解未知的压缩编码 302

7.6.1 如何识别数据被压缩了 303

7.6.2 如何破解未知的压缩编码 303

7.6.3 常见的压缩编码特征 304

第8章 分析打包数据存储结构的模式 305

8.1 常见的打包文件的数据结构存储模式 305

8.1.1 目录结构 306

8.1.2 分目录结构 308
8.1.3 外部目录结构 311

8.1.4 数据块结构 312

8.1.5 分数据块结构 314

8.1.6 树型结构 316

8.2 验证常见的数据类型 320

8.2.1 文件大小 321

8.2.2 文件偏移量 321

8.2.3 文件数量 323

8.2.4 文件头标记 324

8.2.5 文件名 324

8.2.6 哈希散列值 325

8.2.7 数据填充 327

8.2.8 验证数据的准确性 328

8.3 打包文件格式分析实例 329

8.3.1 pak打包文件格式分析 329

8.3.2 gpp打包文件格式分析 335

8.3.3 pack打包文件格式分析 339

8.3.4 cck打包文件格式分析 341

8.3.5 pck打包文件格式分析 360

第9章 将游戏窗口化 368

9.1 2d游戏窗口化 368

9.1.1 2d游戏窗口化理论 369

9.1.2 2d游戏窗口化实例 369

9.2 3d游戏窗口化 373

9.2.1 3d游戏窗口化理论 373

9.2.2 3d游戏窗口化实例... 374


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

揭秘数据解密的关键技术
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon