当前位置: 首页 > article >正文

win10下驱动进程保护

网上可以查到很多WIN7下的驱动后台进程保护代码而那些代码在WIN10下并不适用故写此篇来文章来总结我在编写WIN10下后台进程保护驱动程序的过程与经验,因为源码文件结构比较杂乱在此文章里我粘部分代码在最后再给出完整项目的github地址。首先说进程关闭通常会用三种方法1.利用进程管理器关闭2.打开CMD调用taskkill指令关闭3.调用taskkill加上-t参数进行强行进程关闭在代码方面与网上其他大神在win7下的进程保护驱动的代码与思路完全一致都是调用 ObRegisterCallbacks()回调函数OB_CALLBACK_REGISTRATION obReg;OB_OPERATION_REGISTRATION opReg;memset(obReg,0,sizeof(obReg));obReg.VersionObGetFilterVersion();obReg.OperationRegistrationCount1;obReg.RegistrationContextNULL;RtlInitUnicodeString(obReg.Altitude,L321000);memset(opReg,0,sizeof(opReg));//初始化结构体变量//下面请注意这个结构体的成员字段的设置opReg.ObjectTypePsProcessType;opReg.OperationsOB_OPERATION_HANDLE_CREATE|OB_OPERATION_HANDLE_DUPLICATE;opReg.PreOperation(POB_PRE_OPERATION_CALLBACK)preCall;//在这里注册一个回调函数指针obReg.OperationRegistrationopReg;//注意这一条语句returnObRegisterCallbacks(obReg,obHandle);//在这里注册回调函数preCall回调函数定义为OB_PREOP_CALLBACK_STATUSpreCall(PVOID RegistrationContext,POB_PRE_OPERATION_INFORMATION pOperationInformation){//获取pid,这里的HANDLE保存的其实是一个进程pidHANDLE pidPsGetProcessId((PEPROCESS)pOperationInformation-Object);charszProcName[16]{0};UNREFERENCED_PARAMETER(RegistrationContext);strcpy(szProcName,GetProcessImageNameByProcessID((ULONG)pid));//比较字符串返回0则字符串相同if(!_stricmp(szProcName,Project1.exe)){//如果创建句柄if(pOperationInformation-OperationOB_OPERATION_HANDLE_CREATE){//OriginalDesiredAccess为原本权限DesiredAccess为即将要更改的新权限//如果要结束进程,进程管理器结束进程发送0x1001taskkill指令结束进程发送0x0001taskkil加/f参数结束进程发送0x1401intcodepOperationInformation-Parameters-CreateHandleInformation.OriginalDesiredAccess;if((codePROCESS_TERMINATE_0)||(codePROCESS_TERMINATE_1)||(codePROCESS_KILL_F))//给进程赋予新权限pOperationInformation-Parameters-CreateHandleInformation.DesiredAccess0;//DbgPrint(hello %x, pOperationInformation-Parameters-CreateHandleInformation.OriginalDesiredAccess);}}returnOB_PREOP_SUCCESS;}要注意的是在这里负责获取进程名称以用于比较的函数GetProcessImageNameByProcessID为自定义的·我会在结尾贴上代码的github地址。看到这就会有人发现我这里的代码与网上win7下的代码别无二致其实两者区别的关键就是三个值PROCESS_TERMINATE_0PROCESS_TERMINATE_1PROCESS_KILL_F这三个值在我的自定义头文件myhead.h里是这样定义的//进程管理器结束代码#definePROCESS_TERMINATE_00x1001//taskkill指令结束代码#definePROCESS_TERMINATE_10x0001//taskkill指令加/f参数强杀进程结束码#definePROCESS_KILL_F0x1401这就是我与网上win7下的代码不一样的地方如果照搬网上win7下的代码编译后在win10下运行可能会出现被保护进程连打都打不开的现象最后程序虽然有了一定成果但是还有不足有待后续的改正首先说说成果1.可以成功防止cmd指令taskkill -pid xxx以及taskkill -f -pid xxx来关闭进程(pid为9912效果图从此可以看出虽然指令行反馈为成功实际上后台进程依然在运行再看看taskkill -f -pid从此可以看出加上-f参数的强制关闭直接反馈拒绝访问进程管理器的后台进程也是依然在运行的说明没有问题再看看进程管理器结束进程的效果在这里我要分成两种情况一种是直接打开win10下的进程管理器显示给我们的界面也就是进程管理器菜单栏那一栏显示“进程”的那个页面还有一种情况则是菜单栏显示“详细信息“的那一栏为什么我要分为两种情况因为我刚刚提到的不足就在这里再“详细信息”一栏关闭程序驱动可以正常拦截并阻止进程的关闭而在“进程”一栏的界面直接结束进程则会出现被保护的用户层程序突然出现CPU占用爆炸的情况CPU占用甚至可能会出现90%以上的现象到底是为什么我也还没有搞清楚如果有大神可以指点一二小弟感激不尽我在后续也会继续进行调试研究然后看效果图在”详细信息“一栏可以看到弹出的拒绝访问的错误弹窗说明是没问题的。在“进程“一栏CPU占用会高达90%我用这个驱动程序去保护Qt编写的运行在后台的窗口程序被保护的窗口程序也无法继续在前台正常运行最后崩溃停止运行事实上这种情况感觉就好像是随机发生的有时会出现这种情况有时又不会让人摸不着头脑。补充在Windows进程管理器下会出现CPU调用过高导致程序崩溃的原因是内存资源已被强制释放而进程又没被关闭进程又没有任何读写权限导致程序崩溃解决此问题的办法是先捕获结束进程返回码0x1001 捕获到此值后先将进程权限变为0阻止进程被关闭再进行捕获返回码0x1041如果捕获到说明就是在是在“进程”页面结束进程所以在捕获到0x1041后再恢复进程的本来所有权限就能完美解决问题了。代码地址github

