zoukankan      html  css  js  c++  java
  • 在程序中避免DEP

    对于需要做某些事情的程序来说,新型CPU带来的DEP(数据执行保护)是一个噩梦。
     
    以往,我们可以new一块内存,把代码(编译好的或者是手工构造的)复制进去,然后可以用指针直接从那块内存的开始来运行(其实就是改一下EIP……)。
     
    可是CPU有了DEP则不同,从SoftICE里面可以看到,当执行到那块内存的第一条指令的时候,硬件异常出现了……程序无条件跳转到系统异常处理过程,Win32 GetLastError 返回14007(在活动的激活上下文中没有找到任何查找密钥。)
     
    -.-凸   微软给的这叫什么提示……
     
    如何解决呢,其实很简单,十分的简单,超级的简单!
     
    DWORD dwOldProtect;
    VirtualProtect( m_pMem, dwMemSize, PAGE_EXECUTE_READWRITE, &dwOldProtect);
     
    世界清静了……
     
     
     
     
  • 相关阅读:
    JSP内置对象和属性
    AWT和Swing
    Servlet的生命周期
    Servlet 与 CGI 的比较
    spring PROPAGATION
    JVM内存
    CISC, RISC 探究
    3.5.10 判断数字的奇偶
    java 中利用异或实现两个变量互换
    Java三大主流框架概述
  • 原文地址:https://www.cnblogs.com/skogkatt/p/4163182.html
Copyright © 2011-2022 走看看