首页  编辑  

检查系统是否支持DEP

Tags: /超级猛料/OS.操作系统/   Date Created:

检查系统是否支持DEP(数据执行保护)?

DEP需要硬件和软件的支持,Windows XP SP2或以上版本可以支持DEP,DEP实际上就是不允许更改代码段,不允许从数据段中执行代码,所以要检测是否支持DEP,只要认为地在数据段中执行一次代码就知道了,如果发生异常,就是有DEP的,不发生异常,就是没有DEP保护的:

function IsDEP: Boolean;

var

  Code: Byte;

begin

  Code := $C3; // ret

  Result := false;

  try

    TProcedure(@Code);

  except

    on E: EAccessViolation do

      if E.ExceptionRecord^.ExceptionAddress = @Code then

        Result := true

      else

        raise;

  end;

end;