码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 通过驱动保护进程方案 (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. 将 driver_loader.exe 和 protection.sys 放在同一个文件夹中。
    2. 以管理员身份运行 driver_loader.exe
    3. 按 1,输入。驱动程序加载器将加载驱动程序。此步骤可能会失败,因为我没有适当的数字签名。您可能想要禁用驱动程序签名强制。
    4. 按 2,输入。输入要保护的进程的PID。驱动程序加载器将与驱动程序通信,驱动程序将启动保护。
    5. 尝试使用任务管理器或 taskkill 终止目标进程。
    6. 按 3,进入。驱动程序加载器将与驱动程序通信,驱动程序将停止保护。
    7. 按 4,进入。驱动程序加载程序将卸载驱动程序。

    代码实现如下:

     https://github.com/SweetIceLolly/Kernel_Mode_Process_Protection

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

  • 相关阅读:
    fastadmin框架如何开启事务
    为什么那么多人选择找app外包公司,而不是自己组建团队开发app呢?
    AI绘图:Controlnet在ComfyUI中的使用教程:提升Stable Diffusion可控性
    Java开发面试--Redis专区
    物联网让生活更加轻松的五种方式
    web网页设计期末课程大作业——海贼王大学生HTML网页制作 HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计
    基于Java电动车上牌管理系统计实现(源码+lw+部署文档+讲解等)
    【苍穹外卖】HttpClient-快速理解&入门
    Unity学习笔记--入门
    猿创征文|HCIE-Security Day49:AC准入控制SACG
  • 原文地址:https://blog.csdn.net/houxian1103/article/details/126446436
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号