逆向分析实战pdf

图书网 2019年7月29日21:24:20
评论
2.1K
摘要

本书是《C++黑客编程揭秘与防范》的姊妹篇,本书同样是帮助无基础的读者能够快速入门逆向工具使用的书籍,它弥补了《C++黑客编程揭秘与防范》中没有介绍逆向工具的不足。
本书将使初读者可以快速掌握OD、IDA等常用主流逆向工具的使用,并了解和熟悉逆向工具的工作原理,为以后深入学习逆向知识打下良好的基础。

逆向分析实战 内容简介

本书的主要内容为:数据的存储及表示形式、汇编语言入门、熟悉调试工具OllyDbg、PE工具详解、PE文件格式实例(包括加壳与脱壳工具的使用)、十六进制编辑器与反编译工具、IDA与逆向、逆向工具原理实现等。

本书可以作为程序员、安全技术的研究人员、安全技术爱好者阅读。

逆向分析实战 目录

第 1章 数据的存储及表示形式 1

1.1 进制及进制的转换 1

1.1.1 现实生活中的进制与计算机的二进制 1

1.1.2 进制的定义 2

1.1.3 进制的转换 2

1.2 数据宽度、字节序和ASCII码 4

1.2.1 数据的宽度 4

1.2.2 数值的表示范围 4

1.2.3 字节序 5

1.2.4 ASCII码 6

1.3 在OD中查看数据 6

1.4 编程判断主机字符序 11

1.4.1 字节序相关函数 11

1.4.2 编程判断主机字节序 11

1.5 总结 13

第 2章 汇编语言入门 14

2.1 x86汇编语言介绍 14

2.1.1 寄存器 15

2.1.2 在OD中认识寄存器 19

2.2 常用汇编指令集 20

2.2.1 指令介绍 20

2.2.2 常用指令介绍 21

2.3 寻址方式 36

2.4 总结 37

第3章 熟悉调试工具OllyDbg 39

3.1 认识OD调试环境 39

3.1.1 启动调试 39

3.1.2 熟悉OD窗口 42

3.2 OD中的断点及跟踪功能 46

3.2.1 OD中设置断点的方法 47

3.2.2 OD中跟踪代码的介绍 52

3.3 OD中的查找功能和编辑功能 53

3.3.1 OD的搜索功能 53

3.3.2 OD修改的编辑功能 55

3.4 OD中的插件功能 56

3.4.1 OD常用插件介绍 56

3.4.2 OD插件脚本编写 58

3.4.3 OD插件的开发 59

3.5 总结 63

第4章 PE工具详解 64

4.1 常用PE工具介绍 64

4.1.1 PE工具 64

4.1.2 Stud_PE介绍 65

4.1.3 PEiD介绍 66

4.1.4 LordPE介绍 66

4.2 PE文件格式详解 67

4.2.1 PE文件结构全貌介绍 68

4.2.2 详解PE文件结构 70

4.2.3 PE结构的三种地址 84

4.3 数据目录相关结构详解 90

4.3.1 导入表 91

4.3.2 导出表 104

4.3.3 重定位表 110

4.4 总结 118

第5章 PE文件格式实例 119

5.1 手写PE文件 119

5.1.1 手写PE文件的准备工作 119

5.1.2 用十六进制字节完成PE文件 120

5.2 手工对PE文件进行减肥 132

5.2.1 修改压缩节区 132

5.2.2 节表合并 135

5.2.3 结构重叠 140

5.2.4 小结 148

5.3 PE结构相关工具 148

5.3.1 增加节区 148

5.3.2 资源编辑 149

5.4 加壳与脱壳工具的使用 154

5.4.1 什么是壳 154

5.4.2 简单壳的原理 155

5.4.3 加壳工具与脱壳工具的使用 166

5.5 PE32+简介 180

5.5.1 文件头 180

5.5.2 可选头 181

5.6 总结 182

第6章 十六进制编辑器与反编译工具 183

6.1 C32Asm 183

6.1.1 文件的打开方式 183

6.1.2 反汇编模式 185

6.1.3 十六进制模式 189

6.2 WinHex 193

6.2.1 内存搜索功能 194

6.2.2 使用模板解析数据 196

6.2.3 完成一个简单的模板 198

6.3 其他十六进制编辑器 200

6.3.1 UltraEdit简介 200

6.3.2 010Editor简介 201

6.4 反编译工具介绍 202

6.4.1 DeDe反编译工具 202

6.4.2 VB反编译工具 206

6.4.3 .NET反编译工具 208

6.4.4 Java反编译工具 211

6.5 总结 211

第7章 IDA与逆向 213

7.1 IDA工具介绍 213

7.1.1 IDA的启动与关闭 213

7.1.2 IDA常用界面介绍 216

7.1.3 IDA的脚本功能 228

7.2 C语言代码逆向基础 231

7.2.1 函数的识别 232

7.2.2 if…else…结构分析 242

7.2.3 switch结构分析 244

7.2.4 循环结构分析 247

7.3 总结 252

第8章 逆向工具原理实现 253

8.1 PE工具的开发 253

8.1.1 GetProcAddress函数的使用 253

8.1.2 GetProcAddress函数的实现 254

8.2 调试工具的开发 238

8.2.1 常见的三种断点 259

8.2.2 调试API函数及相关结构体介绍 262

8.2.3 打造一个密码显示器 273

8.3 总结 277

参考文献 278

逆向分析实战 精彩文摘

了解进制的概念及进制的转换是学习逆向的基础,因为计算机使用的进制是二进制,它又不同于我们现实生活中使用的十进制,因此我们必须学习不同的进制及进制之间的转换。

1.1.1 现实生活中的进制与计算机的二进制

我们在现实生活中会接触到多种多样的进制,通常见到的有十进制、十二进制和二十四进制等。下面分别对这几种进制进行举例说明。

十进制是每个人从上学就开始接触和学习的进制表示方法。所谓的十进制,就是逢十进一,最简单的例子就是 9+1=10。这个无需过多解释。

十二进制也是我们日常生活中常见的表示方法。所谓的十二进制,就是逢十二进一,例如 12 个月为 1 年,13 个月就是 1 年 1 个月。

二十四进制也是我们日常生活中常见的表示方法。所谓的二十四进制,就是逢二十四进一,例如 24 小时为 1 天,25 小时就是 1 天 1 小时。

介绍了以上现实生活中的例子后,我们再来说说计算机中的二进制。根据前面各种进制的解释,我们可以想到,二进制就是逢二进一。这里举个不太恰当的例子,例如 2 斤就是 1 公斤。

图书网:逆向分析实战pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

程序设计

重构 改善既有代码的设计(中文版)pdf

《重构:改善既有代码的设计》(中文版)所提的这些重构准则将帮助你一次一小步地修改你的代码,这就减少了过程中的风险。很快你就会把这些重构准则和其名称加入自己的开发词典中,并且朗朗上口...
程序设计

数据结构 C语言版 第2版pdf

适读人群 :普通高校电子信息大类本科生学习、考研,同时也适合零售和培训。 采用“案例驱动”的编写模式。书中结合实际应用,将各章按照“案例引入——数据结构及其操作——案例分析与实现”...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: