首页
社区
课程
招聘
7
[原创]调试某驱动
发表于: 2008-8-27 20:49 14089

[原创]调试某驱动

2008-8-27 20:49
14089

调试某驱动

写个驱动,观察某驱动的运行,学学驱动而已。先注册映像加载通知例程。

PsSetLoadImageNotifyRoutine(LoadImageNotify);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
VOID LoadImageNotify (
    PUNICODE_STRING FullImageName,
    HANDLE ProcessId,
    PIMAGE_INFO ImageInfo
    )
{
    ANSI_STRING asImageName;
    PCHAR       Delimiter;
    NTSTATUS    Status;
    ULONG       Base;
    ULONG       Entry;
    ULONG       Patch;
    ULONG       i;
     
     
    RtlUnicodeStringToAnsiString(&asImageName, FullImageName, TRUE);
     
    if (!ImageInfo->SystemModeImage)
    {
        goto __End; //不是驱动
    }
     
    Delimiter = strrchr(asImageName.Buffer, '\\');
    if (Delimiter == NULL)
        goto __End;
     
    Delimiter++;
     
    if( _strnicmp(Delimiter,"xxx.sys",strlen("xxx.sys")) != 0)
        goto __End;
 
    Base = (ULONG)ImageInfo->ImageBase;
                 
    DbgPrint("%s Loaded, MappingAddress=%08X, Size=%08X\n",
         asImageName.Buffer,
         ImageInfo->ImageBase,
         ImageInfo->ImageSize );
     
 
    //这里地址直接硬编码了,可以分析PE文件及使用反汇编引擎(原代码的地址删了,表找我麻烦)
 
    // 原驱动DriverEntry出口:
    //  leave
    //  retn    8
    // 
    // 
 
    Entry = Base + 0x1111;
    Patch = Base + 0x2222;
    g_ReturnAddress = Base + 0x3333;
 
    if (!(*(PULONG)Entry == 0x83EC8B55 &&  *(PUCHAR)(Entry+5) == 0x14)) //检查Entry
    {
        DbgPrint("Mismatched Entry!\n");
        goto __End;
    }
 
    if (*(PULONG)Patch != 0x0008C2C9)
    {
        DbgPrint("Mismatched Patch Point!\n");
        goto __End;
    }
 
    __asm
    {
        CLI
        MOV   EAX, CR0
        AND   EAX, NOT 10000H   //disable WP bit
        MOV   CR0, EAX
    }
 
    *(PUCHAR)Entry = 0xE9;
    *(PULONG)(Entry+1) = (ULONG)&SaveDriverObject - (Entry+5);
 
    *(PUCHAR)Patch = 0xE9;
    *(PULONG)(Patch+1) = (ULONG)&ReplaceDispatch - (Patch+5);
     
 
    __asm
    {
        MOV   EAX, CR0
        OR    EAX, 10000H   //enable WP bit
        MOV   CR0, EAX
        STI
    }
     
__End:
    RtlFreeAnsiString(&asImageName);
}

[注意]看雪招聘,专注安全领域的专业人才平台!

收藏
免费 7
支持
分享
赞赏记录
参与人
雪币
留言
时间
Youlor
为你点赞~
2024-1-4 00:40
伟叔叔
为你点赞~
2023-11-15 00:03
QinBeast
为你点赞~
2023-8-22 02:55
PLEBFE
为你点赞~
2023-8-22 00:14
shinratensei
为你点赞~
2023-7-30 04:51
心游尘世外
为你点赞~
2023-7-19 03:49
飘零丶
为你点赞~
2023-7-8 00:24
最新回复 (25)
雪    币: 1946
活跃值: (283)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
2
IRP Hook
2008-8-27 20:55
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
3
最近老梦见跟饭岛爱一起吃饭。
2008-8-27 23:17
0
雪    币: 1946
活跃值: (283)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
4
你还梦见冬日娜了吧
2008-8-27 23:24
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
5
梦见你和冬日娜在旁边吃饭。
2008-8-27 23:35
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
NP 又见 NP
2008-8-28 06:06
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
7
学习~

2008-8-28 07:19
0
雪    币: 225
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
支持这种放血!
2008-8-28 07:29
0
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
9
加载自己的驱动站住坑
很暴力哇..

if (!(*(PULONG)Entry == 0x83EC8B55 &&  *(PUCHAR)(Entry+5) == 0x14)) //检查Entry

不错 还有入口点的匹配检测
2008-8-28 08:54
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
10
SM的贴子要学习
2008-8-28 09:05
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
跟~着~学  ~
2008-8-28 11:08
0
雪    币: 321
活跃值: (276)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
12
good,学习
2008-8-28 12:08
0
雪    币: 203
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
支持 学习
2008-8-28 16:56
0
雪    币: 8209
活跃值: (4559)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
14
看懂了一行:
__emit 0xC9 //VC6的汇编不支持leave
2008-8-28 17:16
0
雪    币: 8833
活跃值: (2419)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
15
不错,很少看到naked啦啦~~
2008-8-28 17:56
0
雪    币: 471
活跃值: (4651)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
16
一群大牛上青天.....................
2008-8-28 18:58
0
雪    币: 109
活跃值: (608)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
17
@加入神教

欧阳 眼睛还好么?
2008-8-28 22:48
0
雪    币: 224
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
18
不懂 hook ,如何调试,谁告诉我?谢谢
2008-8-29 13:36
0
雪    币: 474
活跃值: (126)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
19
真牛啊!!学习学习!
2008-8-29 14:06
0
雪    币: 360
活跃值: (92)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
20
一定要学学驱动了
2008-8-30 00:13
0
雪    币: 102731
活跃值: (201839)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
21
support.
2008-8-30 10:41
0
雪    币: 134
活跃值: (84)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
22
很不错。学习
2008-8-31 16:12
0
雪    币: 120
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
这个要 学习一下。
2008-9-1 13:08
0
雪    币: 311
活跃值: (139)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
好文,学习ing.
2008-9-1 23:54
0
雪    币: 474
活跃值: (126)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
25
学习!谢谢!
2008-9-26 12:55
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册