Google Chrome 有许多设置以“策略”的形式应用。在底层,这些是注册表项,通常位于HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome
。这些策略名义上设计为由 Active Directory 环境中的组策略启用(使用 ADM 或 ADMX 文件)。无论计算机是否加入域,其中许多策略都可以工作;大概 Chrome 只是读取注册表值。
但是,某些策略仅在计算机加入 Active Directory 或“或已注册设备管理的 Windows 10 Pro 或 Enterprise 实例”时才有效(请参阅关联)。由于策略配置值最终只是注册表项,因此 Chrome必须绕道而行检查计算机是否在 Active Directory 中。
我想知道,有没有办法欺骗 Chrome 以获取计算机的 Active Directory 成员身份,或者以其他方式说服 Chrome 遵守这些策略?
答案1
我找到了,或者说“创造”了一个解决方案。我不推荐这样做,但它确实有效。
以下是一些背景信息。Google Chrome 将某些策略限制于域成员计算机。我还没有找到明确的原因,但我从阅读文档和注释中得到的要点表明,这是一种安全预防措施,就好像域管理员拥有神奇的安全能力一样。Chrome 使用操作系统SHLWAPI dll 导出的函数。该 DLL 被导入到“chrome.dll”,它通常位于类似 的目录中c:\Program Files (x86)\Google\Chrome\Application\75.0.3770.80\chrome.dll
。
可以将二进制补丁应用于 chrome.dll,以将对 IsOS 的调用重定向到 SHLWAPI 导出的另一个函数。我发现一个很好的匹配是“ChrCmpIA”,它将始终返回 true,给定传递给 IsOS 的参数。chrome.dll 按序数(而不是按名称)导入 IsOS - IsOS 的序数为 437,而 ChrCmpIA 的序数为 587。存储在 DLL 中的 437 序数如下所示 0xb5,0x01,0x00,0x00,0x00,0x00,0x00,0x80 。它可以替换为 0x4b,0x02,0x00,0x00,0x00,0x00,0x00,0x80 。从版本 75 开始,Chrome 有两个序数为 437 的导出,只有第一个应该修补。像 HxD 这样的程序可以轻松完成此操作。我在 Chrome 75.0.3770.80(64 位)上使用过它,它是通过企业 MSI 包安装的;它也可能适用于其他版本(因为此配方不使用硬编码地址)。
标准免责声明 - 先备份您的 chrome.dll(或准备重新安装)。除非出于“教育目的”,否则不要这样做。使用此策略需要您自担风险;可能会有数据丢失、被解雇、被驱逐出境和被吊销公民身份,甚至患上流感。
答案2
我们可以伪造域名注册,如下所示本文.
支持除家庭版之外的 Windows 10 和 11 各个版本。
- 首先创建系统还原点或备份
- 将以下代码保存到
"fake-domain.reg"
文件中(引号强制扩展) regedit
以管理员身份运行File
从菜单导入文件chrome://policy
在浏览器中打开并点击Reload policies
REGEDIT4
; # Fake MDM-Enrollment - Key 1 of 2 - let a Win10 Machine "feel" MDM-Managed
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Enrollments\FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF]
"EnrollmentState"=dword:00000001
"EnrollmentType"=dword:00000000
"IsFederated"=dword:00000000
; # Fake MDM-Enrollment - Key 2 of 2 - let a Win10 Machine "feel" MDM-Managed
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Provisioning\OMADM\Accounts\FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF]
"Flags"=dword:00d6fb7f
"AcctUId"="0x000000000000000000000000000000000000000000000000000000000000000000000000"
"RoamingCount"=dword:00000000
"SslClientCertReference"="MY;User;0000000000000000000000000000000000000000"
"ProtoVer"="1.2"
答案3
你可以:
- 启动 Linux VM。
- 配置 SAMBA 作为域控制器。
- 将您的 Windows PC 加入该域
我认为您甚至不需要让域控制器保持运行。即使虚拟机关闭,它仍会保持加入状态。
SAMBA 配置: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller