与断链隐藏进程功能类似,关于断链进程隐藏可参考《驱动开发: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, &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);
}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=本模块的FlinkpModuleList->Blink->Flink = pModuleList->Flink;// 前一个模块的Blink=本模块的BlinkpModuleList->Flink->Blink = pModuleList->Blink;PsCreateSystemThread(&hThread, GENERIC_ALL, NULL, NULL, NULL, ThreadRun, Driver);Driver->DriverUnload = UnDriver;return STATUS_SUCCESS;
}

输出效果如下,驱动每隔3秒执行一次模块修改:

驱动开发:断链隐藏驱动程序自身相关推荐

  1. 4.PEB断链隐藏模块

    0x4 PEB断链隐藏模块 1.如何找到_PEB_LDR_DATA 由_TEB找到_PEB,_PEB偏移0xC找到_PEB_LDR_DATA 2.基础知识 _LDR_DATA_TABLE_ENTRY结 ...

  2. 二、C++反作弊对抗实战 (进阶篇 —— 2.作弊器中常见断链隐藏DLL方法)

    目前,比较常见的模块隐藏方法有抹去模块的PE头.断开进程的LDR_MODULE链或者Hook模块枚举函数等,这里介绍前面抹去PE头.断链的方法. 提示:以下是本篇文章正文内容,下面案例可供参考 一.设 ...

  3. Windows驱动开发之第一个驱动程序

    转载请注明来源: enjoy5512的博客 : http://blog.csdn.net/enjoy5512 GitHub : https://github.com/whu-enjoy 为了整理方便, ...

  4. c语言断链隐藏dll,利用C++ R3层断链实现模块隐藏功能

    一.模块隐藏的实现原理 普通API查找模块实现思路:其通过查询在R3中的PEB(Process Environment Block 进程环境块)与TEB(Thread Environment Bloc ...

  5. Window XP驱动开发(二十一) 过滤驱动程序

    转载请标明是引用于 http://blog.csdn.net/chenyujing1234 欢迎大家拍砖 参考书籍<<Windows驱动开发技术详解>> 过滤驱动程序的开发十分 ...

  6. 嵌入式Linux驱动开发 02:将驱动程序添加到内核中

    文章目录 目的 基础说明 添加到内核中 Kconfig Makefile 驱动程序 编译与测试 模块方式 编译到内核中 总结 目的 在上一篇文章 <嵌入式Linux驱动开发 01:基础开发与使用 ...

  7. windows xp 驱动开发(十八) USB驱动程序开发用到的工具总结

    转载请标明是引用于 http://blog.csdn.net/chenyujing1234 欢迎拍砖! 观察USB设备的工具. 通过这些工具可以方便学习USB协议 一.   usbview 请参考我的 ...

  8. ⑧tiny4412 Linux驱动开发之触摸屏(TouchScreen)驱动程序

    本节主要是说一下触摸屏驱动的编写. 触摸屏输入输入设备,所以我们本次通过输入子系统的方式来实现,输入子系统的框架图如下: 然后,我们看一线电路图的触摸屏部分: 可以看到触摸屏是通过I2C接口进行数据和 ...

  9. c语言断链隐藏dll,通过断链隐藏模块(DLL)

    主要是通过teb+peb实现模块隐藏 // HideDll.cpp : Defines the entry point for the console application. // #include ...

最新文章

  1. Android保存图片到数据库,从数据库取图片的方法
  2. 转牛人博客 稀疏矩阵定义CSR COO CSC 第一个讲的清晰易懂的人
  3. 嵌入式计算机与pc机架构,PC架构与嵌入式架构的录播主机的区分
  4. 硬盘、移动硬盘、内存卡(SD卡、TF卡)、U盘修复,格式化
  5. 先考一键还是先学java_是先考C还是先考JAVA
  6. CDH集群安装配置(五)- Cloudera Manager Server
  7. java magic number_避免JDBC查询中的CheckStyle magic number错误
  8. windows搭建tftp服务器_Ubuntu中搭建TFTP服务器
  9. 客座编辑:李建平(1976-),男,博士,中国科学院科技战略研究院系统分析与管理所研究员、所长...
  10. Flutter Hero动画让你的APP页面切换充满动效 不一样的体验 不一样的细节处理
  11. 324. Wiggle Sort II
  12. IPSec L2L ××× 之 Router-to-ASA
  13. php 微信证书,【微信支付】企业付款开发者文档
  14. SpringBoot 集成 阿里的 FastJson
  15. 从0打卡leetcode之day 3 -- 最大子序列和
  16. 韦东山嵌入式学习心得
  17. Ae:时间轴面板(图层控制区)
  18. Java 使用 iText5 API 根据需求导出 PDF
  19. 模拟电路实验 01 - | 基本共射放大电路
  20. Android实现有声计算器代码,有声语音计算器效果与代码

热门文章

  1. 初识Hadoop(会飞的大象)
  2. 打印1000年到2000年之间的闰年
  3. 京东云 linux无法远程,问题解读 | Linux系统SSH无法远程登录时该怎么办?这里有篇小攻...
  4. 计算机网络微课堂 学习笔记
  5. MYSQL导入数据出现ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it
  6. python画简便的图片-用python简单处理图片(5):图像直方图
  7. 计划预算(PV)、实际完成工作预算(EV)、实际成本(AC)
  8. Linux系统的madplay、mplayer音视频播放器的制作
  9. axure sketch 对比_Sketch to Axure RP插件下载
  10. 使用JiaoZiVideoPlayer播放视频方向横过来出现的问题