zoukankan      html  css  js  c++  java
  • 常见保护方式简介

    ●DEP(Date Execution Prevention)数据执行保护:

    DEP通过处理器的(No eXecute)功能,查找内存中没有明确包含可执行代码的数据,找到这些数据后,NX将它们都标记为“不可执行”。

    以后如果某程序在内存中,试图执行这些带“不可执行”标记的代码,SP2将会自动关闭该程序。因此,假如你运行了一个已经染毒的软件,

    DEP就会把病毒代码标记为“不可执行”,这样就能阻止病毒在内存中运行,保护电脑中的文件免受蠕虫、病毒的传染破坏。

    ●ASLR(Address Space Layout Randomization)地址空间布局随机化:

    通过将系统可执行程序随机装载到内存里,从而防止缓冲溢出攻击。如果一个动态链接库(DLL)文件的动态重定位标志设置为真,

    那么它就会自动地随机装载到内存中。那些在特定内存区域寻找特定文件的恶意软件就会失效不能再li利用漏洞。

    实际上ASLR还能通过让那些正受攻击的系统文件崩溃来误导恶意软件。

    ●SEHOP(Structured Exception Handling Overwrite Protection )结构化异常处理覆写保护:

    专门用于对抗覆盖SEH此类攻击。它会检测程序栈中的所有SHE结构链表,

    特别是最后一个SHE结构(拥有一个特殊的异常处理函数指针)向其中插入一个硬地址,

    这样通常覆盖SEH后为了稳定溢出而使用的payload就会破坏掉SEH链,从而导致SEH链找不到末尾的地址于是系统就会认为SEH被覆盖了,从而进程被终止。

    ●EAF(Export Address Table Access Filtering)导出表地址过滤:

    当前绝大部分的Shellcode在运行时都需要搜索要用到的API地址,而这一行为通常是通过对相应模块导出表的遍历来实现的。

    而EAF通过对ntdll.dll和kernel32.dll导出表的相应位置下硬件断点,来监控shellcode 对导出表的搜索行为。

    ●Heapspray Allocations:

    顾名思义用来对抗使用HeapSpray的方法来执行shellcode。

    预先把有可能被Spray的常见内存地址分配掉这样shellcode就不能执行了。

    Null Page Allocation:

    类似HeapSpray,利用提前占位的方式,将空指针未初始化之前默认指向的可能地址先分配掉,这样恶意代码也就不能执行了。

  • 相关阅读:
    Apache Ant 1.9.1 版发布
    Apache Subversion 1.8.0rc2 发布
    GNU Gatekeeper 3.3 发布,网关守护管理
    Jekyll 1.0 发布,Ruby 的静态网站生成器
    R语言 3.0.1 源码已经提交到 Github
    SymmetricDS 3.4.0 发布,数据同步和复制
    beego 0.6.0 版本发布,Go 应用框架
    Doxygen 1.8.4 发布,文档生成工具
    SunshineCRM 20130518发布,附带更新说明
    Semplice Linux 4 发布,轻量级发行版
  • 原文地址:https://www.cnblogs.com/bingghost/p/3977720.html
Copyright © 2011-2022 走看看