DEP (پیشگیری از اجرای داده ها) را در ویندوز پیکربندی یا خاموش کنید

پیشگیری از اجرای داده ها(Data Execution Prevention) ( DEP ) یکی از آن چیزهای «مبهم» است. وقتی کار خودش را می‌کند و دخالت نمی‌کند، نعمت است، اما وقتی دخالت می‌کند نفرین است. 

بیایید به DEP و نحوه پیکربندی آن نگاه کنیم، یا بسته به نیاز شما، DEP را خاموش کنیم.(DEP)

DEP چیست و چه کاری انجام می دهد؟(What Is DEP & What Does It Do?)

طبق گفته مایکروسافت، 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’s detailed description of Data Execution Prevention) را بخوانید .

پس چرا DEP مشکلاتی ایجاد می کند؟(So Why Does DEP Cause Problems?)

حتی امروز هم کامپیوترها احمق هستند. آنها نمی توانند استدلال کنند، آنها فقط می توانند از ابتدایی ترین منطق استفاده کنند. به‌علاوه، این منطق توسط انسان‌ها وارد آن‌ها می‌شود، بنابراین رایانه‌ها نیز اشتباهات ما را وارد آن‌ها می‌کنند. 

گاهی اوقات، برنامه های خوب در مناطقی که DEP(DEP) نظارت می کند و در آن فضاها کار  می کند، سرگردان می شوند .

هنگامی که این اتفاق می افتد، DEP گاهی اوقات کل برنامه را خاموش می کند و از طریق یک پیام خطا(error message) به شما اطلاع می دهد . اما گاهی اوقات DEP باعث می شود که برنامه خیلی ضعیف اجرا شود و هیچ چیز واضحی وجود نخواهد داشت که دلیل آن را به شما بگوید. 

چه برنامه هایی با DEP مشکل دارند؟(What Programs Have Problems With DEP?)

برنامه هایی که با DEP(DEP) در تضاد هستند معمولاً برنامه های قدیمی تر یا ساخته شده بر روی پایگاه های کد قدیمی هستند. بسیاری از نرم افزارهای Enterprise Resource Planning ( ERP ) بر پایه کدهایی ساخته شده اند که به دهه 1970 باز می گردد. در آن زمان DEP(DEP) وجود نداشت ، بنابراین برنامه به مناطقی می رود که DEP گشت زنی می کند.

برنامه های 64 بیتی پس از ایجاد DEP به خوبی ایجاد شدند، بنابراین برای مطابقت با آنها توسعه یافتند. اکثر برنامه هایی که با DEP(DEP) در تضاد هستند برنامه های 32 بیتی خواهند بود(will be 32-bit programs)

برنامه های غیر مایکروسافتی که به شدت با سرویس های (Services)ویندوز تعامل دارند یا (Windows) سرویس های (Services)ویندوز(Windows) خود را اجرا می کنند ممکن است توسط DEP خاموش(DEP) شوند. در این صورت، فروشنده توصیه می کند که DEP(DEP) را به طور کامل خاموش کنید .

برای کاربر خانگی(home user) ، بازی‌های قدیمی که 32 بیتی هستند و برخی شبیه‌سازها برای اجرای بازی‌های قدیمی‌تر( emulators for playing even older games) ، بیشترین تداخل را با DEP دارند.

درایورهای دستگاه قدیمی(Old device) یا درایورهای دانلود شده از منابع غیر رسمی نیز ممکن است باعث ایجاد خطاهای DEP شوند. (DEP)فقط درایورها را از سازنده سخت افزار یا مایکروسافت(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 - 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)

در ویندوز 10(Windows 10) ، DEP به طور پیش‌فرض روی تنظیمات Turn on DEP فقط برای برنامه‌ها و سرویس‌های ضروری ویندوز(Turn on DEP for essential Windows programs and services only) است. بیشتر اوقات این کافی است. این بدان معناست که اکثر برنامه های شما توسط DEP نادیده گرفته می شود . 

