通过驱动保护进程方案 (Window )

阅读: 评论:0

通过驱动保护进程方案 (Window )

通过驱动保护进程方案 (Window )

## 前言


一般常用的保护方法有几种: 
 - 设置进程属性为隐藏。这种只能骗一般的人。
 - API钩子勾住任务管理器里的TermiteProcess进程。
 - API全局钩子够上面的那个进程,这样就不怕它用任务管理器之外的工具杀你了。
 - 勾住SSDT的函数,如果用卡巴,就有点麻烦,因为它也是用这招,就看谁先取得了。
 - 写内核态驱动。
 本文就是通过驱动保护进程的方案,在这里这个方案是分为两部分来做的,

一部分是驱动程序。
 driver.c:该文件定义了DriverEntry,它是驱动程序的入口点。该文件还定义了on_driver_unload. 卸载驱动程序时,调用此过程并停止保护。
device.c:该文件定义了与设备相关的功能。SetupIoDevice创建一个 IO 设备以与用户模式驱动程序加载程序进行通信。
major_functions.c:这个文件定义了主要功能处理程序IRP_MJ_*。具体来说,IRP_MJ_CREATE和IRP_MJ_CLOSE被IRP_MJ_WRITE处理。该程序将用于handle_buffer_message处理从IRP_MJ_WRITE.
major_functions.c:该文件定义handle_buffer_message处理从IRP_MJ_WRITE. 根据收到的命令,驱动程序将调用enable_protection或disable_protection。
protection.c:此文件执行与进程保护相关的所有操作。在enable_protection函数中,程序用于ObRegisterCallbacks注册句柄创建回调。回调函数是PreOperationCallback和PostOperationCallback。PreOperationCallback在创建进程句柄时调用。当驱动发现打开的进程句柄是我们要保护的进程时,就去掉访问权限,使任何人都无法访问受保护的进程。在disable_protection函数中,程序用于ObUnRegisterCallbacks取消注册回调,以便目标进程不再受到保护。

一部分为驱动加载程序

driver_loader 主要是完成load 上述驱动的。

  1. 将 和 protection.sys 放在同一个文件夹中。
  2. 以管理员身份运行
  3. 按 1,输入。驱动程序加载器将加载驱动程序。此步骤可能会失败,因为我没有适当的数字签名。您可能想要禁用驱动程序签名强制。
  4. 按 2,输入。输入要保护的进程的PID。驱动程序加载器将与驱动程序通信,驱动程序将启动保护。
  5. 尝试使用任务管理器或 taskkill 终止目标进程。
  6. 按 3,进入。驱动程序加载器将与驱动程序通信,驱动程序将停止保护。
  7. 按 4,进入。驱动程序加载程序将卸载驱动程序。

代码实现如下:

 

本文也是在学习过程中看到的,想着分享给大家,让大家共同学习。

本文发布于:2024-01-28 16:38:08,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064310898786.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:进程   方案   Window
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23