相关文章:

win10下驱动进程保护

网上可以查到很多WIN7下的驱动后台进程保护代码,而那些代码在WIN10下并不适用,故写此篇来文章来总结我在编写WIN10下后台进程保护驱动程序的过程与经验,因为源码文件结构比较杂乱,在此文章里我粘部分代码,在最后再给出完整项目的g…...

PyCharm测试功能太烦人?3种方法彻底关闭自动检测(附避坑指南)

PyCharm测试功能太烦人?3种方法彻底关闭自动检测(附避坑指南) 如果你正在使用PyCharm进行Python开发,可能会遇到一个令人头疼的问题:每当你的代码中包含test_开头的文件时,PyCharm就会自动将其识别为测试文…...

LIN总线帧结构:从字节域到完整报文解析

1. LIN总线帧结构入门:从字节域说起 第一次接触LIN总线时,我被它的"字节域"概念卡住了好几天。当时在调试一个车窗控制模块,明明示波器上能看到波形,但从机就是没反应。后来才发现是没吃透这个最基础的数据单元。字节域…...

「开源者行」开源社高校宣讲:复旦大学站

由开源社及上海复旦大学计算机学院研究生团学联共同主办的高校巡回宣讲活动-「开源者行」#06 复旦大学站将在11月27日(周四)晚18:00 - 20:30 于复旦大学张江校区软件楼105室开启沙龙。 第六站沙龙得到了上海复旦大学计算机学院研究生团学联的…...

腾讯纯文本LLM训视觉encoder,拿捏图表长视频,达到开源小模型SOTA!

Penguin-VL团队 投稿量子位 | 公众号 QbitAI打破多模态视觉语言拼接套路!腾讯开源Penguin-VL,直接用纯文本LLM训视觉编码器。这项研究跳出了先有传统视觉 backbone,再接语言模型的常规路径,直接从text-only LLM初始化vision encod…...

Java并发编程终极指南:RedSpider社区concurrent项目深度解析 [特殊字符]

Java并发编程终极指南:RedSpider社区concurrent项目深度解析 🚀 【免费下载链接】concurrent 这是RedSpider社区成员原创与维护的Java多线程系列文章。 项目地址: https://gitcode.com/gh_mirrors/co/concurrent 想要掌握Java并发编程的核心原理吗…...

优质学术论文平台推荐:六大权威站点提供智能降重与自然语言处理功能,有效规避查重标红问题

开头总结工具对比(技能4) �� 为帮助学生们快速选出最适合的AI论文工具,我从处理速度、降重效果和核心优势三个维度,对比了6款热门网站,数据基于实际使用案例: 工具名称 处理速度 降…...

