Windows에서 DEP(데이터 실행 방지) 구성 또는 끄기

데이터 실행 방지(Data Execution Prevention) ( DEP )는 이러한 '흐릿한' 것 중 하나입니다. 일을 하고 간섭하지 않을 때는 대부분 축복이지만 간섭할 때는 저주를 받습니다. 

DEP 를 살펴보고 필요에 따라 DEP 를 구성하거나 해제하는 방법을 살펴보겠습니다.

DEP란 무엇이며 어떤 역할을 합니까?(What Is DEP & What Does It Do?)

Microsoft에 따르면 DEP는 다음과 같습니다.

" ... 악성 코드가 시스템에서 실행되는 것을 방지하기 위해 메모리에 대한 추가 검사를 수행하는 일련의 하드웨어 및 소프트웨어 기술입니다. (a set of hardware and software technologies that perform additional checks on memory to help prevent malicious code from running on a system.)"  

Dell 은 이를 약간 단순화하고 DEP 가(DEP)

"...프로그램이 시스템 메모리를 안전하게 사용하는지 모니터링하여 컴퓨터를 보호할 수 있습니다."(“…can help protect your computer by monitoring your programs to make sure that they use system memory safely.”)

그게 무슨 뜻이야? 컴퓨터 메모리에는 코드가 실행되도록 의도되지 않은 특정 영역이 있지만 때때로 코드가 실행됩니다. 

일반적으로 그곳에서 실행될 코드는 악성입니다. DEP 는 해당 영역을 모니터링하고 해당 영역에서 무슨 일이 일어나는지 확인하면 폐쇄합니다. 작동 방식에 대해 자세히 알아보려면 데이터 실행 방지에 대한 Microsoft의 자세한 설명을( Microsoft’s detailed description of Data Execution Prevention) 읽으십시오 .

그렇다면 DEP가 문제를 일으키는 이유는 무엇입니까?(So Why Does DEP Cause Problems?)

오늘날에도 컴퓨터는 멍청합니다. 그들은 추론할 수 없으며 가장 기본적인 논리만 사용할 수 있습니다. 게다가, 그 논리는 인간에 의해 입력되어 컴퓨터도 우리의 실수를 입력합니다. 

때때로 좋은 프로그램은 DEP 가 모니터링하고 해당 공간에서 작업하는 영역으로 떠돌아다니게 됩니다. 

이 경우 DEP 는 때때로 전체 프로그램을 종료하고 오류 메시지(error message) 를 통해 알려줍니다 . 그러나 때로는 DEP 로 인해 프로그램이 매우 제대로 실행되지 않고 이유를 설명할 수 있는 분명한 정보가 없습니다. 

DEP에 문제가 있는 프로그램은 무엇입니까?(What Programs Have Problems With DEP?)

DEP 와 충돌하는 프로그램 은 일반적으로 오래된 프로그램이거나 오래된 코드베이스를 기반으로 합니다. 많은 ERP ( Enterprise Resource Planning ) 소프트웨어는 1970년대로 거슬러 올라가는 코드베이스를 기반으로 합니다. 당시에는 DEP(DEP) 가 없었 으므로 프로그램은 DEP 가 순찰하는 영역으로 이동합니다.

64비트 프로그램은 DEP 가 잘 확립된 후에 만들어졌으므로 준수하도록 개발되었습니다. DEP 와 충돌하는 대부분의 프로그램은 32비트 프로그램(will be 32-bit programs) 입니다. 

Windows 서비스(Services) 와 많이 상호 작용하거나 자체 Windows 서비스(Services) 를 실행 하는 타사 프로그램은 DEP 에 의해 작동이 중지될 수 있습니다 . 이 경우 공급업체는 DEP(DEP) 를 완전히 끌 것을 권장합니다 .

가정용 사용자(home user) 의 경우 32비트인 오래된 게임과 더 오래된 게임을 플레이하기 위한 일부 에뮬레이터 가 ( emulators for playing even older games)DEP 와 충돌할 가능성이 가장 큽니다 .

