如何禁止Windows文件保护(WFP)

分类: 操作系统 2009-10-19 14:56  393人阅读  评论(0)  收藏  举报

如何禁止Windows文件保护(WFP)。我们先来了解下WFP是如何工作的。相关的文件是sfc_os.dll(2000下是sfc.dll,在xp下也有sfc.dll文件,但都是调用sfc_os.dll的功能)和 Winlogon.exe 。

Winlogo进程通过调用sfc dll 导出的函数进行文件保护,后者通过FindFirstChangeNotification函数在用户态监视要保护的目录,然后通过WaitForSingleObject等待事件的发生。实际上如果你通过object viewer观察这个进程,会找到每个保护目录的句柄。这里我用Process Explorer观察得到:

EVENT  /BaseNamedObjects/WFP_IDLE_TRIGGER

File        D:/WINDOWS/system32/dllcache

File        D:/WINDOWS/system32

……

那么,我们是可以通过FindCloseChangeNotification或CloseHandle(两个实际是相同的)来停止WFP监视系统目录。

简要步骤如下:

1.      在管理员身份下运行程序,提升自已进程的SeDebugPrivileges权限

2.      找到winlogo进程的ID

3.      以PROCESS_DUP_HANDLE权限打开winlogo进程(后面要复制winlogo进程内的句柄)

4. 通过NtQuerySystemInformation函数,遍历winlogo进程内所有打开的句柄。
5.  通过NtQueryObject查询句柄对象的名称,如果名称是我们需要停止保护的目录,则用DuplicateHandle复制句柄到我们进程,

带DUPLICATE_CLOSE_SOURCE标志,然后调用CloseHandle关闭该句柄。

详细代码参考:http://bbs.driverdevelop.com/htm_data/101/0705/101763.html

Sfc_os.dll导出的第5号函数(SetSfcFileException),也可用于禁止Windows文件保护。通常,这个函数使得由参数指定的被保护文件在60秒内可以修改替换,实际测试后,发现在xp下是没有这个时间限制的。函数原型:

SetSfcFileException (DWORD param1, PWCHAR param2, DWORD param3);

param1: Always set to 0
param2: The full path of the file to modify later
param3: Always set to –1

代码示范:

typedef DWORD(__stdcall *CPP) (DWORD param1, PWCHAR param2, DWORD param3);

void Disable_WFP()

{
HINSTANCE hmod=LoadLibrary("sfc_os.dll");
CPP SetSfcFileException;

// the function is stored at the fifth ordinal in sfc_os.dll 
SetSfcFileException= (CPP)GetProcAddress(hmod,(LPCSTR)5);

SetSfcFileException(0, L"c://windows//system32//calc.exe",-1);

//Now we can modify the system file in a complete stealth.

}

--------------------------------

上面的方法,重启之后将会失效

Cryptographic Services

引用:

提供三种管理服务: 编录数据库服务,它确定 Windows 文件的签名;受保护的根服务,它从此计算机添加和删除受信根证书颁发机构的证书;和密钥(Key)服务,它帮助注册此计算机获取证书。如果此服务被终止, 这些管理服务将无法正常运行。如果此服务被禁用,任何依赖它的服务将无法启动。

在大家的反复测试下 发现 CS服务以及WFP的几个特性 CS服务在第一次关闭以后 会自动启用
(往后 重复启动 停止 CS都不会自动启用了)
so 我想这就是 envymask为什么测试会弹出框的原因
有两个解决的办法:
1.利用luoluo提出的替换服务 把 cs服务用其他服务替换 那么即使cs再次启动 也不能启检查作用
2.修改注册表 HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Hardware Profiles/0001/System/CurrentControlSet/Enum/ROOT/LEGACY_CRYPTSVC/0000

0值 为启用
1值 为禁用

为了彻底干掉cs服务 我们设值为1 
wfp的特性 仅在系统文件被删除 或者 替换的时候 调用cs服务对其进行检测
而当我们结束cs服务 删除 或者 替换系统文件以后 再次启动cs服务 wfp不会对系统文件是否改动
做检测 所以wfp的监控 是动态的