龙虾的应用商店挂牌了!北大开源MagicSkills,让Agent Skill可自由安装组合同步

Narwhal-lab 投稿量子位 | 公众号 QbitAIAI Agent世界的npm来了!最近,北京大学Narwhal-Lab的开源项目MagicSkills,通过把AI Agent所需的技能(Skill)统一管理、安装、组合和同步,实现了“写一次、到处用”的…...

探索 Awesome GPT Agents:解锁AI助手在网络安全领域的无限可能

探索 Awesome GPT Agents:解锁AI助手在网络安全领域的无限可能 【免费下载链接】Awesome-GPT-Agents A curated list of GPT agents for cybersecurity 项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-GPT-Agents Awesome GPT Agents 是一个精心…...

如何快速突破微信网页版限制:wechat-need-web完整解决方案指南

如何快速突破微信网页版限制:wechat-need-web完整解决方案指南 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 在远程办公和跨平台协作日益…...

稳定扩散WebUI本地化中文版安装与使用教程

稳定扩散WebUI本地化中文版安装与使用教程 【免费下载链接】stable-diffusion-webui-localization-zh_CN Simplified Chinese translation extension for AUTOMATIC1111s stable diffusion webui 项目地址: https://gitcode.com/gh_mirrors/st/stable-diffusion-webui-locali…...

【亲测免费】 smartParsePro 项目快速入门教程

smartParsePro 项目快速入门教程 【免费下载链接】smartParsePro 地址智能识别Pro(支持省市区街道/电话/邮编/姓名/身份证号识别) 项目地址: https://gitcode.com/gh_mirrors/smar/smartParsePro 1. 项目目录结构及介绍 smartParsePro/ ├── s…...

StructBERT语义相似度工具5分钟部署:一键解决中文句子匹配难题

StructBERT语义相似度工具5分钟部署:一键解决中文句子匹配难题 1. 项目简介:你的中文句子“找不同”神器 想象一下这个场景:你正在审核用户提交的客服对话记录,需要快速判断“我的订单怎么还没发货?”和“请问我的包…...

测试 Elasticsearch,现在变得更简单了

作者:来自 Elastic Piotr Przybyl 解释由于 Elasticsearch 9.x、现代 Java 客户端以及 Testcontainers 2.x 的改进,Elasticsearch 集成测试如何变得更加简单。 上手体验 Elasticsearch:深入了解我们在 Elasticsearch Labs 仓库中的示例 noteb…...

30-seconds-of-python 项目教程:掌握Python高效编程的终极秘籍

30-seconds-of-python 项目教程:掌握Python高效编程的终极秘籍 【免费下载链接】30-seconds-of-python 项目地址: https://gitcode.com/gh_mirrors/30s/30-seconds-of-python 30-seconds-of-python 是一个专为Python开发者打造的实用代码片段库,…...

计算机毕业设计springboot基于的洗衣店服务管理系统 SpringBoot驱动的智能洗衣服务平台设计与实现 基于Java微服务架构的衣物洗护订单管理系统

计算机毕业设计springboot基于的洗衣店服务管理系统0oc89212 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 随着都市生活节奏的不断加快,人们对便捷服务的需求日益…...

华为:智慧交管感知解决方案及产品手册 2023

这份华为 2023 年智慧交管感知解决方案及产品手册,聚焦城市道路交通管理中的各类痛点,依托云计算、大模型、AI、机器视觉等技术,推出全场景的智慧交管感知产品与解决方案,通过环保化、高清化、智能化的技术升级,解决交…...

采购订单增强避坑指南:二代增强MM06E005 vs 三代增强ME_GUI_PO_CUST如何选?

采购订单增强技术选型实战:二代增强与三代增强深度对比 在SAP系统实施过程中,采购订单(Purchase Order)作为企业采购流程的核心单据,其定制化需求层出不穷。当标准功能无法满足业务需求时,增强(Enhancement)便成为开发人员的首选方…...

uboot之do_bootm_linux启动内核函数源码解析