اما اگر DEP به محافظت از رایانه کمک می کند و عملکردی(performance hit) ندارد ، ممکن است بخواهید برای همه برنامه ها به جز برنامه هایی که من انتخاب می کنم، Turn on DEP را انتخاب کنید(Turn on DEP for all programs except those that I select) . سپس اگر برنامه ای پیدا کردید که با DEP مشکل دارد ، می توانیم آن را به عنوان یک استثنا اضافه کنیم. بیایید نحوه انجام این کار را بررسی کنیم.

  • کنترل پنل(Control Panel ) را باز کنید سپس System را باز کنید.

  • در سمت چپ پنجره System ، روی Advanced System Settings کلیک کنید .

  • پنجره System Properties باید باز شود و از قبل روی تب Advanced تنظیم شده باشد. (Advanced)در قسمت Performance ، روی تنظیمات(Settings) کلیک کنید .

  • در پنجره Performance Options ، روی زبانه Data Execution Prevention کلیک کنید.

  • با Turn on DEP for all programs به جز برنامه هایی که من انتخاب کرده ام(Turn on DEP for all programs except those that I select) ، روی دکمه Add نزدیک پایین پنجره کلیک کنید.

  • به فایل اجرایی برنامه ای که می خواهیم به عنوان استثنا اضافه کنیم بروید. به احتمال زیاد در C:/Program Files (x86) خواهد بود. 
  • در این مثال، MediaMonkey ، یک (MediaMonkey)ابزار پخش موسیقی(music player utility) قدیمی را اضافه می کنیم . وقتی فایل exe را پیدا کردیم روی آن (.exe )کلیک(Click) کنید و روی Open کلیک کنید .

  • در Performance Options روی Apply کلیک کنید . اکنون، MediaMonkey خارج از حفاظت DEP(DEP protection) اجرا می شود در حالی که بقیه در حفاظت DEP(DEP protection) اجرا می شوند .

DEP را کاملاً خاموش کنید(Turn DEP Completely Off)

اگر می خواهید DEP را به طور کامل خاموش کنید، توصیه می کنیم این کار را فقط به عنوان بخشی از عیب یابی یک مشکل انجام دهید. DEP برای محافظت از شما وجود دارد. 

از آنجایی که این چیزی است که توصیه نمی شود، راه مناسبی برای انجام آن وجود ندارد. بیایید ببینیم چگونه می توانیم DEP را خاموش کنیم .

  • پنجره Command را به عنوان (Command )Administrator باز کنید . این کار را با تایپ cmd در قسمت جستجوی برنامه در(program search field) نزدیکی منوی Start انجام دهید.(Start)

  • دستور bcdedit.exe /set {current} nx AlwaysOff را وارد کرده و enter را فشار دهید.

bcdedit.exe یک ابزار ویندوز برای ویرایش b oot c پیکربندی d ata، از این رو 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 را به‌عنوان (Command )Administrator باز کنید و دستورالعمل‌های رویه بالا را دنبال کنید.
  • دستور bcdedit.exe /set {current} nx AlwaysOn را وارد کنید . 

  • کامپیوتر را مجددا راه اندازی کنید.
  • DEP روشن می شود و همه برنامه ها نظارت می شود.

پس از اینکه DEP را به حالت همیشه روشن یا همیشه خاموش تبدیل کردید، نمی(NOT) توان آن را از طریق تب Data Execution Prevention(Data Execution Prevention tab) در تنظیمات سیستم تغییر داد. 

بیایید نحوه تغییر آن را بررسی کنیم تا بتوان از دکمه های رادیویی در برگه DEP(DEP tab) دوباره استفاده کرد.

DEP را به حالت پیش فرض تنظیم کنید(Set DEP Back To Default Behavior)

برای بازگرداندن رفتار DEP به حالت پیش فرض و قابل مدیریت مجدد آن از طریق تنظیمات سیستم، موارد زیر را انجام دهید.

  • پنجره Command را به عنوان (Command )Administrator باز کنید .
  • دستور bcdedit.exe /set {current} nx OptIn را وارد کنید .

  • کامپیوتر را مجددا راه اندازی کنید.
  • اکنون دکمه های رادیویی در تب DEP(DEP tab) در تنظیمات سیستم دوباره قابل دسترسی هستند.

به DEP یا نه به DEP(To DEP Or Not To DEP)

توصیه می‌کنیم DEP را روی تنظیمات پیش‌فرض (default setting)روشن کردن DEP فقط برای برنامه‌ها و سرویس‌های ضروری ویندوز بگذارید،(Turn on DEP for essential Windows programs and services only, ) مگر اینکه تغییر آن برای عیب‌یابی مشکلاتی که ممکن است مربوط به DEP(DEP-related) باشد، ضروری باشد .



About the author

من یک مهندس نرم افزار و متخصص ویندوز 10 هستم. من بیش از دو سال تجربه کار با گوشی های هوشمند، ویندوز 10 و مایکروسافت اج را دارم. تمرکز اصلی من این است که دستگاه‌های شما بهتر و سریع‌تر کار کنند. من روی پروژه های مختلفی برای شرکت هایی مانند Verizon، IMac، HP، Comcast و بسیاری دیگر کار کرده ام. من همچنین یک مدرس معتبر در آموزش ابری Microsoft Azure هستم.



Related posts