ELF文件概述
·破解、利用成功(程序的二进制漏洞)
·攻破(设备、服务器)
·控制(设备、服务器)
·exploit
·用于攻击的脚本与方案
·攻击载荷,是对目标进程被劫持控制流的数据
·shellcode
·调用攻击目标的shell的代码
二进制基础
程序的编译与链接
从c源码到可执行文件的生成过程
·编译
·由c语言代码生成汇编代码
·汇编
·由汇编代码生成机器码
·链接
·将多个机器码的目标文件链接成一个可执行代码
Linux下的可执行文件格式
什么是可执行文件
广义:文件中的数据是可执行代码的文件,如.out、.exe、.sh、.py
狭义:文件中的数据是机器码的文件,如.out、.exe、.dll、.so
可执行文件的分类
Windows:PE(Portable Executable)
可执行程序:.exe
动态链接库:.dll
静态链接库:.lib
Linux:ELF(Executable and Linkable Format)
可执行程序:.out
动态链接库:.so
静态链接库:.a
ELF文件头表(ELF header)
记录了ELF文件的组织结构
程序头表/段表(Program header table)
告诉系统如何创建进程
生成进程的可执行文件必须拥有此结构
重定位文件不一定需要
节头表(Section header table)
记录ELF文件的节区信息
用于链接的目标文件必须拥有此结构
其他类型目标文件不一定需要