กำหนดค่าหรือปิด DEP (การป้องกันการดำเนินการข้อมูล) ใน Windows

การป้องกันการดำเนินการข้อมูล(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

“...สามารถช่วยปกป้องคอมพิวเตอร์ของคุณโดยการตรวจสอบโปรแกรมของคุณเพื่อให้แน่ใจว่าใช้หน่วยความจำระบบอย่างปลอดภัย”(“…can help protect your computer by monitoring your programs to make sure that they use system memory safely.”)

นั่นหมายความว่าอย่างไร? มีบางพื้นที่ในหน่วยความจำของคอมพิวเตอร์ที่ไม่ต้องการให้โค้ดทำงานอยู่ แต่บางครั้งโค้ดอาจทำงานที่นั่น 

โดยปกติรหัสที่จะเรียกใช้จะมีอันตราย DEPจะตรวจสอบพื้นที่เหล่านั้น และหากพบว่ามีบางอย่างเกิดขึ้นในพื้นที่เหล่านั้น จะปิดตัวลง หากคุณต้องการทราบข้อมูลเชิงลึกเกี่ยวกับวิธีการทำงาน โปรดอ่าน คำอธิบาย โดยละเอียดของ Microsoft เกี่ยวกับ Data Execution Prevention( 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มักจะเป็นโปรแกรมที่เก่ากว่าหรือสร้างขึ้นจากฐานรหัสเก่า ซอฟต์แวร์ Enterprise Resource Planning(Enterprise Resource Planning) ( ERP ) จำนวนมากสร้างขึ้นจากฐานรหัสที่ย้อนกลับไปในปี 1970 ตอนนั้นไม่มีDEPดังนั้นโปรแกรมจะเข้าสู่พื้นที่ที่DEPลาดตระเวน

โปรแกรม 64 บิตถูกสร้างขึ้นหลังจากDEPเป็นที่ยอมรับ ดังนั้นจึงได้รับการพัฒนาเพื่อให้สอดคล้อง โปรแกรมส่วนใหญ่ที่ขัดแย้งกับDEP จะเป็นโปรแกรม 32  บิต(will be 32-bit programs)

โปรแกรมที่ไม่ใช่ของ Microsoft ที่โต้ตอบกับWindows Services อย่างหนักหรือเรียกใช้ (Services)Windows Servicesของตนเองอาจถูกขัดขวางโดย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?)

คุณอาจต้องเข้าไปใน Event Viewerและกรองผ่านบันทึกสำหรับEvent 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) – เกิดขึ้นเมื่อโปรแกรมพยายามเรียกใช้ในพื้นที่หน่วยความจำที่(memory space)ป้องกันโดยDEP

วิธีกำหนดค่าหรือปิด DEP(How To Configure Or Turn Off DEP)

