图书介绍
Linux二进制分析PDF|Epub|txt|kindle电子书版本网盘下载
![Linux二进制分析](https://www.shukui.net/cover/66/34565691.jpg)
- 瑞安·奥尼尔著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115469236
- 出版时间:2017
- 标注页数:254页
- 文件大小:47MB
- 文件页数:280页
- 主题词:Linux操作系统
PDF下载
下载说明
Linux二进制分析PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 Linux环境和相关工具1
1.1 Linux工具1
1.1.1 GDB2
1.1.2 GNU binutils中的objdump2
1.1.3 GNU binutils中的objcopy3
1.1.4 strace3
1.1.5 ltrace4
1.1.6 基本的ltrace命令4
1.1.7 ftrace4
1.1.8 readelf4
1.1.9 ERESI——ELF反编译系统接口5
1.2 有用的设备和文件6
1.2.1 /proc/<pid>/maps6
1.2.2 /proc/kcore6
1.2.3 /boot/System.map6
1.2.4 /proc/kallsyms7
1.2.5 /proc/iomem7
1.2.6 ECFS7
1.3 链接器相关环境指针7
1.3.1 LD PRELOAD环境变量8
1.3.2 LD SHOW AUXV环境变量8
1.3.3 链接器脚本9
1.4 总结10
第2章 ELF二进制格式11
2.1 ELF文件类型12
2.2 ELF程序头14
2.2.1 PT_LOAD14
2.2.2 PT_DYNAMIC——动态段的Phdr15
2.2.3 PT_NOTE17
2.2.4 PT_INTERP17
2.2.5 PT_PHDR17
2.3 ELF节头18
2.3.1 .text节20
2.3.2 .rodata节20
2.3.3 .plt节21
2.3.4 .data节21
2.3.5 .bss节21
2.3.6 .got.plt节21
2.3.7 .dynsym节21
2.3.8 .dynstr节22
2.3.9 .rel.*节22
2.3.10 .hash节22
2.3.11 .symtab节22
2.3.12 .strtab节23
2.3.13 .shstrtab节23
2.3.14 .ctors和.dtors节23
2.4 ELF符号27
2.4.1 st_name28
2.4.2 st_value28
2.4.3 st_size28
2.4.4 st_other28
2.4.5 st_shndx29
2.4.6 st_info29
2.5 ELF重定位34
2.6 ELF动态链接43
2.6.1 辅助向量44
2.6.2 了解PLT/GOT46
2.6.3 重温动态段49
2.7 编码一个ELF解析器52
2.8 总结55
第3章 Linux进程追踪57
3.1 ptrace的重要性57
3.2 ptrace请求58
3.3 进程寄存器状态和标记60
3.4 基于ptrace的调试器示例61
3.5 ptrace调试器67
3.6 高级函数追踪软件75
3.7 ptrace和取证分析75
3.8 进程镜像重建77
3.8.1 重建进程到可执行文件的挑战78
3.8.2 重建可执行文件的挑战78
3.8.3 添加节头表79
3.8.4 重建过程算法79
3.8.5 在32位测试环境中使用Quenya重建进程81
3.9 使用ptrace进行代码注入83
3.10 简单的例子演示复杂的过程91
3.11 code_inject工具演示92
3.12 ptrace反调试技巧92
3.13 总结94
第4章 ELF病毒技术——Linux/UNIX病毒95
4.1 ELF病毒技术96
4.2 设计ELF病毒面临的挑战97
4.2.1 寄生代码必须是独立的97
4.2.2 字符串存储的复杂度99
4.2.3 寻找存放寄生代码的合理空间100
4.2.4 将执行控制流传给寄生代码100
4.3 ELF病毒寄生代码感染方法101
4.3.1 Silvio填充感染101
4.3.2 逆向text感染106
4.3.3 data段感染108
4.4 PT_NOTE到PT_LOAD转换感染110
4.5 感染控制流112
4.5.1 直接PLT感染113
4.5.2 函数蹦床(function trampoline)113
4.5.3 重写.ctors/.dtors函数指针114
4.5.4 GOT感染或PLT/GOT重定向115
4.5.5 感染数据结构115
4.5.6 函数指针重写115
4.6 进程内存病毒和rootkits——远程代码注入技术115
4.6.1 共享库注入116
4.6.2 text段代码注入120
4.6.3 可执行文件注入120
4.6.4 重定位代码注入——ET REL注入120
4.7 ELF反调试和封装技术121
4.7.1 PTRACE TRACEME技术121
4.7.2 SIGTRAP处理技术122
4.7.3 /proc/self/status技术122
4.7.4 代码混淆技术123
4.7.5 字符串表转换技术124
4.8 ELF病毒检测和杀毒124
4.9 总结126
第5章 Linux二进制保护127
5.1 ELF二进制加壳器127
5.2 存根机制和用户层执行128
5.3 保护器存根的其他用途133
5.4 现存的ELF二进制保护器133
5.4.1 DacryFile——Grugq于2001年发布134
5.4.2 Burneye——Scut于2002年发布134
5.4.3 Shiva——Neil Mehta和Shawn Clowes于2003年发布135
5.4.4 Maya's Veil——Ryan O'Neill于2014年发布136
5.5 下载Maya保护的二进制文件142
5.6 二进制保护中的反调试142
5.7 防模拟技术143
5.7.1 通过系统调用检测模拟144
5.7.2 检测模拟的CPU不一致144
5.7.3 检测特定指令之间的时延144
5.8 混淆方法145
5.9 保护控制流完整性145
5.9.1 基于ptrace的攻击145
5.9.2 基于安全漏洞的攻击146
5.10 其他资源147
5.11 总结147
第6章 Linux下的ELF二进制取证分析149
6.1 检测入口点修改技术150
6.2 检测其他形式的控制流劫持154
6.2.1 修改.ctors/.init_array节154
6.2.2 检测PLT/GOT钩子155
6.2.3 检测函数蹦床158
6.3 识别寄生代码特征159
6.4 检查动态段是否被DLL注入161
6.5 识别逆向text填充感染164
6.6 识别text段填充感染166
6.7 识别被保护的二进制文件170
6.8 IDA Pro175
6.9 总结175
第7章 进程内存取证分析177
7.1 进程内存布局178
7.1.1 可执行文件内存映射179
7.1.2 程序堆179
7.1.3 共享库映射180
7.1.4 栈、VDSO和vsyscall180
7.2 进程内存感染181
7.2.1 进程感染工具181
7.2.2 进程感染技术182
7.3 检测ET_DYN注入184
7.3.1 Azazel:用户级rootkit检测184
7.3.2 映射出进程的地址空间184
7.3.3 查找栈中的LD_PRELOAD187
7.3.4 检测PLT/GOT钩子188
7.3.5 ET_DYN注入内部原理190
7.3.6 操纵VDSO194
7.3.7 共享目标文件加载195
7.3.8 检测.so注入的启发方法196
7.3.9 检测PLT/GOT钩子的工具197
7.4 Linux ELF核心文件198
7.5 总结204
第8章 ECFS——扩展核心文件快照技术205
8.1 历史205
8.2 ECFS原理206
8.3 ECFS入门206
8.3.1 将ECFS嵌入到核心处理器中207
8.3.2 在不终止进程的情况下使用ECFS快照208
8.4 libecfs——解析ECFS文件的库208
8.5 readecfs工具209
8.6 使用ECFS检测被感染的进程210
8.6.1 感染主机进程210
8.6.2 捕获并分析ECFS快照211
8.6.3 使用readecfs提取寄生代码215
8.6.4 Azazel用户级rootkit分析216
8.7 ECFS参考指南224
8.7.1 ECFS符号表重建225
8.7.2 ECFS节头226
8.7.3 使用ECFS文件作为常规的核心文件229
8.7.4 libecfs API的使用229
8.8 使用ECFS恢复中断的进程230
8.9 了解更多ECFS相关内容231
8.10 总结232
第9章 Linux/proc/kcore分析233
9.1 Linux内核取证分析和rootkit233
9.2 没有符号的备份vmlinux234
9.3 探索/proc/kcore和GDB236
9.4 直接修改sys_call_table237
9.4.1 检测sys_call_table修改238
9.4.2 内核函数蹦床238
9.4.3 函数蹦床示例239
9.4.4 检测函数蹦床241
9.4.5 检测中断处理器修复243
9.5 Kprobe rootkit243
9.6 调试寄存器rootkit——DRR244
9.7 VFS层rootkit244
9.8 其他内核感染技术245
9.9 vmlinux和.altinstructions修补245
9.9.1 .altinstructions和.altinstr_replace246
9.9.2 arch/x86/include/asm/alternative.h代码片段246
9.9.3 使用textify验证内核代码完整性247
9.9.4 使用textify检查sys_call_table247
9.10 使用taskverse查看隐藏进程248
9.11 感染的LKM——内核驱动249
9.11.1 方法一:感染LKM文件——符号劫持249
9.11.2 方法二:感染LKM文件——函数劫持249
9.11.3 检测被感染的LKM250
9.12 /dev/kmem和/dev/mem250
9.12.1 /dev/mem251
9.12.2 FreeBSD/dev/kmem251
9.13 K-ecfs——内核ECFS251
9.14 内核黑客工具252
9.14.1 通用的逆向工程和调试253
9.14.2 高级内核劫持/调试接口253
9.14.3 本章提到的论文253
9.15 总结254