揭秘数据解密的关键技术
分類: 图书,计算机/网络,信息安全,
作者: 刘颖东编著
出 版 社: 人民邮电出版社
出版时间: 2009-4-1字数:版次: 1页数: 394印刷时间:开本: 16开印次:纸张:I S B N : 9787115196705包装: 平装编辑推荐
学数据解密,从这里开始……
内容简介
本书是一本以游戏资源文件格式为研究对象的数据逆向工程的技术书籍,主要讲解如何分析和研究自定义文件格式的数据结构。本书内容包含反汇编的阅读和理解,数据在计算机中的存储原理,常用媒体格式的解析,加密和解密的识别和分析,数据压缩的特征识别,打包文件格式的识别和游戏窗口化的方法。本书对每一个问题都给出了详细和完整的分析过程,力求用最通俗和简单的方法让读者学会分析和研究自定义文件格式。
本书适合对数据解密、游戏资源提取、软件逆向工程感兴趣的读者以及广大编程爱好者阅读。
作者简介
刘颍东:网名“小猫”,擅长逆向工程与游戏开发,从接触反汇编开始便一发不收拾,对操作系统底层控制有强烈的征服欲望,现致力于研究嵌入式操作系统的开发。
目录
第1章 走进数据解密
1.1 数据解密是什么
1.1.1 代码逆向工程和数据逆向工程
1.2 数据解密的方法
1.2.1 黑盒分析法
1.2.2 白盒分析法
1.2.3 黑盒分析法与白盒分析法的比较
1.3 万能的汇编语言
1.3.1 为什么选择汇编语言
1.3.2 16位和32位的80x86汇编语言
1.4 通用寄存器
1.4.1 EAX、EBX、ECX和EDX寄存器
1.4.2 EAX、EBX、ECX和EDX寄存器的用途
1.5 变址寄存器
1.5.1 ESI和EDI寄存器
1.5.2 ESI和EDI寄存器的用途
1.6 指针寄存器
1.6.1 EBP和ESP寄存器
1.6.2 EBP和ESP寄存器的用途
1.7 标志寄存器
1.7.1 EFLAGS寄存器
1.7.2 EFLAGS寄存器的用途
1.8 灵活的寻址方式
1.8.1 寻址方式的分类
1.8.2 高级语言中的数据结构和80386寻址方式的关系
1.9 80386指令
1.9.1 Intel格式和AT&T格式的指令
1.9.2 数据传送指令MOV、XCHG、PUSH、POP
1.9.3 地址传送指令
1.9.4 算数运算指令
1.9.5 逻辑运算指令
1.9.6 移位指令
1.9.7 条件转移指令
1.9.8 函数调用指令
1.10 函数调用约定
1.10.1 3种常用的调用约定
1.10.2 调用约定的参数传递顺序
1.11 字节码
1.11.1 代码和数据的区别
1.11.2 PE文件
第2章 识别汇编代码的高级模式
2.1 汇编中的常量、指针和变量——C语言中的常量、指针和变量
2.1.1 常量、指针和变量的定义
2.1.2 常量、指针和变量的实现机制
2.2 汇编中的字符串——C语言中的字符串
……
第3章 资源文件简介
第4章 揭秘文件数据基础——0和1
第5章 媒体数据格式解析
第6章 数据加密vs数据解密
第7章 神奇的数据压缩算法
第8章 分析打包数据存储结构的模式
第9章 将游戏窗口化
书摘插图
第1章 走进数据解密
1.2 数据解密的方法
1.2.3 黑盒分析法与白盒分析法的比较
通常如果使用黑盒分析法能获取文件的数据结构就不会使用白盒分析法,因为一般来说使用白盒分析法需要破解人员具备一定的汇编知识和经验,对于新手来说比较困难,但对于有经验的人员来说白盒分析法往往是解决问题的万能方法。很多时候通过黑盒分析法无法得到有用的信息时,惟一的办法就是进行白盒分析了。
白盒分析也就是俗称的反汇编,一般不会对数据进行反汇编,因为对数据进行反汇编是没有意义的,反汇编针对的是使用文件数据的程序。解密者通过分析、跟踪程序的反汇编代码,定位到程序读取或写入数据的代码段位置,通过分析反汇编代码研究文件的数据结构。
现在的程序大多数都使用了强悍的加密壳保护自己,直接反汇编加了壳的程序是没意义的,解密者通常需要自行将加了壳的程序脱壳并修复后才能正常反汇编分析程序,而脱壳这一环节无形中又增加了解密文件数据结构的难度。
如果为了锻炼自身的计算机技能水平,想要深入学习计算机编程,那么学习汇编、看懂反汇编是必经之路,如图1-2所示为使用白盒分析法在OllyICE中通过反汇编分析程序的指令。
……