内核驱动加载断链式隐藏自身

//创建一个驱动对象数据结构
typedef struct _KLDR_DATA_TABLE_ENTRY
{LIST_ENTRY64 InLoadOrderLinks;//关键链ULONG64 Undefined1;ULONG64 Undefined2;ULONG64 Undefined3;ULONG64 NonPagedDebugInfo;ULONG64 DllBase;ULONG64 EntryPoint;ULONG SizeOfImage;UNICODE_STRING FullDllName;UNICODE_STRING BaseDllName;ULONG   Flags;USHORT  LoadCount;USHORT  Undefined5;ULONG64 Undefined6;ULONG   CheckSum;ULONG   padding1;ULONG   TimeDateStamp;ULONG   padding2;
}KLDR_DATA_TABLE_ENTRY, * PKLDR_DATA_TABLE_ENTRY;//驱动入口代码
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath){//声明必要结构list获取自身对象结构PKLDR_DATA_TABLE_ENTRY list = (PKLDR_DATA_TABLE_ENTRY)DriverObject->DriverSection;//断链操作,上一个对象等于下一个,下一个等于上一个对象,达到把自己隐藏起来的目的*((ULONGLONG*)list->InLoadOrderLinks.Blink) = list->InLoadOrderLinks.Flink;((LIST_ENTRY64*)list->InLoadOrderLinks.Flink)->Blink = list->InLoadOrderLinks.Blink;//下面关键,功能可以达到很多!前后断隐藏自身(头尾全断可以达到禁止任何程序加载驱动的目的,其他还有很多,这里只列出一个)list->InLoadOrderLinks.Flink = (ULONGLONG)&(list->InLoadOrderLinks);//Flinklist->InLoadOrderLinks.Blink = (ULONGLONG)&(list->InLoadOrderLinks);//Flink
//操作完成返回OK
return STATUS_SUCCESS;
}

内核驱动隐藏自身【断链】相关推荐

  1. 驱动开发:断链隐藏驱动程序自身

    与断链隐藏进程功能类似,关于断链进程隐藏可参考<驱动开发:DKOM 实现进程隐藏>这一篇文章,断链隐藏驱动自身则用于隐藏自身SYS驱动文件,当驱动加载后那么使用ARK工具扫描将看不到自身驱 ...

  2. 内核驱动隐藏【绕过PatchGuard】

    心血来潮测试隐藏驱动还不触发PG,看看有探讨的同学不 断链 //你可能会随时会看到一个蓝色的屏幕! 直接MiProcessLoaderEntry //跟断链没有太大区别,但是在测试中,不会见到蓝色的屏 ...

  3. 驱动开发:内核无痕隐藏自身分析

    在笔者前面有一篇文章<驱动开发:断链隐藏驱动程序自身>通过摘除驱动的链表实现了断链隐藏自身的目的,但此方法恢复时会触发PG会蓝屏,偶然间在网上找到了一个作者介绍的一种方法,觉得有必要详细分 ...

  4. Win10内核驱动断链式隐藏指定进程

    //直接上功能代码: //定义函数,通过进程PID操作隐藏 NTSTATUS HideProcess(ULONG pid) {//定义存放EPROCESS地址变量 ULONG64 L_pEPROCES ...

  5. 驱动编程:注册表回调,进程回调,文件回调,进程隐藏断链,窗口保护

    #include "struct.h"#define debug_pott_offset 0x298 //#define debug_pott_offset 0x1f0DWORD ...

  6. (53)进程结构体EPROCESS,擦除 DebugPort 实现反调试,ActiveProcessLinks 断链实现进程隐藏

    一.进程的作用 进程最重要的作用是提供了CR3,10-10-12分页下CR3指向页目录表,2-9-9-12分页下CR3指向页目录指针表. 每个进程有一个或多个线程.本质上,没有进程切换,只有线程切换. ...

  7. 4.PEB断链隐藏模块

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

  8. _ETHREAD断链 —— 实现线程隐藏

    简介 线程所属的父进程 _EPROCESS 结构体中的 ThreadListHead 成员是当前进程中所有线程的双向链表头,该成员有两个,分别在 0x50 和 0x190 处.我们可以通过该线程链表头 ...

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

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

最新文章

  1. 【资源】媲美搜索神器everything,超过1秒出结果算我输!
  2. SAP Spartacus名为Configuration的injection token
  3. ios 动画设计_动画和讲故事在设计中的力量
  4. JasperReports项目中的应用
  5. mysql5.7 mysql库下面的user表没有password字段无法修改密码
  6. CSS3过渡动画关键帧动画
  7. 前端地图之色斑图渲染(直接canvas叠加渲染)(三)——以leaflet为例
  8. 开源微信共享记账小程序
  9. 什么是DOI和PMID
  10. html5 js实现ppt制作,impress.js前端制作酷炫ppt详细教程
  11. python图像质量评价_OpenCV--Python 图像质量评价.docx
  12. (SWAT-1)SWAT进行流域提取
  13. 02点餐项目需求分析
  14. CPU中的通用寄存器
  15. 怎么用python画世界地图_用Python画世界地图
  16. 64匹马,8赛道,找出跑得最快的4匹马,至少比赛9场
  17. 俄语33个字母+编程打印俄语字母表
  18. 【C++项目】2048益智小游戏
  19. 浅谈性能优化有哪些指标
  20. 论文阅读:SnapMix

热门文章

  1. 宽带和下载速度(下载速率)之间的区别
  2. c语言程序设计超市会员卡管理系统,C语言程序设计课程设计报告超市水果信息管理系统...
  3. 微信技术总监:一亿用户背后的架构秘密
  4. 浅谈RASP技术攻防之实战
  5. Pathon的安装过程
  6. Radare2 框架介绍及使用
  7. 【模电知识总结】MOS管
  8. SAP 标准成本、目标成本与实际成本
  9. wx.getLocation接口申请原因怎么填?
  10. JCA - 核心类和接口