1. 程式人生 > >禁用安全模式

禁用安全模式

safemode 一個 組策略 get 鏈接 過程 log current tps

安全模式是Windows操作系統中一種特殊的登陸系統的方式。該模式是在不加載第三方設備驅動程序的情況下啟動操作系統,進入後可以刪除頑固文件、查殺病毒、解除組策略等。因為企業辦公網環境下往往會部署一些安全防護類的軟件,用戶如果能夠進入安全模式,則輕易的就可以幹掉這些防護類、監控類的軟件,所以企業內部往往會禁用安全模式。手動禁用往往比較麻煩,網上下載的工具質量又參差不齊,因此本文將介紹禁用安全模式以及禁用之後再啟用安全模式的代碼層面實現方法,你自己就可以寫一個,快捷方便安全。

方法其實比較簡單,就是把註冊表

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/SafeBoot

鍵下的MinimalNetwork鍵刪掉 或 改名即可。推薦改個名字(方便以後恢復啟用安全模式),比如: 改成Minimal_backup,Network_backup 等。如果手動的進行修改的話,由於權限不足,操作會比較麻煩,可參考百度經驗。

本文主要介紹下如何使用代碼的方式去實現禁用,文章最後會給出現成的工具下載鏈接。

  • 第一步,調整進程權限
CAccessToken token;CAccessToken token;
token.GetProcessToken(TOKEN_ALL_ACCESS);
token.EnablePrivilege(SE_TAKE_OWNERSHIP_NAME);
  • 第二步,調整指定註冊表鍵的權限

下面以更改 MACHINE\\SYSTEM\\CurrentControlSet\\Control\\SafeBoot\\Minimal 的權限為例,Network鍵是一樣的

SetNamedSecurityInfoW(L"MACHINE\\SYSTEM\\CurrentControlSet\\Control\\SafeBoot\\Minimal", 
    SE_REGISTRY_KEY, 
    OWNER_SECURITY_INFORMATION, 
    (PSID)Sids::Admins().GetPSID(), 
    NULL, 
    NULL, 
    NULL);

CDacl dacl;
dacl.AddAllowedAce(Sids::Admins(), GENERIC_ALL);

SetNamedSecurityInfoW(L"MACHINE\\SYSTEM\\CurrentControlSet\\Control\\SafeBoot\\Minimal", 
    SE_REGISTRY_KEY, 
    DACL_SECURITY_INFORMATION, 
    NULL, 
    NULL, 
    (PACL)dacl.GetPACL(),
    NULL);
  • 第三步,將 Minimal 和 Network 改名或刪除即可

由於比較簡單,這一步就不貼代碼了


上面介紹的是禁用的方法,啟用的方法就是其逆過程,將之前改的名字再改回去即可。

禁用安全模式工具下載鏈接:DisableSafeMode

使用方法:1. 雙擊運行是禁用安全模式,需要以管理員方式運行 2. 命令行方式執行,帶任意的參數(比如: DisableSafeMode.exe xxx),是啟用安全模式。

工具會修改敏感位置註冊表,所以安全工具會彈個窗警告一下。如果需要代碼的話,請註明理由並留下郵箱,單發。

註意:對於個人用戶其實是不推薦禁用安全模式的,當因為某些原因無法進入系統時,安全模式是救命稻草。

禁用安全模式