封面
版权信息
作者简介
译者序
前言
关于作者
关于技术撰稿人
关于技术编辑
第1章 反编译和架构
1.1 反编译
1.1.1 反编译何时有用
1.1.2 反编译JIT语言
1.1.3 保护JIT语言
1.2 实验:反编译
1.2.1 技能
1.2.2 要点
1.3 架构
1.3.1 计算机架构
1.3.2 汇编
1.4 总结
第2章 x86汇编:数据、模式、寄存器和内存访问
2.1 x86简介
2.2 汇编语法
2.3 数据表示
2.3.1 数字系统的基数
2.3.2 位、字节和字
2.3.3 处理二进制数
2.4 寄存器
2.4.1 x86中的寄存器
2.4.2 寄存器的使用
2.5 内存访问
2.6 寻址模式
2.6.1 绝对寻址
2.6.2 间接寻址
2.6.3 基址加偏移量寻址
2.6.4 索引寻址
2.6.5 基址-索引寻址
2.7 总结
第3章 x86汇编:指令
3.1 x86指令格式
3.2 x86指令
- APP免费
3.2.1 mov
- APP免费
3.2.2 inc、dec
- APP免费
3.2.3 add、sub
- APP免费
3.2.4 mul
- APP免费
3.2.5 div
- APP免费
3.2.6 and、or、xor
- APP免费
3.2.7 not
- APP免费
3.2.8 shr、shl
- APP免费
3.2.9 sar、sal
- APP免费
3.2.10 nop
- APP免费
3.2.11 lea
- APP免费
3.3 整合所有内容
- APP免费
3.4 常见的x86指令错误
- APP免费
3.5 总结
- APP免费
第4章 构建和运行汇编程序
- APP免费
4.1 输出
- APP免费
4.1.1 控制引脚
- APP免费
4.1.2 由操作系统处理与显卡的交互
- APP免费
4.2 系统调用
- APP免费
4.2.1 sys_write
- APP免费
4.2.2 sys_exit
- APP免费
4.2.3 输出字符串
- APP免费
4.3 汇编和链接
- APP免费
4.3.1 Linux中的汇编与链接
- APP免费
4.3.2 编写汇编程序
- APP免费
4.4 objdump
- APP免费
4.5 实验:Hello World
- APP免费
4.5.1 技能
- APP免费
4.5.2 要点
- APP免费
4.6 ASCII
- APP免费
4.6.1 识别ASCII字符串
- APP免费
4.6.2 ASCII操作技巧
- APP免费
4.7 总结
- APP免费
第5章 理解条件码
- APP免费
5.1 条件码
- APP免费
5.1.1 eflags
- APP免费
5.1.2 影响状态标志的操作
- APP免费
5.2 总结
- APP免费
第6章 分析和调试汇编代码
- APP免费
6.1 二进制分析
- APP免费
6.1.1 静态分析与动态分析
- APP免费
6.1.2 调试
- APP免费
6.2 断点
- APP免费
6.2.1 软件断点
- APP免费
6.2.2 硬件断点
- APP免费
6.3 gdb
- APP免费
6.4 段错误
- APP免费
6.5 实验:鲨鱼模拟器3000
- APP免费
6.5.1 技能
- APP免费
6.5.2 要点
- APP免费
6.6 消除噪声
- APP免费
6.7 总结
- APP免费
第7章 函数和控制流
- APP免费
7.1 控制流
- APP免费
7.1.1 指令指针
- APP免费
7.1.2 控制流指令
- APP免费
7.2 x86中的逻辑结构
- APP免费
7.2.1 if(...){...}
- APP免费
7.2.2 if(...){...}else{...}
- APP免费
7.2.3 do{...}while (...);
- APP免费
7.2.4 while (...){...}
- APP免费
7.2.5 for (...;...;...){...}
- APP免费
7.2.6 switch (...){...}
- APP免费
7.2.7 continue
- APP免费
7.2.8 break
- APP免费
7.2.9 &&
- APP免费
7.2.10 ||
- APP免费
7.3 栈
- APP免费
7.3.1 栈是如何工作的
- APP免费
7.3.2 x86栈
- APP免费
7.4 函数调用与栈帧
- APP免费
7.4.1 x86中的函数
- APP免费
7.4.2 栈分析
- APP免费
7.4.3 调用约定
- APP免费
7.4.4 cdecl
- APP免费
7.4.5 栈帧
- APP免费
7.4.6 宏观程序
- APP免费
7.4.7 需要记住的事情
- APP免费
7.5 总结
- APP免费
第8章 编译器和优化器
- APP免费
8.1 寻找目标代码入口点
- APP免费
8.2 编译器
- APP免费
8.2.1 优化
- APP免费
8.2.2 剥离
- APP免费
8.2.3 链接
- APP免费
8.3 总结
- APP免费
第9章 逆向工程:工具和策略
- APP免费
9.1 实验:RE Bingo
- APP免费
9.1.1 技能
- APP免费
9.1.2 要点
- APP免费
9.2 基础侦察
- APP免费
9.2.1 objdump
- APP免费
9.2.2 ltrace和strace
- APP免费
9.2.3 strings
- APP免费
9.2.4 Dependency Walker
- APP免费
9.3 逆向工程的策略
- APP免费
9.3.1 寻找感兴趣的区域
- APP免费
9.3.2 迭代注释代码
- APP免费
9.4 总结
- APP免费
第10章 破解:工具和策略
- APP免费
10.1 密钥检查器
- APP免费
10.1.1 不好的方法
- APP免费
10.1.2 合理的方法
- APP免费
10.1.3 更好的方法
- APP免费
10.1.4 最佳方法
- APP免费
10.1.5 其他的建议
- APP免费
10.2 密钥生成器
- APP免费
10.2.1 为什么要创建密钥生成器
- APP免费
10.2.2 密钥生成的原理
- APP免费
10.2.3 破解各种类型的密钥检查
- APP免费
10.2.4 对抗密钥生成器
- APP免费
10.3 实验:密钥生成器
- APP免费
10.3.1 技能
- APP免费
10.3.2 要点
- APP免费
10.4 Procmon
- APP免费
10.4.1 示例:Notepad.exe
- APP免费
10.4.2 怎样用Procmon辅助逆向工程和破解
- APP免费
10.5 Resource Hacker
- APP免费
10.5.1 示例
- APP免费
10.5.2 小实验:Windows计算器
- APP免费
10.6 打补丁
- APP免费
10.6.1 打补丁与密钥生成
- APP免费
10.6.2 在哪里打补丁
- APP免费
10.6.3 nop指令
- APP免费
10.7 其他调试器
- APP免费
10.7.1 OllyDbg
- APP免费
10.7.2 Immunity
- APP免费
10.7.3 x86dbg
- APP免费
10.7.4 WinDbg
- APP免费
10.8 使用Immunity调试工具进行调试
- APP免费
10.8.1 Immunity:汇编代码
- APP免费
10.8.2 Immunity:模块
- APP免费
10.8.3 Immunity:字符串
- APP免费
10.8.4 Immunity:运行程序
- APP免费
10.8.5 Immunity:异常
- APP免费
10.8.6 Immunity:重写程序
- APP免费
10.9 实验:使用Immunity进行破解
- APP免费
10.9.1 技能
- APP免费
10.9.2 要点
- APP免费
10.10 总结
- APP免费
第11章 打补丁和高级工具
- APP免费
11.1 在010编辑器中打补丁
- APP免费
11.2 CodeFusion补丁
- APP免费
11.3 Cheat Engine
- APP免费
11.3.1 Cheat Engine:打开进程
- APP免费
11.3.2 Cheat Engine:查看内存
- APP免费
11.3.3 Cheat Engine:字符串引用
- APP免费
11.3.4 Cheat Engine:重写程序
- APP免费
11.3.5 Cheat Engine:复制字节
- APP免费
11.3.6 Cheat Engine:获取地址
- APP免费
11.4 实验:破解LaFarge
- APP免费
11.4.1 技能
- APP免费
11.4.2 要点
- APP免费
11.5 IDA
- APP免费
11.5.1 IDA:字符串
- APP免费
11.5.2 IDA:基本块
- APP免费
11.5.3 IDA:函数和变量
- APP免费
11.5.4 IDA:注释
- APP免费
11.5.5 IDA:路径
- APP免费
11.6 IDA补丁
- APP免费
11.7 实验:IDA逻辑流程
- APP免费
11.7.1 技能
- APP免费
11.7.2 要点
- APP免费
11.8 Ghidra
- APP免费
11.9 实验:使用IDA进行破解
- APP免费
11.9.1 技能
- APP免费
11.9.2 要点
- APP免费
11.10 总结
- APP免费
第12章 防御
- APP免费
12.1 混淆技术
- APP免费
12.1.1 评估混淆技术
- APP免费
12.1.2 自动化混淆
- APP免费
12.1.3 混淆器
- APP免费
12.1.4 攻克混淆器
- APP免费
12.2 实验:混淆技术
- APP免费
12.2.1 技能
- APP免费
12.2.2 要点
- APP免费
12.3 反调试
- APP免费
12.3.1 IsDebuggerPresent()
- APP免费
12.3.2 调试寄存器
- APP免费
12.3.3 读时间戳计数器
- APP免费
12.3.4 无效CloseHandle()调用
- APP免费
12.3.5 目录扫描
- APP免费
12.3.6 攻击性反调试
- APP免费
12.3.7 攻克反调试技术
- APP免费
12.4 实验:反调试
- APP免费
12.4.1 技能
- APP免费
12.4.2 要点
- APP免费
12.5 总结
- APP免费
第13章 高级防御技术
- APP免费
13.1 防篡改技术
- APP免费
13.1.1 哈希
- APP免费
13.1.2 签名
- APP免费
13.1.3 水印
- APP免费
13.1.4 软件守护
- APP免费
13.2 加壳技术
- APP免费
13.2.1 加壳器是如何工作的
- APP免费
13.2.2 这是强大的保护机制吗
- APP免费
13.2.3 破解加壳技术
- APP免费
13.2.4 PEiD
- APP免费
13.3 实验:检测和脱壳
- APP免费
13.3.1 技能
- APP免费
13.3.2 要点
- APP免费
13.4 虚拟化技术
- APP免费
13.4.1 代码虚拟化是如何工作的
- APP免费
13.4.2 分层虚拟化
- APP免费
13.4.3 虚拟化存在的问题
- APP免费
13.4.4 这是强大的保护机制吗
- APP免费
13.4.5 破解虚拟化技术
- APP免费
13.5 加密器/解密器
- APP免费
13.5.1 这种保护机制有用吗
- APP免费
13.5.2 攻克加密器
- APP免费
13.6 总结
- APP免费
第14章 检测与预防
- APP免费
14.1 循环冗余校验
- APP免费
14.2 代码签名
- APP免费
14.2.1 如何进行代码签名
- APP免费
14.2.2 如何验证已签名的应用程序
- APP免费
14.2.3 代码签名有效吗
- APP免费
14.2.4 代码签名与循环冗余校验
- APP免费
14.2.5 这是强大的保护机制吗
- APP免费
14.3 RASP
- APP免费
14.3.1 钩子函数
- APP免费
14.3.2 RASP的风险
- APP免费
14.3.3 这是强大的保护机制吗
- APP免费
14.4 白名单
- APP免费
14.4.1 如何运行白名单
- APP免费
14.4.2 这是强大的保护机制吗
- APP免费
14.5 黑名单
- APP免费
14.6 远程认证
- APP免费
14.6.1 远程认证示例
- APP免费
14.6.2 这是强大的保护机制吗
- APP免费
14.7 实验:进程监控
- APP免费
14.7.1 技能
- APP免费
14.7.2 要点
- APP免费
14.8 总结
- APP免费
第15章 法律
- APP免费
15.1 影响逆向工程的美国法律
- APP免费
15.1.1 《数字千年版权法》
- APP免费
15.1.2 《计算机欺诈和滥用法案》
- APP免费
15.1.3 《版权法》
- APP免费
15.1.4 重要法庭判例
- APP免费
15.1.5 合理使用
- APP免费
15.1.6 DMCA研究免责
- APP免费
15.1.7 合法性
- APP免费
15.2 总结
- APP免费
第16章 高级技术
- APP免费
16.1 时间旅行调试
- APP免费
16.2 二进制插桩
- APP免费
16.3 中间表示
- APP免费
16.4 反编译
- APP免费
16.5 自动化结构恢复
- APP免费
16.6 可视化
- APP免费
16.7 去混淆
- APP免费
16.8 定理证明器
- APP免费
16.9 符号分析
- APP免费
16.10 总结
- APP免费
第17章 附加话题
- APP免费
17.1 栈溢出
- APP免费
17.1.1 shellcode
- APP免费
17.1.2 栈溢出与栈保护
- APP免费
17.2 关联C代码与x86汇编代码
- APP免费
17.2.1 在x86代码中使用C函数
- APP免费
17.2.2 在C代码中使用x86函数
- APP免费
17.2.3 _start与main()
- APP免费
17.2.4 标准参数
- APP免费
17.2.5 混合使用C语言和汇编语言
- APP免费
17.3 总结
- APP免费
结语
- APP免费
推荐阅读
- APP免费
译者简介
- APP免费
封底
更新时间:2025-02-10 16:07:07