最新消息:想得多,做的少。一天到晚瞎鸡巴搞。

Win7禁止进入安全模式

Windows编程 阿虚 407浏览 0评论

.      昨天任务有个要搞禁止让用户进入安全模式这个功能,系统范围从XP~Win10,但是使用某度搜【禁止系统进入安全模式】得知XP下将注册表两个项修改名称就好

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\Network

.      但是你搜索【Win7禁止系统进入安全模式】关键字得知的还是千篇一律的相同的方法,别人还会好心的告诉你需要设置下【注册表的权限】但是这部分却没有配图给你。如果你信的了话你设置win7+的注册表权限想要修改这两项注册表完全没用!!!!。是的完全Win7+的注册表压根就不能修改这两项,你就算是在SYSTEM权限下你也无法修改这两项注册表项的名称,也无法删除!!!!。至此我开始怀疑是不是合适干【程序员】这一行。

.      其实上面说了这么多其实只是想说如果搜索一些比较【冷门】的知识某度还是不靠谱的,必进某度主要还是卖哔艹约为主,搜索只是它的副业。

.      Win7+的禁止用户进入安全模式时从bcdedit 禁止掉F8的菜单就好,禁用掉F8菜单也就同样满足了用户不能进入安全模式了。

bcdedit /set {bootmgr} displaybootmenu no 禁用F8菜单
bcdedit /set {bootmgr} displaybootmenu yes 启用F8菜单.


.      城市套路深,没想到微软套路也深。不仅仅通过F8来进入安全模式,通过命令“msconfig”->引导->勾上安全引导,然后重启直接进入安全模式。不过所幸“msconfig”并非是类似怼lib界面库实现,每个控件都有自己的窗口句柄,直接弄个进程不停的跑是否存在窗口“系统配置”然后枚举子窗口将“安全引导”控件直接隐藏就好。

BOOL CALLBACK EnumProc(HWND hWnd, LPARAM lparam)
{
    if (!hWnd)
    {
        return TRUE;
    }

    WCHAR name[MAXBYTE];

    GetWindowText(hWnd, name, MAXBYTE);
    
    HString str_name(name);

    if (str_name != L"安全引导(&F)")
    {
        return TRUE;
    }

    CheckDlgButton(::GetParent(hWnd),::GetWindowLong(hWnd,GWL_ID),(DWORD)lparam);
     
    ShowWindow(hWnd, SW_HIDE); 

    return FALSE;
}

DWORD WINAPI msconfig( LPVOID lpParameter)
{
    do 
    { 
        Sleep(1000);
        
        HWND parhwnd = FindWindowEx(NULL, NULL, NULL, L"系统配置");
        if (!parhwnd)
        {  
            continue;
        }


        EnumChildWindows(parhwnd, EnumProc, 0);  

 
    } while (true);
    
    return 0;
}

转载请注明:虚无 » Win7禁止进入安全模式

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址