内容推荐 黑客编程和逆向分析是计算机安全从业者需要掌握的两项基本功,随着各大企业对安全技术的日益重视,工程师在这方面的学习需求也在持续增长。 本书共11章,既包括黑客编程的内容,如数据的存储及表示形式、汇编语言入门;又包括逆向分析的知识,如熟悉调试工具OD、PE工具详解、PE文件格式实例(包括加壳与脱壳工具的使用)、十六进制编辑器与反编译工具、IDA与逆向、逆向工具的原理及实现、安卓逆向分析。此外,本书还介绍了计算机安全的新技术,如DEX文件格式解析和Dalvik指令解析等。 本书既可以作为网络编程人员、安全技术研究人员和安全技术爱好者的参考书,又可以作为大专院校计算机相关专业的教学用书或相关培训机构的教材。 目录 第1章 数据的存储及表示形式 1.1 进制及进制的转换 1.1.1 现实生活中的进制与计算机中的二进制 1.1.2 进制的定义 1.1.3 进制的转换 1.2 数据宽度、字节序和ASCII 1.2.1 数据的宽度 1.2.2 数值的表示范围 1.2.3 字节序 1.2.4 ASCII 1.3 在OllyDbg中查看数据 1.4 编程判断主机字节序 1.4.1 字节序相关函数 1.4.2 编程判断主机字节序 1.5 总结 第2章 汇编语言入门 2.1 x86汇编语言介绍 2.1.1 寄存器 2.1.2 在OD中认识寄存器 2.2 常用汇编指令集 2.2.1 指令介绍 2.2.2 常用指令介绍 2.3 寻址方式 2.4 总结 第3章 熟悉调试工具OD 3.1 认识OD调试环境 3.1.1 启动调试 3.1.2 熟悉OD窗口 3.2 OD中的断点及跟踪功能 3.2.1 OD中设置断点的方法 3.2.2 OD中跟踪代码的方法 3.3 OD中的查找功能和编辑功能 3.3.1 OD中的查找功能 3.3.2 OD中的修改和保存功能 3.4 OD中的插件功能 3.4.1 OD的常用插件介绍 3.4.2 OD插件脚本编写 3.4.3 OD插件的开发 3.5 总结 第4章 PE工具详解 4.1 常用PE工具介绍 4.1.1 PE工具 4.1.2 Stud_PE工具 4.1.3 PEiD工具 4.1.4 LordPE工具 4.2 PE文件格式详解 4.2.1 PE文件格式概述 4.2.2 详解PE文件格式 4.2.3 PE文件格式的3种地址 4.3 数据目录相关结构详解 4.3.1 导入表 4.3.2 导出表 4.3.3 重定位表 4.4 总结 第5章 PE文件格式实例 5.1 手写PE文件 5.1.1 手写PE文件的准备工作 5.1.2 用十六进制字节完成PE文件 5.2 手动压缩PE文件 5.2.1 修改压缩节区 5.2.2 节表合并 5.2.3 结构重叠 5.3 PE文件格式相关工具 5.3.1 增加节区 5.3.2 资源编辑 5.4 加壳与脱壳工具 5.4.1 什么是壳 5.4.2 简单壳的原理 5.4.3 加壳工具与脱壳工具的使用 5.5 PE32+简介 5.5.1 文件头 5.5.2 可选头 5.6 总结 第6章 十六进制编辑器与反编译工具 6.1 C32Asm 6.1.1 文件的打开方式 6.1.2 反汇编模式 6.1.3 十六进制模式 6.2 WinHex 6.2.1 内存搜索功能 6.2.2 使用模板解析数据 6.2.3 完成一个简单的模版 6.3其他十六进制编辑器 6.3.1 UltraEdit简介 6.3.2 010 Editor简介 6.4 反编译工具介绍 6.4.1 DeDe反编译工具 6.4.2 VB反编译工具 6.4.3 .NET反编译工具 6.4.4 Java反编译工具 6.5 总结 第7章 IDA与逆向 7.1 IDA工具介绍 7.1.1 IDA的启动与关闭 7.1.2 IDA常用界面介绍 7.1.3 IDA的脚本功能 7.2 C语言代码逆向基础 7.2.1 函数的识别 7.2.2 if…else…结构分析 7.2.3 switch…case…default结构分析 7.2.4 循环结构分析 7.3 总结 第8章 逆向工具的原理及实现 8.1 PE工具的开发 8.1.1 GetProcAddress函数的使用 8.1.2 GetProcAddress函数的实现 8.2 调试工具的开发 8.2.1 常见的3种断点 8.2.2 调试API函数及相关结构体 8.2.3 打造一个密码显示器 8.3 总结 第9章 安卓逆向分析 9.1 安卓开发环境的搭建 9.1.1 JDK的安装 9.1.2 Android Studio的安装 9.1.3 Android虚拟设备的创建 9.2 创建第一个Android App 9.2.1 创建一个HelloWorld程序 9.2.2 Android项目结构简介 9.2.3 为Android程序添加简单的功能 9.3 简单逆向安卓程序 9.3.1 Android Killer工具 9.3.2 修改app-release文件 9.4 Android Studio调试Smali代码 9.4.1 Smalidea插件的安装 9.4.2 调试Smali代码 9.5 Android App其他逆向工具简介 9.5.1 JEB工具 9.5.2 jadx工具 9.5.3 Android逆向助手 9.6 总结 第10章 DEX文件格式解析 10.1 DEX文件解析 10.1.1 准备一个待解析的DEX文件 10.1.2 DEX文件格式详解 10.2 实现DEX文件格式解析工具 10.2.1 解析工具所需的结构体 10.2.2 解析DEX文件 10.3 小结 第11章 Dalvik指令解析 11.1 Smali文件结构 11.1.1 文件结构 11.1.2 数据类型 11.1.3 函数定义 11.2 Smali指令介绍 11.2.1 Smai格式介绍 11.2.2 常用指令分类 11.2.3 代码阅读 11.3 完成DEX文件格式最后部分的解析 11.3.1 DexCode结构体的回顾 11.3.2 字节码转Smali指令 11.3.3 反汇编功能的实现 11.4 总结 参考文献 |