Progress KB - What is DEP?




Feedback
Did this article resolve your question/issue?

   

Article

What is DEP?

« Go Back

Information

 
TitleWhat is DEP?
URL NameP119884
Article Number000130795
EnvironmentProduct: OpenEdge
Version: All supported versions
OS: Windows Server 2003; Windows Server 2008; Windows XP SP2; Windows Vista; Windows 7
Other: Data Execution Prevention
Question/Problem Description
What is DEP?
What is Data Execution Prevention?
Steps to Reproduce
Clarifying Information
Error Message
Defect/Enhancement Number
Cause
Resolution
Data Execution Prevention (DEP) is a set of hardware and software technologies that perform additional checks on memory to help prevent malicious code from running on a system. 
The primary benefit of DEP is to help prevent code execution from data pages. 
Typically, code is not executed from the default heap and the stack. 
The DEP feature was first included in Windows XP SP2, Window Server 2003 SP1, and above.
 
DEP is enforced by hardware and by software:
  • Hardware-enforced DEP detects code that is running from these locations and raises an exception when execution occurs. 
  • Software-enforced DEP can help prevent malicious code from taking advantage of exception-handling mechanisms in Windows. 
If DEP is set to "Turn on DEP for all programs and services except those I select:"
various behaviors can occur in the OpenEdge environment such as:
 
  • An OpenEdge database not starting,
  • Not being able to pull data into Microsoft SQL Server from a Progress database, 
  • Similar problems with the OpenEdge client process prowin32.exe if it invokes ActiveX controls or other Windows programs and utilities, or
  • The OpenEdge AdminServer not starting, where much of the problem stems from the fact that the associated Java process "java.exe" is being prevented from running in memory with the current configured DEP settings.
To correct this behavior, change Windows' DEP setting to "Turn on DEP for essential Windows programs and services only"
or add exceptions for the related OpenEdge installed executable such as java.exe, prowin32.exe etc.
 
To change the DEP setting:
 
1. Navigate to My Computer > Properties > Performance > Settings > Data Execution Prevention.
2. Do one of the following:
    - Select "Turn on DEP for essential Windows programs and services only"
    - Select "Turn on DEP for all programs and services except those I select", and click Add to add the programs that should not use the DEP feature (typically %DLC%\jre\bin\java.exe and/or %DLC%\bin\prowin32.exe).
3. Reboot the machine.

NOTE: OpenEdge became DEP compliant in all releases starting with Release 11.0, by compiling with Visual Studio 2010 or later using /NXCOMPAT:YES.
 

Workaround
Notes
References to Other Documentation:

Data Execution Prevention (DEP) feature in different Windows versions can be found at:

"A detailed description of the Data Execution Prevention (DEP) feature in Windows XP Service Pack 2, Windows XP Tablet PC Edition 2005, and Windows Server 2003"
https://support.microsoft.com/en-us/help/875352/a-detailed-description-of-the-data-execution-prevention-dep-feature-in

How to determine that hardware DEP is available and configured on your computer
https://support.microsoft.com/en-us/help/912923/how-to-determine-that-hardware-dep-is-available-and-configured-on-your

Progress Articles:

000062033, Cannot turn off data execution protection (DEP) for prowin32.exe  
000028532, Critical Alert – Issues migrating applications that use ActiveX/COM objects to OpenEdge 11.
 
Last Modified Date6/3/2019 9:09 AM
Attachment 
Files
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.