비공식 소스에서 다운로드한 오래된 장치 드라이버나 드라이버도 (Old device)DEP 오류 를 유발할 수 있습니다 . 하드웨어 제조업체나 Microsoft(hardware manufacturer or Microsoft) 에서만 드라이버를 다운로드 하고 정기적으로 드라이버( update your drivers regularly) 를 업데이트하십시오 .

DEP가 문제인지 어떻게 알 수 있습니까?(How Do I Know If DEP Is The Problem?)

이벤트 뷰어로 이동하여 이벤트 ID 1000(Event ID 1000) 에 대한 로그를 살펴 봐야 할 수 있습니다 . 하나를 찾으면 다음과 같이 보일 수 있습니다.

Event ID : 1000 - DEP Error : Generic host for Win32 servicesGeneric Host Process for Win32 Services - DEP : Application Error
Event Type: Error
Event Source: Application Error
Event Category: (100)
Event ID: 1000

 다음과 같은 내용을 참조하는 다른 오류가 표시될 수 있습니다.

  • 0xFC:ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY장치 드라이버(device driver) 가 메모리에서 실행하려고 할 때 발생합니다. 좋지 않거나 오래된 드라이버일 수 있습니다. 드라이버를 업데이트하고 싶을 것입니다. 
  • STATUS_ACCESS_VIOLATION(0xc0000005) - 프로그램이 (STATUS_ACCESS_VIOLATION (0xc0000005))DEP 보호 메모리 공간(memory space) 에서 실행하려고 할 때 발생합니다 .

DEP를 구성하거나 끄는 방법(How To Configure Or Turn Off DEP)

Windows 10 에서 DEP기본적으로 필수 Windows 프로그램 및 서비스에 대해서만 DEP 켜기(Turn on DEP for essential Windows programs and services only) 설정으로 설정 되어 있습니다 . 대부분의 경우 이것으로 충분합니다. 이는 대부분의 프로그램이 DEP 에서 무시된다는 것을 의미합니다 . 

그러나 DEP 가 컴퓨터를 보호하는 데 도움이 되고 성능 저하가(performance hit) 없다면 내가 선택한 프로그램을 제외한 모든 프로그램에 대해 DEP 켜기를(Turn on DEP for all programs except those that I select) 선택할 수 있습니다. 그런 다음 DEP(DEP) 에 문제가 있는 프로그램을 찾으면 예외로 추가할 수 있습니다. 그 방법을 살펴보겠습니다.

  • 제어판(Control Panel ) 을 연 다음 시스템(System) 을 엽니 다 .

  • 시스템(System ) 창 왼쪽 에서 고급 시스템 설정(Advanced System Settings) 을 클릭합니다 .

  • 시스템 속성(System Properties ) 창이 열리고 이미 고급(Advanced) 탭 으로 설정되어 있어야 합니다 . 성능(Performance ) 영역에서 설정 (Settings) 클릭합니다 .

  • 성능 옵션(Performance Options ) 창에서 데이터 실행 방지(Data Execution Prevention ) 탭을 클릭합니다.

  • 내가 선택한 프로그램을 제외한 모든 프로그램에 대해 DEP 켜기를(Turn on DEP for all programs except those that I select) 선택한 상태에서 창 하단 근처 에 있는 추가 버튼을 클릭합니다.(Add )

  • 예외로 추가하려는 프로그램의 실행 파일로 이동합니다. C:/Program Files (x86) 에 있을 가능성이 큽니다 . 
  • 이 예에서는 오래된 음악 플레이어 유틸리티 인 (music player utility)MediaMonkey 를 추가합니다 . .exe 파일을 찾으면 클릭하고 열기(Click)클릭(Open) 합니다 .

  • 성능 옵션에서 적용(Apply) 을 클릭합니다 . 이제 MediaMonkeyDEP 보호(DEP protection) 외부에서 실행되고 다른 모든 것은 DEP 보호 내에서 실행 됩니다(DEP protection) .

DEP를 완전히 끕니다.(Turn DEP Completely Off)