ในWindows 10 DEPมีค่าเริ่มต้นเป็นการตั้งค่าเปิด DEP สำหรับโปรแกรมและบริการที่จำเป็นของ Windows(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เราสามารถเพิ่มเป็นข้อยกเว้นได้ ลองดูวิธีการทำ

  • เปิดแผงควบคุม(Control Panel ) จาก นั้นเปิดระบบ(System)

  • ที่ด้านซ้ายของ หน้าต่าง ระบบ(System )ให้คลิกที่Advanced System Settings(Advanced System Settings)

  • หน้าต่างคุณสมบัติของระบบ(System Properties )ควรเปิดขึ้นและตั้งค่าเป็นแท็บขั้นสูง แล้ว (Advanced)ใน พื้นที่ Performanceให้คลิกที่Settings

  • ใน หน้าต่าง Performance Optionsให้คลิกที่แท็บData Execution Prevention

  • ด้วยTurn on DEP สำหรับทุกโปรแกรมยกเว้นที่ฉันเลือก(Turn on DEP for all programs except those that I select)ไว้ ให้คลิกที่ ปุ่ม Addใกล้กับด้านล่างของหน้าต่าง

  • ไปที่ไฟล์ปฏิบัติการสำหรับโปรแกรมที่เราต้องการเพิ่มเป็นข้อยกเว้น ส่วนใหญ่จะอยู่ในC:/Program Files (x86)
  • ในตัวอย่างนี้ เรากำลังเพิ่มMediaMonkey ซึ่งเป็น (MediaMonkey)ยูทิลิตี้เครื่องเล่นเพลง(music player utility)แบบเก่า คลิก(Click)ที่ ไฟล์ .exe เมื่อเราพบ แล้วคลิกเปิด(Open)

  • ในตัวเลือกประสิทธิภาพ ให้คลิกที่Apply ตอนนี้MediaMonkeyจะทำงานนอกการป้องกัน DEP(DEP protection)ในขณะที่ตัวอื่นๆ ทั้งหมดจะทำงานภายในการป้องกัน DEP(DEP protection)

ปิด DEP โดยสิ้นเชิง(Turn DEP Completely Off)

หากคุณต้องการปิดDEPโดยสมบูรณ์ เราขอแนะนำให้คุณดำเนินการดังกล่าวเพื่อเป็นส่วนหนึ่งของการแก้ไขปัญหาเท่านั้น DEPพร้อมที่จะปกป้องคุณ 

เนื่องจากเป็นสิ่งที่ไม่แนะนำ จึงไม่มีวิธีชี้และคลิกที่ดี มาดูกันว่าเราจะปิดDEPได้อย่างไร

  • เปิด หน้าต่าง คำสั่ง(Command )ในฐานะผู้ดูแล(Administrator)ระบบ ทำได้โดยพิมพ์cmdในช่องค้นหาโปรแกรม(program search field)ใกล้กับเมนูStart

  • ป้อนคำสั่งbcdedit.exe /set {current} nx AlwaysOff แล้วกด Enter

bcdedit.exeเป็นยูทิลิตี้ Windows สำหรับแก้ไขb oot cการกำหนดค่าd ata(d)ดังนั้นbdcedit

/set บอกให้ bcedit ตั้งค่ารายการค่าตัวเลือก(option value entry)ในการ กำหนดค่า การบูต(boot configuration)

{current}บอกให้ becedit ทำงานกับการกำหนดค่าการบูต(boot configuration)ที่กำลังใช้อยู่ในขณะนี้

nxย่อมาจากn o e x ecute และเป็นชื่อการตั้งค่า(setting name)สำหรับDEPในการ กำหนดค่า การบูต(boot configuration)

AlwaysOffอธิบายตนเองได้

  • รีสตาร์ทคอมพิวเตอร์
  • ตอนนี้ DEP(DEP)จะถูกปิดโดยสมบูรณ์และถาวร

เปิด DEP สำหรับทุกสิ่ง(Turn DEP On For Everything)

ในการเปิดใช้DEPสำหรับทุกอย่างกระบวนการและคำสั่ง(process and command)ก็เหมือนกับด้านบน

  • เปิด หน้าต่าง คำสั่ง(Command )ในฐานะผู้ดูแลระบบ(Administrator)โดยทำตามคำแนะนำในขั้นตอนข้างต้น
  • ป้อนคำสั่งbcdedit.exe  bcdedit.exe /set {current} nx AlwaysOn

  • รีสตาร์ทคอมพิวเตอร์
  • DEPจะถูกเปิดและโปรแกรมทั้งหมดจะถูกตรวจสอบ

หลังจากเปลี่ยนDEPเป็นเปิดตลอดเวลาหรือปิดตลอดเวลา จะไม่(NOT)สามารถเปลี่ยนแปลงได้ผ่านแท็บการป้องกันการดำเนินการข้อมูล(Data Execution Prevention tab)ในการตั้งค่าระบบ 

เรามาดูวิธีการเปลี่ยนเพื่อให้ปุ่มตัวเลือกในแท็บ DEP(DEP tab)กลับมาใช้งานได้อีกครั้ง

ตั้งค่า DEP กลับเป็นพฤติกรรมเริ่มต้น(Set DEP Back To Default Behavior)

ในการตั้งค่า การทำงานของ DEPกลับเป็นค่าเริ่มต้นและทำให้สามารถจัดการได้อีกครั้งผ่านการตั้งค่าระบบ ให้ทำดังต่อไปนี้

  • เปิด หน้าต่าง คำสั่ง(Command )ในฐานะผู้ดูแล(Administrator)ระบบ
  • ป้อนคำสั่งbcdedit.exe bcdedit.exe /set {current} nx OptIn

  • รีสตาร์ทคอมพิวเตอร์
  • ตอนนี้ปุ่มตัวเลือกในแท็บ DEP(DEP tab)ในการตั้งค่าระบบจะสามารถเข้าถึงได้อีกครั้ง

จะ DEP หรือไม่ DEP(To DEP Or Not To DEP)

เราขอแนะนำให้ปล่อยให้DEPเป็นการตั้งค่าเริ่มต้น(default setting)ของTurn on DEP สำหรับโปรแกรมและบริการ Windows ที่จำเป็นเท่านั้น(Turn on DEP for essential Windows programs and services only, ) เว้นแต่จำเป็นต้องเปลี่ยนเพื่อแก้ไขปัญหา ที่อาจเกี่ยวข้องกับ DEP(DEP-related)



About the author

ฉันเป็น windows, ios, pdf, ข้อผิดพลาด, วิศวกรแกดเจ็ตที่มีประสบการณ์มากกว่า 10 ปี ฉันได้ทำงานกับแอปพลิเคชันและเฟรมเวิร์กคุณภาพสูงของ Windows มากมาย เช่น OneDrive for Business, Office 365 และอื่นๆ งานล่าสุดของฉันได้รวมการพัฒนาโปรแกรมอ่าน pdf สำหรับแพลตฟอร์ม windows และการทำงานเพื่อทำให้ข้อความแสดงข้อผิดพลาดชัดเจนยิ่งขึ้นสำหรับผู้ใช้ นอกจากนี้ ฉันได้มีส่วนร่วมในการพัฒนาแพลตฟอร์ม ios มาสองสามปีแล้ว และคุ้นเคยกับทั้งคุณสมบัติและลักษณะเฉพาะของมันมาก



Related posts