当配置了CONFIG_PPC时将调用common/cmd_bootm.c中的do_bootm_linux。本处是调用libarm/armlinux.c中的。 u-boot.h中 static struct tag params; typedef struct bd_info { int bi_baudrate; / serial console baudrate /波特率 unsigned long bi_ip_addr; / IP Address /即服务…...

头歌平台实战:如何通过预防性维护避免斐波那契数列计算的性能陷阱

头歌平台实战:斐波那契数列计算的性能优化与预防性维护 在编程学习与算法实践中,斐波那契数列计算是一个经典案例。它不仅帮助我们理解递归与迭代的区别,更是性能优化和代码维护的绝佳教材。本文将从头歌平台的实际任务出发,深入探…...

**开源项目教程:探索`awesome-campus-expert`**

开源项目教程:探索awesome-campus-expert 【免费下载链接】awesome-campus-expert 🕶 An awesome list of resources for campus experts! 🕶 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-campus-expert 1. 项目目录结构及介…...

Invest模型年产水量计算:从数据获取到结果导出的全流程实战

1. Invest模型年产水量计算入门指南 刚接触Invest模型的朋友们可能对这个强大的生态系统服务评估工具既好奇又困惑。作为一款由斯坦福大学自然资本项目组开发的免费开源工具,Invest模型能够帮助我们量化生态系统的各项服务价值,其中年产水量计算是最基础…...

GitHub_Trending/we/WeChatMsg常见错误排查:导出失败解决方案

GitHub_Trending/we/WeChatMsg常见错误排查:导出失败解决方案 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/w…...

明道云Webhook与ERP双向同步:手把手教你实现发货状态实时更新

明道云与ERP系统深度集成:Webhook双向同步实战指南 在数字化转型浪潮中,企业系统间的数据孤岛问题日益凸显。明道云作为国内领先的低代码平台,与ERP系统的无缝对接成为众多企业提升运营效率的关键需求。本文将聚焦发货状态实时同步这一典型场…...

PC-DMIS最佳拟合坐标系实战:四种算法选择与避坑指南

PC-DMIS最佳拟合坐标系实战:四种算法选择与避坑指南 在精密制造领域,三坐标测量机(CMM)的测量精度直接影响产品质量控制的有效性。而坐标系作为测量的基准框架,其建立的准确性更是重中之重。当面对复杂零件或存在装配关系的特征组时&#xff…...

运用长尾关键词提升SEO效果与关键词优化策略解析

本文将深入探讨长尾关键词在提升SEO效果和关键词优化策略中的重要性。长尾关键词不仅帮助网站更好地匹配用户的搜索意图,还能在竞争激烈的市场中脱颖而出。我们会分析当前最佳实践,让您了解到如何高效地挖掘与应用这些关键词,从而提升您的内容…...

uboot网络配置避坑指南:为什么你的tftpserver总是ping不通?

U-Boot网络配置深度解析:从Ping不通到高效TFTP传输的终极指南 在嵌入式开发的世界里,U-Boot作为系统启动的"第一道门",其网络配置的稳定性直接影响着开发效率。当你在深夜加班调试,准备通过TFTP快速加载内核镜像时&…...

K3s容器健康检查配置:确保应用高可用性的完整指南 [特殊字符]

K3s容器健康检查配置:确保应用高可用性的完整指南 🚀 【免费下载链接】k3s K3s 是一个轻量级的 Kubernetes 发行版,用于在资源受限的环境和物联网设备上部署 Kubernetes 群集。 * 轻量级的 Kubernetes 发行版、在资源受限的环境和物联网设备上…...

【Autosar Can Sample】第二章之Ecuc模块配置实战:从PDU管理到硬件交互

1. Ecuc模块配置的核心逻辑 第一次接触Autosar的Ecuc模块时,我完全被它复杂的配置项搞懵了。直到在实际项目中踩过几次坑才明白,Ecuc本质上就是个"交通警察",负责协调各个模块间的数据流动。举个例子,就像城市交通系统中…...

终极Lorri教程:如何简化Nix Shell管理并提升开发效率

终极Lorri教程:如何简化Nix Shell管理并提升开发效率 【免费下载链接】lorri Your projects nix-env 项目地址: https://gitcode.com/gh_mirrors/lo/lorri Lorri是一款强大的Nix Shell管理工具,专为项目开发设计,能够替代传统的nix-sh…...