能力值:
( LV17,RANK:1820 )
|
-
-
26 楼
有订阅楼主博客,已看过,呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
27 楼
大牛放血中,经过,补血。
|
能力值:
( LV2,RANK:10 )
|
-
-
28 楼
我想问个比较初级的问题,如果所隐藏的驱动在卸载时,那么被脱离的那个结构是怎么被释放的呢。是通过driver_object 这个结构下来的吗?还有就是类似的这种双向列表在很多object中都有用到,在这里的主要作用是什么啊?大牛们普及一下知识,跪谢。
|
能力值:
(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 );
主要动作是修改相应的指针, 并释放我们的驱动对象占用内存.
|
能力值:
( LV12,RANK:230 )
|
-
-
30 楼
最后一个图画的有问题,driversection直接指向要隐藏的模块了。
|
能力值:
( LV4,RANK:40 )
|
-
-
31 楼
图用什么画的?真漂亮
|
|
|