内核驱动隐藏自身【断链】

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

//创建一个驱动对象数据结构
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);//Flink
	list->InLoadOrderLinks.Blink = (ULONGLONG)&(list->InLoadOrderLinks);//Flink
//操作完成返回OK
return STATUS_SUCCESS;
}

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
易语言辅助必备驱动保护模块 代码公开 透明 绝无暗装之类 ------------------------------ .版本 2 .子程序 关闭保护辅助进程, 逻辑型, 公开, 取消禁止结束并保护程序 .参数 进程ID, 整数型, 可空, 可空,默认取消自身,可用的进程_名取ID()获取进程ID, .子程序 关闭防各类调试, 逻辑型, 公开, 取消结束并保护程序 .参数 进程ID, 整数型, 可空, 可空,默认取消自身,可用的进程_名取ID()获取进程ID, .子程序 开启保护辅助进程, 逻辑型, 公开, 可禁止他人有意结束某程序,并保护程序不被注入,打开程序,支持所有系统,32,WIN764位都可以 .参数 进程ID, 整数型, 可空, 可空,默认保护自身,可用的进程_名取ID()获取进程ID, .子程序 开启防各类调试, 逻辑型, 公开, 可禁止他人有意,用CE,VE,ME,GE,内存工具和WPE等程序,打开程序,支持所有系统,32,WIN764位都可以 .参数 进程ID, 整数型, 可空, 可空,默认保护自身,可用的进程_名取ID()获取进程ID, .子程序 隐藏模块, 逻辑型, 公开, 隐藏模块 (GetModuleHandle (“隐藏.dll”)) .参数 模块基地址, 整数型 .子程序 郁金香取消隐藏进程, 逻辑型, 公开, 取消隐藏进程 暂时无法取消隐藏 .参数 进程ID, 整数型, 可空, 可空,默认取消自身,可用进程_名取ID()获取进程ID, .子程序 郁金香隐藏进程, 逻辑型, 公开, 隐藏进程,,支持32位,和64位WIn7,与所有系统请自行测试 .参数 进程ID, 整数型, 可空, 可空,默认隐藏自身,可用进程_名取ID()获取进程ID, .子程序 置格盘陷阱, 逻辑型, 公开 .子程序 置蓝屏陷阱, 逻辑型, 公开, 利用蓝屏代码 绝对值蓝屏 .子程序 置死机陷阱, 逻辑型, 公开 .子程序 置重启陷阱, 逻辑型, 公开, 绝对值重启 .DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA", 公开 .参数 lpModuleName, 文本型 .DLL命令 RtlMoveMemory, 整数型, , "RtlMoveMemory", 公开, _写内存3 .参数 dest, 整数型, 传址 .参数 Source, 整数型 .参数 len, 整数型, , 4
内核断链隐藏进程是一种技术手段,用于在Windows系统中隐藏恶意或非法的进程,以逃避系统安全监控和检测。其关键思想是通过修改内核数据结构,使得隐藏的进程在系统进程链表中移除,从而实现对其的隐匿控制。 为了实现对不同版本的Windows系统的兼容性,并且不使用硬编码的方式,我们可以采取以下步骤: 首先,通过逆向工程和系统调试技术,分析目标系统中的进程链表数据结构。这需要了解不同版本Windows系统的内核数据结构和操作方式的差异。 其次,根据分析得到的数据结构,编写针对不同版本Windows系统的代码。可以使用C或者汇编语言,在内核模式下编写驱动程序,通过调用对应版本的API函数和操作系统核心服务来实现断链隐藏进程的操作。 在实现过程中,需要注意使用适当的方法来隐藏修改后的数据结构,以避免让系统安全检测软件或杀毒软件察觉到异常。例如,可以使用rootkit技术来掩盖修改的痕迹。 最后,在驱动程序编写完成后,需要通过数字签名等方式来保证其在目标系统中的合法性,以确保其能够被加载和执行。 总之,内核断链隐藏进程是一项高级的技术手段,涉及到对Windows系统内核的深入了解和驱动程序的编写。为了在多版本的Windows系统上实现兼容,并且避免使用硬编码,要通过逆向工程和系统调试等方式来获取不同版本系统的数据结构,并编写相应的驱动程序来实现隐藏进程的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Rose

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值