首页
社区
课程
招聘
[原创]没什么卵用的——驱动运行过程中自卸载(我 卸 我 自 己)
发表于: 2019-3-17 08:55 14291

[原创]没什么卵用的——驱动运行过程中自卸载(我 卸 我 自 己)

2019-3-17 08:55
14291


如果你试过sc start TesSafe,你会发现:它在没有通信的情况下,几秒后会自动unload自己



那么这是怎么做到的呢?

当当当。。。。。

PUNICODE_STRING g_pRegistryPath  = NULL;
PWORK_QUEUE_ITEM g_pUnloadWorkItem =NULL;

PUNICODE_STRING g_pRegistryPath  = NULL;
PWORK_QUEUE_ITEM g_pUnloadWorkItem =NULL;

DriverEntry:
  g_pRegistryPath = (PUNICODE_STRING)ExAllocatePool(NonPagedPool, sizeof(UNICODE_STRING));
  g_pRegistryPath ->Buffer = (PWCH)ExAllocatePool(NonPagedPool, registry_path->MaximumLength);
  g_pRegistryPath ->Length = registry_path->Length;
  g_pRegistryPath ->MaximumLength = registry_path->MaximumLength;
  memcpy(g_pRegistryPath->Buffer, registry_path->Buffer, g_pRegistryPath->Length);

  g_pUnloadWorkItem = (PWORK_QUEUE_ITEM)ExAllocatePool(NonPagedPool, sizeof(WORK_QUEUE_ITEM));
  ExInitializeWorkItem(g_pUnloadWorkItem, (PWORKER_THREAD_ROUTINE)ZwUnloadDriver, g_pRegistryPath);

  g_pRegistryPath = (PUNICODE_STRING)ExAllocatePool(NonPagedPool, sizeof(UNICODE_STRING));
  g_pRegistryPath ->Buffer = (PWCH)ExAllocatePool(NonPagedPool, registry_path->MaximumLength);
  g_pRegistryPath ->Length = registry_path->Length;
  g_pRegistryPath ->MaximumLength = registry_path->MaximumLength;
  memcpy(g_pRegistryPath->Buffer, registry_path->Buffer, g_pRegistryPath->Length);

  g_pUnloadWorkItem = (PWORK_QUEUE_ITEM)ExAllocatePool(NonPagedPool, sizeof(WORK_QUEUE_ITEM));
  ExInitializeWorkItem(g_pUnloadWorkItem, (PWORKER_THREAD_ROUTINE)ZwUnloadDriver, g_pRegistryPath);

当要自卸载时:
ExQueueWorkItem(g_pUnloadWorkItem, DelayedWorkQueue);


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-3-18 09:22 被hzqst编辑 ,原因:
收藏
免费 4
支持
分享
最新回复 (21)
雪    币: 368
活跃值: (431)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
5
牛逼
最后于 2019-3-17 15:00 被又出bug了编辑 ,原因:
2019-3-17 14:58
0
雪    币: 1454
活跃值: (84)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
6
没什么用,驱动不卸载DXF照样稳如狗
2019-3-17 16:16
0
雪    币: 1454
活跃值: (84)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
7
传奇私服反外挂GK,连驱动都没有,照样吊打各路外挂。
2019-3-17 16:18
1
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
不想太复杂的同学,直接在驱动入口返回unsuccess就卸载了,内存也不会泄露了
2019-3-17 16:19
1
雪    币: 6124
活跃值: (4656)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
9
牛批牛批
2019-3-17 16:27
0
雪    币: 159
活跃值: (80)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
表哥的标题已经说的很清楚了,大家没必要纠结,感谢表哥无私的分享精神,上面说风凉话的首先先看看自己分享了啥
2019-3-18 15:01
0
雪    币: 407
活跃值: (1816)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
感谢表哥分享
2019-3-18 17:34
0
雪    币: 102
活跃值: (128)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
6666666666666666666666666666666666666
最后于 2019-8-6 15:17 被天涯Q编辑 ,原因:
2019-3-30 13:27
0
雪    币: 102
活跃值: (128)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
6666666666666666666666666666666666
最后于 2019-8-6 15:17 被天涯Q编辑 ,原因:
2019-4-6 21:26
0
雪    币: 19
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
大神,接活嘛,求合作,加我QQ:180249768
2019-4-9 11:24
0
雪    币: 8
活跃值: (444)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
东西是好东西,就是差了点金坷垃
2019-5-11 22:26
0
雪    币: 510
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
16
大黄狗天下第一
2019-5-12 22:58
0
雪    币: 441
活跃值: (1050)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
17
为啥要free  AsmDriverUnloadSelf ?
2019-5-15 20:20
0
雪    币: 43
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
表哥的标题已经说的很清楚了,大家没必要纠结,感谢表哥无私的分享精神,上面说风凉话的首先先看看自己分享了啥
2019-5-15 23:54
1
雪    币: 3738
活跃值: (3872)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
20
jmp好评!
2022-4-16 14:58
0
雪    币: 9
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
21
16字节对齐应该是内部用到了xmm寄存器操作,没对齐就G了
2023-9-15 17:42
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
看似泄露了内存,实际在内核隔离模式下,不泄露很难简单的把自己卸掉,除非注入应用层
2024-9-5 10:10
0
游客
登录 | 注册 方可回帖
返回
//