`
zo1698
  • 浏览: 27612 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

DataExcute Protection 初识

阅读更多

    

      那是刚来公司不久的时候,公司出于安全以及其他方面因素,需要用dll 将对外开放的接口进行封装一遍。

 

      dll本身要做的事非常简单,将用户传入的参数经过“特殊”处理后发给Web service ,在接收返回数据以后,将其传递给调用者。 

 

      开发工具选择的是Delphi 7。

 

      完成以后本地机器没有出现人和我问题 结果交到领导的机子上一跑就直接报内存错误~

 

      后来发现问题所在。领导是2003系统,默认 dep 是对所有程序进行监控保护。

 

      在对程序进行例外处理后,demo程序一路畅通无阻,dll调的一帆风顺。

 

      其后给其它几个公司调用也没有再出现此问题(估计都是在xp系统中做开发) 直到昨天,

 

自己公司的人员也需要调用此接口,遂很大方的将dll以及demo程序、文档一起打包发过去。

 

      结果又出现了上面一幕。

 

      同事使用pb 调用,一调用dll方法,就直接退出程序,报错都不报~~~~~。

 

      换一台机器就没问题。

       

       为了开发进度,只能现将其机器的dep改为对所有程序禁用。

   

       但是 心里总是很变扭,难道没有其它办法么?

 

       该问题目前还没解决。暂时查出一些dep的相关信息,已备后查。

 

 

 

 

 

 

     数据执行保护 (DEP) 是一套硬件和软件技术,可对内存执行额外检查,以防被恶意代码利用。

除了显式包含可执行代码的内存位置外,硬件实施 DEP 会将进程中的所有内存位置全部标记为不可执行。有一种恶意代码攻击尝试从不可执行的内存位置插入代码并加以运行。DEP 可截获这些攻击并引发异常,以此来帮助阻止此类攻击。

本文介绍硬件实施 DEP 的使用要求,并说明如何确认 Windows 中的硬件 DEP 是否可用。
更多信息

硬件实施 DEP 的使用要求
要使用硬件实施 DEP,必须符合下列所有条件: 1. 计算机的处理器必须支持硬件实施 DEP。

新生产的很多处理器都支持硬件实施 DEP。Advanced Micro Devices (AMD) 和 Intel Corporation 已定义并提供同时与 Windows 和 DEP 都兼容的体系结构。这种处理器支持可称为 NX(禁止执行)或 XD(执行禁用)技术。要确定计算机的处理器是否支持硬件实施 DEP,请与计算机的制造商联系。
2. 必须在 BIOS 中启用硬件实施 DEP。

在某些计算机的 BIOS 中,可以禁用针对硬件实施 DEP 的处理器支持。您不得禁用此支持。用于禁用此支持的选项可能标记为“数据执行保护”、“XD”、“执行禁用”或“NX”,具体则取决于计算机的制造商。
3. 计算机中必须安装了 Windows XP Service Pack 2 或 Windows Server 2003 Service Pack 1。

注意:Windows 的 32 位版本和 64 位版本都支持硬件实施 DEP。Windows XP Media Center Edition 2005 和 Microsoft Windows XP Tablet PC Edition 2005 包括 Windows XP SP2 的所有功能和组件。
4. 必须为计算机上的程序启用硬件实施 DEP。

在 Windows 的 64 位版本中,始终为 64 位的本机程序启用硬件实施 DEP。但是,32 位的程序可能已被禁用硬件实施 DEP,具体则取决于您的配置。
有关 DEP 和 DEP 配置的更多信息以及支持硬件 DEP 的 Windows 操作系统的列表,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
875352 (http://support.microsoft.com/kb/875352/) Windows XP Service Pack 2、Windows XP Tablet PC Edition 2005 以及 Windows Server 2003 中数据执行保护 (DEP) 功能的详细说明
有关如何在 Windows XP Service Pack 2 中配置内存保护的信息,请访问下面的 Microsoft 网站:
http://www.microsoft.com/china/t ... owsxp/depcnfxp.mspx (http://www.microsoft.com/china/t ... owsxp/depcnfxp.mspx)

 

 

      如何确认 Windows 中的硬件 DEP 是否可用
要确认 Windows 中的硬件 DEP 是否可用,请使用下列方法之一。
方法 1:使用 Wmic 命令行工具
您可以使用 Wmic 命令行工具来检查 DEP 设置。要确定硬件实施 DEP 是否可用,请按照下列步骤操作: 1. 依次单击“开始”和“运行”,在“打开”框中键入 cmd,然后单击“确定”。
2. 在命令提示符处,键入以下命令并按 Enter:
wmic OS Get DataExecutionPrevention_Available
如果输出为“TRUE”,则说明硬件实施 DEP 可用。
要确定当前的 DEP 支持策略,请按照下列步骤操作。 1. 依次单击“开始”和“运行”,在“打开”框中键入 cmd,然后单击“确定”。
2. 在命令提示符处,键入以下命令并按 Enter:
wmic OS Get DataExecutionPrevention_SupportPolicy
返回值将为 0、1、2 或 3。此值与下表中描述的其中一个 DEP 支持策略相对应。
DataExecutionPrevention_SupportPolicy 属性值 策略级别 说明
2 OptIn(默认配置) 只有 Windows 系统组件和服务才应用 DEP
3 OptOut 为所有进程启用 DEP。管理员可以手动为不应用 DEP 的特定应用程序创建一个列表。
1 AlwaysOn 为所有进程启用 DEP。
0 AlwaysOff 为所有进程禁用 DEP。
注意:要验证 Windows 是否启用了硬件 DEP,请检查 Win32_OperatingSystem 类的 DataExecutionPrevention_Drivers 属性。在某些系统配置中,可以使用 Boot.ini 文件中的 /nopae 或 /execute 开关禁用硬件 DEP。要检查此属性,请在命令提示符处键入以下命令:
wmic OS Get DataExecutionPrevention_Drivers
方法 2:使用图形用户界面
要使用图形用户界面确定 DEP 是否可用,请按照下列步骤操作: 1. 依次单击“开始”和“运行”,在“打开”框中键入 wbemtest,然后单击“确定”。
2. 在“Windows 管理规范测试器”对话框中,单击“连接”。
3. 在“连接”对话框顶部的框中,键入 root\cimv2,然后单击“连接”。
4. 单击“枚举范例”。
5. 在“类别信息”对话框中的“输入超类别名称”框中,键入 Win32_OperatingSystem,然后单击“确定”。
6. 在“查询结果”对话框中,双击第一项。

注意:此项以“Win32_OperatingSystem.Name=Microsoft...”开头。
7. 在“对象编辑器”对话框中的“属性”区域中,找到“DataExecutionPrevention_Available”属性。
8. 双击“DataExecutionPrevention_Available”。
9. 在“属性编辑器”对话框中,记下“数值”框内的值。
如果该值为“TRUE”,则说明硬件 DEP 可用。
说明
• 要确定 DEP 的运行模式,请检查 Win32_OperatingSystem 类的 DataExecutionPrevention_SupportPolicy 属性。“方法 1”结尾处的表格描述了各个支持策略值。
• 要验证 Windows 中是否启用了硬件 DEP,请检查 Win32_OperatingSystem 类的 DataExecutionPrevention_Drivers 属性。在某些系统配置中,可以使用 Boot.ini 文件中的 /nopae 或 /execute 开关禁用硬件 DEP。

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics