驱动开发:断链隐藏驱动程序自身
2023-06-13 09:16:22 时间
与断链隐藏进程功能类似,关于断链进程隐藏可参考《驱动开发:DKOM 实现进程隐藏》
这一篇文章,断链隐藏驱动自身则用于隐藏自身SYS驱动文件,当驱动加载后那么使用ARK工具扫描将看不到自身驱动模块,此方法可能会触发PG会蓝屏,在某些驱动辅助中也会使用这种方法隐藏自己。
驱动实现代码如下所示:
#include <ntifs.h>
HANDLE hThread;
VOID ThreadRun(PVOID StartContext)
{
LARGE_INTEGER times;
PDRIVER_OBJECT pDriverObject;
// 等待3秒 单位是纳秒
times.QuadPart = -30 * 1000 * 1000;
KeDelayExecutionThread(KernelMode, FALSE, ×);
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);
}
VOID UnDriver(PDRIVER_OBJECT driver)
{
DbgPrint(("Uninstall Driver Is OK \n"));
}
NTSTATUS DriverEntry(IN PDRIVER_OBJECT Driver, PUNICODE_STRING RegistryPath)
{
DbgPrint(("hello lyshark \n"));
PLIST_ENTRY pModuleList;
pModuleList = Driver->DriverSection;
// 前一个模块的Flink=本模块的Flink
pModuleList->Blink->Flink = pModuleList->Flink;
// 前一个模块的Blink=本模块的Blink
pModuleList->Flink->Blink = pModuleList->Blink;
PsCreateSystemThread(&hThread, GENERIC_ALL, NULL, NULL, NULL, ThreadRun, Driver);
Driver->DriverUnload = UnDriver;
return STATUS_SUCCESS;
}
输出效果如下,驱动每隔3秒执行一次模块修改:
相关文章
- 计算机管理照相机感叹号,电脑设备管理器摄像头驱动出现黄色感叹号是怎么回事儿 – 驱动管家…[通俗易懂]
- 驱动开发:摘链DKOM进程隐藏
- 驱动开发:内核监控Register注册表回调
- 驱动开发:运用VAD隐藏R3内存思路
- 驱动开发:内核中枚举进线程与模块
- 驱动开发:DKOM 实现进程隐藏
- 驱动开发:运用VAD隐藏R3内存思路
- Linux嵌入式驱动开发指南(linux嵌入式驱动开发)
- 编写实现触摸屏梦想:Linux下驱动编写入门(触摸屏linux驱动)
- 端Linux驱动开发:构建一个更稳定的接收端(linux驱动接收)
- MySQL驱动数据库之间的通路:端口(mysqlport)
- 深入Linux下串口驱动开发实战(linux下串口驱动开发)
- 开发操作系统无法前行:Linux驱动开发的重要性(没有linux驱动)
- Linux驱动程序编写指南(linux驱动例程)
- Linux下驱动开发:实现设备与系统的连接(linux下驱动开发)
- 程序MySQL连接:使用驱动程序快速实现连接(mysql连接驱动)
- MySQL驱动带来的Idea开发体验(ideamysql驱动)
- 激发创意:MySQL驱动的构建方式(ideamysql驱动)
- 让你的idea更高效率:使用Mysql驱动(ideamysql驱动)
- 开发Linux 3.0驱动开发极致之旅(linux3.0驱动)
- MySQL驱动下的创意之旅(ideamysql驱动)
- 什么是行为驱动的 Python?
- 一个 Linux 驱动的微波炉
- Linux网卡驱动编译指南:一步一步教你编译驱动(linux网卡驱动编译)
- 程序Linux I2S驱动程序:简单、可靠、易用(linuxi2s驱动)
- JDBC驱动Oracle数据库在Java中的应用(jdbc操作oracle)
- 驱动开发:PHP框架与MongoDB的结合(php框架mongodb)
- 在Linux下实现高效PCI驱动的指南(linux下pci驱动)
- 实现Linux平台下显卡驱动安装(linux装显卡驱动)
- Linux驱动开发视频教程:为你揭示驱动知识的神秘面纱(linux驱动视频教程)
- ASP程序操作MySQL数据库实现数据库驱动开发(asp用mysql)
- C 嵌入式Oracle驱动实时数据应用开发(C 嵌入式oracle)
- TP5强力驱动基于Redis的缓存技术实现(tp5配合redis缓存)