Linux x86 汇编语言视角下的shellcode开发与分析
定 价:69 元
丛书名:开发者成长丛书
- 作者:刘晓阳
- 出版时间:2025/7/1
- ISBN:9787302694465
- 出 版 社:清华大学出版社
- 中图法分类:TP313
- 页码:
- 纸张:胶版纸
- 版次:
- 开本:16开
"本书将基于Kali Linux系统介绍x86汇编语言程序的开发方法,从理论基础出发,结合实战项目,详细阐述汇编语言的语法规则和shellcode机器码的编写流程和分析方法,以及加密和混淆shellcode机器码的方式。
本书共12章,第1~3章详细讲述Kali Linux的使用方法,从搭建Kali Linux虚拟机环境开始,逐步深入介绍Linux系统命令,以及调试器gdb基本用法等相关内容。第4~7章将介绍汇编语言的基础语法规则,包括数据操作、流程控制、函数定义与调用,以及调用库函数的方法。第8~12章阐述了使用汇编语言开发shellcode机器码的流程、加密和混淆shellcode的方式,以及分析Metasploit工具内置Linux shellcode的方法。
本书示例代码丰富,实际性和系统性较强,详细阐述每个案例,助力读者透彻地理解书中的重点、难点。本书既适合初学者入门,对于工作多年的安全工程师也有参考价值,并可作为高等院校和培训机构相关专业的教学参考书。
"
第1章 搭建汇编语言开发环境
1.1 创建虚拟机实验环境
1.1.1 虚拟机软件
1.1.2 轻松安装虚拟机软件
1.1.3 Linux系统的基本概念
1.1.4 导入Kali的虚拟机文件
1.2 构建汇编开发工具包
1.2.1 编写第1个汇编程序
1.2.2 编译与链接汇编程序
第2章 轻松掌握Linux命令行
2.1 Linux文件管理
2.1.1 Linux文件系统结构
2.1.2 常用文件管理命令
2.2 Linux权限管理
2.2.1 Linux用户的分类
2.2.2 Linux的文件权限
2.3 Linux网络管理
2.3.1 配置网络IP地址
2.3.2 测试网络连通性
2.4 VIM的基本用法
2.5 Shell脚本基础
第3章 轻松调试可执行程序
3.1 探索程序的基本原理
3.1.1 存储数据的基本格式
3.1.2 编程语言的发展历史
3.2 初识Linux程序调试器
3.2.1 浅析调试程序的原理
3.2.2 调试器gdb的基本用法
第4章 汇编语言中的数据操作
4.1 常量与变量
4.1.1 内存空间的分段
4.1.2 不同格式的字面量
4.1.3 定义常量的方法
4.1.4 定义变量的方法
4.1.5 调试常量与变量程序
4.2 数据传送
4.2.1 寄存器与内存地址
4.2.2 MOV指令
4.2.3 LEA指令
4.2.4 XCHG指令
4.3 算术运算
4.3.1 加法
4.3.2 减法
4.3.3 乘法
4.3.4 除法
4.3.5 自增
4.3.6 自减
4.4 逻辑运算
4.4.1 逻辑与
4.4.2 逻辑或
4.4.3 逻辑非
4.4.4 逻辑异或
第5章 汇编语言中的控制结构
5.1 顺序结构
5.2 选择结构
5.2.1 结束指令
5.2.2 比较指令
5.2.3 跳转指令
5.3 循环结构
5.3.1 计数循环
5.3.2 条件循环
5.3.3 无限循环
第6章 汇编语言中的函数
6.1 函数的定义与调用
6.1.1 定义函数的指令
6.1.2 调用函数的指令
6.1.3 分析函数案例
6.2 程序栈帧
6.2.1 初识栈结构
6.2.2 x86栈空间
6.2.3 函数序言
6.2.4 函数尾声
6.2.5 分析栈帧案例
第7章 汇编语言调用系统库函数
7.1 函数调用约定
7.1.1 fastcall调用约定
7.1.2 stdcall调用约定
7.1.3 cdecl调用约定
7.2 初识系统库函数
7.2.1 系统调用与库函数的区别
7.2.2 系统库函数的分类
7.2.3 调用库函数的方法
第8章 初识shellcode代码
8.1 shellcode的来源
8.1.1 使用msfvenom生成shellcode
8.1.2 从第三方网站获取shellcode
8.2 C语言实现shellcode加载程序
8.2.1 基于Windows的shellcode加载程序
8.2.2 实现跨平台shellcode加载程序
8.3 实现第1个shellcode
8.3.1 编写正常退出的程序
8.3.2 解决坏字节问题的方法
8.3.3 编写并测试shellcode
第9章 轻松编写shellcode代码
9.1 执行/bin/sh程序的shellcode
9.1.1 /bin/sh程序
9.1.2 硬编码问题
9.1.3 解决硬编码问题
9.1.4 实现jmp-call-pop版的shellcode
9.1.5 实现push stack版的shellcode
9.2 绑定类型的shellcode
9.2.1 Bind shellcode套接字原理
9.2.2 实现Bind shellcode
9.3 反向类型的shellcode
9.3.1 反向shellcode套接字原理
9.3.2 实现反向shellcode
9.3.3 自定义IP和端口号的反向shellcode
第10章 解析shellcode代码的加密技术
10.1 基于XOR加解密shellcode
10.1.1 XOR算法的基本原理
10.1.2 实现XOR算法的加解密
10.2 基于RC4加解密shellcode
10.3 基于AES加解密shellcode
第11章 解析shellcode代码的混淆技术
11.1 基于IPv4混淆shellcode代码
11.1.1 IPv4混淆的基本原理
11.1.2 实现IPv4混淆shellcode
11.1.3 将IPv4地址还原为shellcode
11.2 基于MAC地址混淆shellcode代码
11.2.1 MAC地址混淆的基本原理
11.2.2 实现MAC地址混淆shellcode
11.2.3 将MAC地址还原为shellcode
第12章 实战分析Metasploit内置的shellcode
12.1 常用分析工具
12.1.1 构建Libemu环境
12.1.2 反汇编工具ndisasm
12.2 分析绑定shellcode
12.3 分析反向shellcode