逆向工程实战txt,chm,pdf,epub,mobi下载 作者:[美] Bruce Dang/[法] Alexandre Gazet/[美] Elias Bachaalany/[法] Sébastien Josse 出版社: 人民邮电出版社 原作名: Practical Reverse Engineering 译者:单 业 出版年: 2015-8 页数: 292 定价: 59.00元 装帧: 平装 ISBN: 9787115388933 内容简介 · · · · · ·本书是一本涵盖x86、x64和ARM操作系统的逆向工程类图书,由浅入深地讲解了包括Windows内核模式代码的恶意软件和驱动程序、虚拟机保护技术等内容。作者通过大量真实案例和示例,提供了系统化的解决方案。 作者简介 · · · · · ·作者简介: Bruce Dang 微软高级安全开发工程经理,专注于Windows内核和逆向工程领域。负责待发布产品的安全技术,之前负责处理报告给微软的安全漏洞。曾在RSA、BlackHat Vegas、BlackHat Tokyo、Chaos Computer Club、REcon和许多其他行业会议上发言。 Alexandre Gazet Quarkslab 高级安全研究员,专注于逆向工程和软件保护。Alexandre曾在多个会议上发言,包括HITB Kuala Lumpur(2009)和REcon Montreal(2010及2011)。 Elias Bachaalany 微软软件安全工程师。在过去的14年中,他曾做过程序员、逆向工程师、自由技术写作者,偶尔也进行逆向工程的培训工作。Elias曾在REcon Montreal上有过两次发言(2012... 目录 · · · · · ·第1章 x86与x64 11.1 寄存器组与数据类型 1 1.2 指令集 3 1.2.1 语法 3 1.2.2 数据移动 4 1.3 练习 9 · · · · · ·() 第1章 x86与x64 1 1.1 寄存器组与数据类型 1 1.2 指令集 3 1.2.1 语法 3 1.2.2 数据移动 4 1.3 练习 9 1.3.1 算术运算 9 1.3.2 栈操作与函数调用 11 1.4 练习 14 1.5 系统机制 21 1.5.1 地址转换 21 1.5.2 中断与异常 23 1.6 综合练习 23 1.7 练习 29 1.8 x64 30 1.8.1 寄存器组与数据类型 30 1.8.2 数据移动 31 1.8.3 规范地址 31 1.8.4 函数调用 31 1.9 练习 32 第2章 ARM 33 2.1 基本特性 34 2.2 数据类型与寄存器 35 2.3 系统级控制与设置 37 2.4 指令集介绍 38 2.5 数据加载与存储 39 2.5.1 LDR与STR 39 2.5.2 LDR的其他用途 42 2.5.3 LDM与STM 43 2.5.4 PUSH与POP 46 2.6 函数与函数调用 48 2.7 算术运算 50 2.8 分支跳转与条件执行 51 2.8.1 Thumb状态 54 2.8.2 switch-case 55 2.9 杂项 56 2.9.1 JIT与SMC 56 2.9.2 同步原语 57 2.9.3 系统服务与机制 57 2.9.4 指令 59 2.10 综合练习 59 2.11 下一步 65 2.12 练习 65 第3章 Windows内核 73 3.1 Windows基础 73 3.1.1 内存布局 73 3.1.2 处理器初始化 74 3.1.3 系统调用 77 3.1.4 中断请求级 88 3.1.5 内存池 89 3.1.6 MDL 90 3.1.7 进程与线程 90 3.1.8 执行上下文 92 3.1.9 内核同步原语 93 3.2 列表 94 3.2.1 实现细节 94 3.2.2 综合练习 100 3.2.3 练习 104 3.3 异步与乱序执行 108 3.3.1 系统线程 108 3.3.2 work item 109 3.3.3 APC 111 3.3.4 DPC 114 3.3.5 定时器 118 3.3.6 进程与线程回调 120 3.3.7 完成例程 120 3.4 I/O请求包 122 3.5 驱动程序结构 123 3.5.1 入口点 124 3.5.2 驱动程序与设备对象 125 3.5.3 IRP 处理 126 3.5.4 用户内核通信常用机制 127 3.5.5 系统机制杂项 128 3.6 综合练习 130 3.6.1 x86后门程序实例 131 3.6.2 x64后门程序实例 145 3.7 下一步 151 3.8 练习 151 3.8.1 建立自信,巩固知识 152 3.8.2 探索与知识扩展 153 3.8.3 驱动分析实战 155 第4章 调试与自动化 156 4.1 调试工具与基本命令 156 4.1.1 设置符号路径 157 4.1.2 调试器窗口 158 4.1.3 表达式求值 158 4.1.4 流程控制与Debug 事件 162 4.1.5 寄存器、内存与符号 165 4.1.6 断点 173 4.1.7 查看进程与模块 175 4.1.8 杂项命令 178 4.2 编写调试工具脚本 179 4.2.1 伪寄存器 180 4.2.2 别名 182 4.2.3 语言 187 4.2.4 脚本文件 198 4.2.5 像使用函数一样使用脚本 201 4.2.6 调试脚本示例 206 4.3 使用SDK 212 4.3.1 概念 213 4.3.2 编写调试工具扩展 216 4.4 有用的扩展、工具和资源 218 第5章 代码混淆 220 5.1 混淆技术概览 221 5.1.1 混淆的本质:一个热身例子 221 5.1.2 基于数据的混淆技术 224 5.1.3 基于控制的混淆技术 227 5.1.4 同时使用控制流与数据流混淆技术 232 5.1.5 通过代码模糊获得安全性 235 5.2 解混淆技术概述 236 5.2.1 解混淆的本质:逆变换 236 5.2.2 解混淆工具 240 5.2.3 解混淆实践 254 5.3 案例研究 267 5.3.1 第一印象 267 5.3.2 分析处理函数语义 269 5.3.3 符号执行 271 5.3.4 完成挑战 272 5.3.5 最后的想法 274 5.4 练习 274 5.5 参考文献 274 附录 实例名称与相应的SHA1散列值 278 · · · · · · () "逆向工程实战"试读 · · · · · ·x86是基于Intel 8086处理器的小端(little-endian)体系结构。本书中讨论x86是指《Intel 64 和 IA-32 体系结构软件开发人员手册》中定义的Intel体系结构(IA-32)的32位实现。一般而言,它可以在两种操作模式下运行:实模式和保护模式。实模式是指处理器刚刚上电后只支持16位指令集的状态。保护模式是指处理器支持虚拟内存、分页以及其他功能的状态,也是运行当代操作系统的状态。这个体.. |
细腻厚实
很好,家人喜欢,很好!
期待内容,好想赶紧开始看
实在太喜欢了