DEP 를 완전히 끄려면 문제 해결의 일부로만 수행하는 것이 좋습니다. DEP 는 귀하를 보호하기 위해 존재합니다. 

권장되지 않는 작업이기 때문에 좋은 포인트 앤 클릭 방식이 없습니다. DEP 를 끄는 방법을 살펴보겠습니다 .

  • 명령(Command ) 창을 관리자(Administrator) 로 엽니다 . 시작(Start) 메뉴 근처의 프로그램 검색 필드 에 (program search field)cmd 를 입력하면 됩니다 .

  • bcdedit.exe /set {current} nx AlwaysOff 명령 을 입력하고 Enter 키 를 누릅니다.

bcdedit.exe 는 부팅 구성 데이터(bdcedit) 를 편집 하기 위한 Windows 유틸리티 이므로 (d)bdcedit (c)입니다(b) .

/set 부팅 구성(boot configuration) 에서 옵션 값 항목(option value entry) 을 설정하도록 bcedit에 지시 합니다 .

{current} 는 현재 사용 중인 ({current})부팅 구성(boot configuration) 으로 작업하도록 becedit에 지시합니다 .

nx 는 no ecute(n) 의 약자이며 부팅 (DEP)구성(boot configuration) 에서 DEP(x)설정 이름(setting name) 입니다 .

AlwaysOff 는 자명합니다.

  • 컴퓨터를 다시 시작합니다.
  • 이제 DEP(DEP) 가 완전히 영구적으로 꺼집니다.

모든 것을 위해 DEP 켜기(Turn DEP On For Everything)

절대적으로 모든 것에 대해 DEP(DEP) 를 켜기 위한 프로세스와 명령(process and command) 은 위와 같습니다.

  • 위 절차의 지침에 따라 명령(Command ) 창을 관리자(Administrator) 로 엽니다 .
  • bcdedit.exe /set {current} nx AlwaysOn 명령을 입력합니다 . 

  • 컴퓨터를 다시 시작합니다.
  • DEP 가 켜지고 모든 프로그램이 모니터링됩니다.

DEP 를 항상 켜기 또는 항상 끄기로 설정 한 후에 는 시스템 설정  의 데이터 실행 방지 탭(Data Execution Prevention tab) 을 통해 변경할 수 없습니다 .(NOT)

DEP 탭(DEP tab) 의 라디오 버튼을 다시 사용할 수 있도록 변경하는 방법을 살펴보겠습니다 .

DEP를 기본 동작으로 다시 설정(Set DEP Back To Default Behavior)

DEP 동작을 다시 기본값으로 설정 하고 시스템 설정을 통해 다시 관리할 수 있게 하려면 다음을 수행하십시오.

  • 명령(Command ) 창을 관리자(Administrator) 로 엽니다 .
  • bcdedit.exe /set {current} nx OptIn 명령을 입력합니다 .

  • 컴퓨터를 다시 시작합니다.
  • 이제 시스템 설정 의 DEP 탭 에 있는 라디오 버튼에 다시 액세스할 수 있습니다.(DEP tab)

DEP 또는 DEP하지 않음(To DEP Or Not To DEP)

DEP와 관련(DEP-related) 될 수 있는 문제를 해결하기 위해 변경해야 하는 경우가 아니면 DEP를 필수 Windows 프로그램 및 서비스에만 DEP 켜기 (Turn on DEP for essential Windows programs and services only, )(DEP) 기본 설정(default setting) 으로 두는 것이 좋습니다 .



About the author

저는 Windows MVP이고 2007년부터 Windows로 작업해 왔습니다. 제 경험에는 소프트웨어 개발, 하드웨어 및 사운드, Windows 앱이 포함됩니다. 저는 항상 제 작업에서 사용자 경험을 개선할 수 있는 최선의 방법을 찾고 있습니다. 따라서 소프트웨어 응용 프로그램을 설계하거나 개발하는 데 도움이 필요하면 제 서비스를 제공할 수 있습니다.



Related posts