当前位置:主页 > 计算机电子书 > 行业软件及应用 > 软件分析下载
有趣的二进制:软件安全与逆向分析

有趣的二进制:软件安全与逆向分析 PDF 高清版

  • 更新:2019-10-01
  • 大小:10.8 MB
  • 类别:软件分析
  • 作者:爱甲健二
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

有趣的二进制:软件安全与逆向分析 PDF

《有趣的二进制:软件安全与逆向分析》通过逆向工程,揭开人们熟知的软件背后的机器语言的秘密,并教给读者读懂这些二进制代码的方法。理解了这些方法,技术人员就能有效地Debug,防止软件受到恶意攻击和反编译。本书涵盖的技术包括:汇编与反汇编、调试与反调试、缓冲区溢出攻击与底层安全、钩子与注入、Metasploit 等安全工具。

《有趣的二进制:软件安全与逆向分析》适合对计算机原理、底层或计算机安全感兴趣的读者阅读。

目录

  • 第1章 通过逆向工程学习如何读懂二进制代码  1
  • 1.1 先来实际体验一下软件分析吧  3
  • 1.1.1 通过Process Monitor的日志来确认程序的行为  4
  • 1.1.2 从注册表访问中能发现些什么  6
  • 1.1.3 什么是逆向工程  9
  • 专栏:逆向工程技术大赛  10
  • 1.2 尝试静态分析  11
  • 1.2.1 静态分析与动态分析  11
  • 专栏:Stirling与BZ Editor的区别  12
  • 1.2.2 用二进制编辑器查看文件内容  13
  • 1.2.3 看不懂汇编语言也可以进行分析  14
  • 1.2.4 在没有源代码的情况下搞清楚程序的行为  16
  • 1.2.5 确认程序的源代码  18
  • 1.3 尝试动态分析  20
  • 1.3.1 设置Process Monitor的过滤规则  20
  • 1.3.2 调试器是干什么用的  23
  • 1.3.3 用OllyDbg洞察程序的详细逻辑  24
  • 1.3.4 对反汇编代码进行分析  26
  • 专栏:什么是寄存器  28
  • 1.3.5 将分析结果与源代码进行比较  29
  • 专栏:选择自己喜欢的调试器  30
  • 1.4 学习最基础的汇编指令  32
  • 1.4.1 没必要记住所有的汇编指令  32
  • 1.4.2 汇编语言是如何实现条件分支的  33
  • 1.4.3 参数存放在栈中  35
  • 1.4.4 从汇编代码联想到C语言源代码  37
  • 1.5 通过汇编指令洞察程序行为  40
  • 1.5.1 给函数设置断点  40
  • 1.5.2 反汇编并观察重要逻辑  42
  • 专栏:学习编写汇编代码  47
  • 第2章 在射击游戏中防止玩家作弊  51
  • 2.1 解读内存转储  53
  • 2.1.1 射击游戏的规则  53
  • 2.1.2 修改4个字节就能得高分  54
  • 2.1.3 获取内存转储  58
  • 2.1.4 从进程异常终止瞬间的状态查找崩溃的原因  63
  • 2.1.5 有效运用实时调试  66
  • 2.1.6 通过转储文件寻找出错原因  68
  • 专栏:除了个人电脑,在其他计算机设备上运行的程序也可以进行
  • 分析吗  74
  • 专栏:分析Java编写的应用程序  74
  • 2.2 如何防止软件被别人分析  76
  • 2.2.1 反调试技术  76
  • 专栏:检测调试器的各种方法  77
  • 2.2.2 通过代码混淆来防止分析  79
  • 专栏:代码混淆的相关话题  80
  • 2.2.3 将可执行文件进行压缩  81
  • 2.2.4 将压缩过的可执行文件解压缩:解包  86
  • 2.2.5 通过手动解包UPX来理解其工作原理  87
  • 2.2.6 用硬件断点对ASPack进行解包  91
  • 专栏:如何分析.NET编写的应用程序  95
  • 第3章 利用软件的漏洞进行攻击  97
  • 3.1 利用缓冲区溢出来执行任意代码  99
  • 3.1.1 引发缓冲区溢出的示例程序  99
  • 3.1.2 让普通用户用管理员权限运行程序  100
  • 3.1.3 权限是如何被夺取的  102
  • 3.1.4 栈是如何使用内存空间的  104
  • 3.1.5 攻击者如何执行任意代码  107
  • 3.1.6 用gdb 查看程序运行时的情况  110
  • 3.1.7 攻击代码示例  113
  • 3.1.8 生成可用作shellcode的机器语言代码  116
  • 3.1.9 对0x00的改进  121
  • 专栏:printf类函数的字符串格式化bug  125
  • 3.2 防御攻击的技术  127
  • 3.2.1 地址随机化:ASLR  127
  • 3.2.2  除存放可执行代码的内存空间以外,对其余内存空间尽量
  • 禁用执行权限:Exec-Shield  130
  • 3.2.3  在编译时插入检测栈数据完整性的代码:StackGuard  131
  • 3.3 绕开安全机制的技术  134
  • 3.3.1 使用libc中的函数来进行攻击:Return-into-libc  134
  • 3.3.2 利用未随机化的模块内部的汇编代码进行攻击:ROP  136
  • 专栏:计算机安全为什么会变成猫鼠游戏  137
  • 第4章 自由控制程序运行方式的编程技巧  139
  • 4.1 通过自制调试器来理解其原理  141
  • 4.1.1 亲手做一个简单的调试器,在实践中学习  141
  • 4.1.2 调试器到底是怎样工作的  141
  • 4.1.3 实现反汇编功能  147
  • 4.1.4 运行改良版调试器  153
  • 4.2  在其他进程中运行任意代码:代码注入  155
  • 4.2.1 向其他进程注入代码  155
  • 4.2.2 用SetWindowsHookEx劫持系统消息  155
  • 4.2.3 将DLL路径配置到注册表的AppInit_DLLs项  162
  • 4.2.4  通过CreateRemoteThread在其他进程中创建线程  165
  • 4.2.5 注入函数  170
  • 4.3 任意替换程序逻辑:API 钩子  174
  • 4.3.1 API 钩子的两种类型  174
  • 4.3.2 用Detours实现一个简单的API 钩子  174
  • 4.3.3 修改消息框的标题栏  177
  • 专栏:DLL注入和API钩子是“黑客”技术的代表?  178
  • 第5章 使用工具探索更广阔的世界  179
  • 5.1  用Metasploit Framework验证和调查漏洞  181
  • 5.1.1 什么是Metasploit Framework  181
  • 5.1.2 安全漏洞的信息从何而来  181
  • 5.1.3 搭建用于测试漏洞的环境  182
  • 5.1.4 利用漏洞进行攻击  183
  • 专栏:深入探索shellcode  184
  • 5.1.5 一个ROP的实际例子  188
  • 5.2 用EMET观察反ROP的机制  192
  • 5.2.1 什么是EMET  192
  • 5.2.2 Anti-ROP的设计获得了蓝帽奖  192
  • 5.2.3 如何防止攻击  193
  • 5.2.4 搞清楚加载器的逻辑  194
  • 5.2.5 DLL的程序逻辑  196
  • 5.2.6 CALL-RETN检查  197
  • 5.2.7 如何防止误判  200
  • 5.2.8 检查栈的合法性  201
  • 5.3 用REMnux 分析恶意软件  205
  • 5.3.1 什么是REMnux  205
  • 5.3.2 更新特征数据库  206
  • 5.3.3 扫描目录  206
  • 5.4  用ClamAV检测恶意软件和漏洞攻击  208
  • 5.4.1 ClamAV的特征文件  208
  • 5.4.2 解压缩.cvd文件  209
  • 5.4.3 被检测到的文件详细信息  210
  • 5.4.4 检测所使用的打包器以及疑似恶意软件的文件  211
  • 5.5  用Zero Wine Tryouts分析恶意软件  212
  • 5.5.1 REMnux与Zero Wine Tryouts的区别  212
  • 5.5.2 运行机制  212
  • 5.5.3 显示用户界面  213
  • 5.5.4 确认分析报告  214
  • 专栏:尝试开发自己的工具  217
  • 5.6 尽量减少人工分析:启发式技术  218
  • 5.6.1 恶意软件应对极限的到来:平均每天60000个  218
  • 5.6.2 启发式技术革命  218
  • 5.6.3 用两个恶意软件进行测试  220
  • 附录  223
  • A.1 安装IDA  224
  • A.2 安装OllyDbg   229
  • A.3 安装WinDbg  230
  • A.4 安装Visual Studio 2010  235
  • A.5 安装Metasploit  240
  • A.6 分析工具  248
  • Stirling / BZ Editor  248
  • Process Monitor  249
  • Process Explorer  250
  • Sysinternals工具  250
  • 兔耳旋风  251
  • 参考文献  252

后记  254

资源下载

资源下载地址1:https://pan.baidu.com/s/1CpPXso_GkZNH705FV73SJg

相关资源

网友留言