如何禁止Windows文件保护(WFP)相关推荐

  1. Windows 文件保护的注册表设置

    http://support.microsoft.com/kb/q222473/ 察看本文应用于的产品 <script type="text/javascript">f ...

  2. C++ 暂停Windows文件保护

    C++ 暂停Windows文件保护 Posted by JiaJia 13 February,2009 (0)Comment #include <stdio.h> #include < ...

  3. Win10强制更新怎么关闭 彻底禁止Windows自动更新

    很多Win10用户来说经常会遇到这样的烦恼,电脑系统会不时的提醒自动更新,而且一等就要等很长时间,而通过手动禁止Windows update自带更新服务,往往会出现死灰复燃现象. 自己的电脑,竟然做不 ...

  4. 【WIN10相关】如何彻底禁止Windows 10自动更新?

    下面这篇提问对win10自动更新的原因讲得比较清楚,其他的回答也补充了不少细节. https://www.zhihu.com/question/287260272 最好用且无副作用的方法: 如何彻底禁 ...

  5. 让应用程序禁止Windows屏幕保护

    让应用程序禁止Windows屏幕保护 2000-03-21· 周新栋·计算机世界日报 如果在你的程序中需要一个很长的时间段来进行大量的数据处理,这段时间长得足以使Windows因检测不到用户动作而激活 ...

  6. 禁止windows系统创建快捷方式时添加文字“- 快捷方式”

    转载自如何禁止windows系统创建快捷方式时添加文字"- 快捷方式",仅作学习交流使用 如何禁止windows系统创建快捷方式时添加文字"- 快捷方式" 20 ...

  7. 禁止Windows更新自动安装驱动程序

    禁止Windows更新自动安装驱动程序 问题 解决方案 方案1:修改系统设置 方案2:修改组策略 方案3:修改注册表 方案4:回退驱动 问题 Windows更新时,会自动更新驱动程序,甚至有时会将驱动 ...

  8. u盘无法复制文件进去_只需一招,禁止Windows复制文件到U盘,再也不用担心你的资料被拷走!...

    现在,我们日常的生活和工作都是电脑全程陪伴,可以说是离不开电脑了. 也正是因为电脑的功能那么多,而且在保存资料方面,相比纸质资料来讲,确实有十分大的优势! 因此,有许多人都会将一些重要的个人资料或者是 ...

  9. [图文教程] 禁止 Windows 10 自动下载和更新驱动程序(转)

    微软在 Windows 8 系统开始引入驱动自动更新功能,同时还内置网卡驱动在全新安装系统时不用担心没网. 驱动自动更新实际是个非常不错的功能因此蓝点网此前都是极力推荐的,但Windows 10开始我 ...

最新文章

  1. 10.Verilog状态机使用方法
  2. ASP.NET验证控件之RequiredFieldValidator
  3. 网上教育能改变教育不公平的现状吗?
  4. 弱引用什么时候被回收_Java基础 强引用、弱引用、软引用、虚引用
  5. 摄像头图像分析目标物体大小位置_摄像头的原理、组成、选型及应用
  6. c++ int *p = new int()
  7. jdk1.6的项目可以用1.8吗_摩托车链条的保养项目有哪些?可以用高压水枪清洗吗?...
  8. 高岭土吸附阳离子_高岭石对金属阳离子的吸附特性研究
  9. HID、SCSI、CCID设备的通信
  10. 拖动滑块验证 php,基于JS组件实现拖动滑块验证功能
  11. 计算机打印的接口类型,按打印机与计算机的接口类型:可分为并行、串行和USB接口...
  12. 68pin SCSI接头针脚排序
  13. Unity3D-人物角色选择
  14. 14072202(带IK的Recoil)
  15. 设备管理器出现“未知USB设备”同时蓝牙不可用的解决方法
  16. linux下zip文件密码破解Fcrackzip
  17. Quasi-Newton拟牛顿法(共轭方向法)
  18. Linux权限详解(chmod 777)
  19. nRF24L01--2.4G无线通信模块(1)(51单片机和51单片机通信)
  20. MATLAB Robotic System Toolbox 机械臂科氏矩阵算法

热门文章

  1. 【python脚本】写一个刷b站评论区的脚本
  2. 飞信系统4月29日升级后飞信机器人无法使用的解决办法
  3. 从零开始构建简易AI问答系统
  4. 音频编辑大师 3.3 注册名 注册码
  5. uni-app 小项目开发 仿小米商城
  6. 搜不到iPhone开的热点的解决办法
  7. 【Linux】Ubuntu系统中安装Rust时Command ‘curl’ not found解决方法记录
  8. 共享奢侈品平台潜力大 但真正要规模化赚钱还远着呢!
  9. soap soapenv SOAP-ENV 区别
  10. h5 跳转小程序微信浏览器不显示跳转按钮