图书目录

目录

本书源码

第1章搭建汇编语言开发环境

1.1创建虚拟机实验环境

1.1.1虚拟机软件

1.1.2轻松安装虚拟机软件

1.1.3Linux系统的基本概念

1.1.4导入Kali的虚拟机文件

1.2构建汇编开发工具包

1.2.1编写第1个汇编程序

1.2.2编译与链接汇编程序

第2章轻松掌握Linux命令行

2.1Linux文件管理

2.1.1Linux文件系统结构

2.1.2常用文件管理命令

2.2Linux权限管理

2.2.1Linux用户的分类

2.2.2Linux的文件权限

2.3Linux网络管理

2.3.1配置网络IP地址

2.3.2测试网络连通性

2.4VIM的基本用法

2.5Shell脚本基础

第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.2MOV指令

4.2.3LEA指令

4.2.4XCHG指令

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.2x86栈空间

6.2.3函数序言

6.2.4函数尾声

6.2.5分析栈帧案例

第7章汇编语言调用系统库函数

7.1函数调用约定

7.1.1fastcall调用约定

7.1.2stdcall调用约定

7.1.3cdecl调用约定

7.2初识系统库函数

7.2.1系统调用与库函数的区别

7.2.2系统库函数的分类

7.2.3调用库函数的方法

第8章初识shellcode代码

8.1shellcode的来源

8.1.1使用msfvenom生成shellcode

8.1.2从第三方网站获取shellcode

8.2C语言实现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.1Bind 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.1XOR算法的基本原理

10.1.2实现XOR算法的加解密

10.2基于RC4加解密shellcode

10.3基于AES加解密shellcode

第11章解析shellcode代码的混淆技术

11.1基于IPv4混淆shellcode代码

11.1.1IPv4混淆的基本原理

11.1.2实现IPv4混淆shellcode

11.1.3将IPv4地址还原为shellcode

11.2基于MAC地址混淆shellcode代码

11.2.1MAC地址混淆的基本原理

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