判断系统dll key等等。。。。
BOOL SfcIsFileProtected( IN HANDLE RpcHandle, IN LPCWSTR ProtFileName );
BOOL SfcGetNextProtectedFile( IN HANDLE RpcHandle, IN PPROTECTED_FILE_DATA ProtFileData );
BOOL SfcIsKeyProtected( IN HKEY KeyHandle, IN LPCWSTR SubKeyName, IN REGSAM KeySam );
Windows资源保护
- 2018年5月31日
- 2分钟阅读时长
目的
Windows资源保护(WRP)可防止替换作为操作系统一部分安装的基本系统文件,文件夹和注册表项。它从Windows Server 2008和Windows Vista开始可用。应用程序不应覆盖这些资源,因为它们由系统和其他应用程序使用。保护这些资源可防止应用程序和操作系统故障。WRP是Windows文件保护(WFP)的新名称。WRP保护注册表项和文件夹以及基本系统文件。
适用的地方
所有基于Windows的应用程序及其在Windows Server 2008或Windows Vista及更高版本操作系统上运行的安装程序都应该了解WRP。在Microsoft Windows Server 2003或Windows XP上运行的所有基于Windows的应用程序及其安装程序都应该了解WFP。
开发者观众
WRP API旨在供C / C ++程序员使用。WRP API有两个功能:SfcIsFileProtected和SfcIsKeyProtected。
运行时要求
仅使用SfcIsFileProtected函数的应用程序需要Windows Server 2008,Windows Vista,Windows Server 2003或Windows XP。使用SfcIsKeyProtected函数的应用程序需要Windows Server 2008或Windows Vista。
在这个部分
话题 | 描述 |
---|---|
关于Windows资源保护 | 有关WRP的一般信息。 |
Windows资源保护参考 | WRP的参考文档。
|
关于Windows资源保护
- 2018年5月31日
- 2分钟阅读时长
Windows资源保护(WRP)可防止替换作为操作系统一部分安装的基本系统文件,文件夹和注册表项。它从Windows Server 2008和Windows Vista开始可用。完全访问修改受WRP保护的资源的权限仅限于TrustedInstaller。受WRP保护的资源只能使用Windows模块安装程序服务支持的资源替换机制进行更改。保护这些资源可防止应用程序和操作系统故障。
应用程序不应尝试修改受WRP保护的资源,因为Windows和其他应用程序使用这些资源。如果应用程序尝试修改受WRP保护的资源,则可能会产生以下结果。
- 尝试替换,修改或删除关键Windows文件或注册表项的应用程序安装程序可能无法安装该应用程序,并将收到一条错误消息,指出拒绝访问该资源。
- 尝试添加或删除子密钥或更改受保护的注册表项值的应用程序可能会失败,并将收到一条错误消息,指出拒绝访问该资源。
- 依赖于将任何信息写入受保护的注册表项,文件夹或文件的应用程序可能会失败。
WRP是Windows文件保护(WFP)的新名称。WRP保护注册表项和文件夹以及基本系统文件。WFP在Microsoft Windows Server 2003和Windows XP中可用。WRP替换Windows Server 2008和Windows Vista中的WFP。
以下主题描述了WRP:
受保护的资源列表
- 2018年5月31日
- 2分钟阅读时长
完全访问修改受WRP保护的资源的权限仅限于TrustedInstaller。仅使用Windows模块安装程序服务支持的资源替换机制可以更改受WRP保护的资源。
WRP使用Windows Server 2008或Windows Vista安装的以下扩展名保护文件:.dll,.exe,.ocx和.sys。
WRP使用以下扩展名保护Windows Server 2008或Windows Vista安装的关键文件:.acm,.ade,.adp,.app,.asa,.asp,.aspx,.ax,.bas,.bat ,. bin,.cer,.chm,.clb,.cmd,.cnt,.cnv,.com,.cpl,.cpx,.crt,.csh,.dll,.drv,.dtd,.exe,.fxp, .grp,.h1s,.hlp,.hta,.ime,.inf,.ins,.isp,.its,.js,.jse,.ksh,.lnk,.mad,.maf,.mag,.mam ,.man,.maq,.mar,.mas,.mat,.mau,.mav,.maw,.mda,.mdb,.mde,.mdt,.mdw,.mdz,.msc,。msi ,. msp,.mst,.mui,.nls,.ocx,.ops,.pal,.pcd,.pif,.prf,.prg,.pst,.reg,.scf,.scr,.sct,.shb, .shs,.sys,.tlb,.tsp,.url,.vb,.vbe,.vbs,.vsmacros,.vss,.vst,.vsw,.ws,.wsc,.wsf,.wsh,.xsd和.xsl。
WRP保护关键文件夹。可能会锁定仅包含受WRP保护的文件的文件夹,以便只有Windows受信任的安装程序才能在该文件夹中创建文件或子文件夹。可以部分锁定文件夹以使管理员能够在文件夹中创建文件和子文件夹。
WRP保护Windows Server 2008和Windows Vista安装的基本注册表项。如果密钥受WRP保护,则可以保护其所有子密钥和值。
WRP在位于%Windir%\ winsxs \ Backup 的缓存目录中复制重新启动Windows所需的文件。重新启动Windows不需要的关键文件不会复制到缓存目录。无法修改缓存目录的大小和复制到缓存的文件列表。
** Windows Server 2003和Windows XP:**
Windows文件保护(WFP)在WRP之前。
WFP使用以下扩展名保护Windows安装的文件:.dll,.exe,.ocx和.sys。此外,TrueType字体Micross.ttf,Tahoma.ttf和Tahomabd.ttf也受到保护。
在Windows安装结束时,WFP会对所有受保护文件进行扫描,以确保未通过无人参与安装安装的应用程序对其进行修改。WFP还将这些系统文件的经过验证的版本复制到缓存目录。当应用程序尝试替换受保护的文件时,WFP可以从缓存目录中还原原始文件。
默认值为%systemroot%\ system32 \ dllcache。若要为缓存指定其他位置,请创建以下注册表值:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ SFCDllCacheDir
这必须是本地路径。如果使用共享的所有客户端都运行相同的Service Pack和修补程序,则使用网络路径会为缓存文件创建单个共享网络源。
缓存的默认大小是无限制的。若要更改缓存的大小,请使用以下注册表设置:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ SFCQuota
如果值为SFC_QUOTA_ALL_FILES,则所有系统文件都将缓存在缓存目录中。
由于磁盘空间的考虑,可能不希望在缓存目录中维护所有系统文件的缓存版本。根据缓存的大小,WFP会将经过验证的文件版本存储在系统硬盘驱动器的缓存目录中。WFP将向缓存添加文件,直到缓存目录的大小达到指定的限制。
当应用程序尝试替换不在缓存中的受保护文件时,WFP会尝试从安装源还原原始文件,并在必要时提示用户。
https://docs.microsoft.com/zh-cn/windows/desktop/Wfp/windows-resource-protection-portal