windows-pwn-0
Last Update:
Word Count:
Read Time:
Windows Pwn 0x00 (基本知识)
函数调用约定
_cdecl
_stdcall
_fastcall
保护
相关保护的开启都依赖于编译器的编译方式, 不同的编译器, 开启的程序保护机制也有所不同.
ASLR
ASLR
保护指的是地址随机化技术(Address Space Layout Randomization
),这项技术将在程序启动时将DLL
随机的加载到内存中的位置,这将缓解恶意程序的加载。ASLR
技术自Windows 10
开始已经在系统中被配置为默认启用,。
High Entropy VA
这个保护被称为高熵64位地址空间布局随机化,一旦开启,表示此程序的地址随机化的取值空间为64 bit
,这会导致攻击者更难去推测随机化后的地址。
Force Integrity
这个保护被称为强制签名保护,表示此程序加载时需要验证其中的签名,如果签名不正确,程序将会被阻止运行。
Isolation
隔离保护, 开启之后, 表示此 程序加载时需要验证其中的签名,如果签名不正确,此程序会被阻止运行
NX/DEP/PAE
NX保护指的是内存页不可执行, 这项技术是一项系统级别内存保护的功能, 使得操作系统能够将一页或多页内存标记为不可执行,防止被标记为不可执行的内存页的代码不可执行。
DEP:(Data Execution Prevention)
PAE:(Physical Address Extension)
SEHOP
结构化异常处理保护(Structured Exception Handling Overwrite Protection), 这能够防止攻击者利用结构化异常处理来进一步利用。
CFG
控制流保护(Control Flow Guard), 这项技术通过间接跳转前插入校验代码,检查目标的有效性,进而可以阻止执行流跳转到预期之外的地点。
RFG
类似于linux 的cannary保护, 返回地址保护(Return Flow Guard),这项技术在每个函数头部将返回地址保存到fs:[rsp] (Thread Control), 并在函数返回前将其与返回地址进行比较。
SafeSEH
安全结构化异常处理(Safe Structured Exception Handlers),事先为你定义一些异常处理函数, 并基于此构造安全结构化异常处理表,程序运行后,安全结构化异常处理表 之外的异常处理都会被阻止运行
GS
也类似于linux中的cannary保护, 在返回地址之前存放一个额外的Security Cookie,然后在ret之前与取出该值与之前存放的值做比较
Authenticode
签名保护
.NET
DLL混淆