[Rootkit] 驱动隐藏 - 断链

这两段代码展示了如何在驱动程序中实现卸载功能,并在卸载过程中篡改自身模块信息。代码参考1定义了driverdata结构体,并在DriverEntry中篡改驱动数据结构的链接列表。代码参考2则创建线程延迟卸载,并在卸载过程中修改驱动对象的多个字段,以达到篡改模块信息的目的。这两个方法都会触发系统的PG(特权检查)机制。

注意 : 此方法会触发 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"
易语言辅助必备驱动保护模块 代码公开 透明 绝无暗装之类 ------------------------------ .版本 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值