《逆向分析实战》冀云【文字版_PDF电子书_下载】
内容简介:
本书的主要内容为:数据的存储及表示形式、汇编语言入门、熟悉调试工具OllyDbg、PE工具详解、PE文件格式实例(包括加壳与脱壳工具的使用)、十六进制编辑器与反编译工具、IDA与逆向、逆向工具原理实现等。 本书可以作为程序员、安全技术的研究人员、安全技术爱好者阅读。
作者简介:
冀云,对安全技术和逆向的技术有很好的研究,熟悉Windows、Linux等平台上的安全技术,热爱分享技术。写作了《C 黑客编程揭秘与防范》,得到读者的好评。
目 录:
第 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