首页
社区
课程
招聘
[原创]DKOM隐藏驱动
发表于: 2011-6-14 15:48 28398

[原创]DKOM隐藏驱动

2011-6-14 15:48
28398
收藏
免费 7
支持
分享
最新回复 (30)
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
26
有订阅楼主博客,已看过,呵呵
2011-6-27 21:16
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
大牛放血中,经过,补血。
2011-6-28 13:56
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
我想问个比较初级的问题,如果所隐藏的驱动在卸载时,那么被脱离的那个结构是怎么被释放的呢。是通过driver_object 这个结构下来的吗?还有就是类似的这种双向列表在很多object中都有用到,在这里的主要作用是什么啊?大牛们普及一下知识,跪谢。
2011-6-28 14:15
0
雪    币: 2314
活跃值: (2205)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
29
在WDK里看了下, 我们在卸载驱动时, 系统在ObpDeleteNameCheck这个函数里面会删除相应的驱动对象.
首先是在对象目录里找我们这个驱动对象, 如果找到了就调用ObpDeleteDirectoryEntry这个函数删除之

     HeadDirectoryEntry = (POBJECT_DIRECTORY_ENTRY *)&Directory->HashBuckets[ LookupContext->HashIndex ];
    DirectoryEntry = *HeadDirectoryEntry;

    //
    //  Unlink the entry from the head of the bucket chain and free the
    //  memory for the entry.
    //

    *HeadDirectoryEntry = DirectoryEntry->ChainLink;
    DirectoryEntry->ChainLink = NULL;

    ExFreePool( DirectoryEntry );
主要动作是修改相应的指针, 并释放我们的驱动对象占用内存.
2011-6-28 15:44
0
雪    币: 1163
活跃值: (137)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
30
最后一个图画的有问题,driversection直接指向要隐藏的模块了。
2011-8-11 15:39
0
雪    币: 1556
活跃值: (310)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
31
图用什么画的?真漂亮
2011-8-12 21:32
0
游客
登录 | 注册 方可回帖
返回
//