能力值:
( LV2,RANK:10 )
|
-
-
2 楼
谢谢分享。。。
|
能力值:
( LV12,RANK:320 )
|
-
-
3 楼
|
能力值:
( LV2,RANK:15 )
|
-
-
4 楼
来顶一下~~~~~~
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
太强大了吧,
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
不错不错,有代码就好,懒人路过
|
能力值:
( LV12,RANK:270 )
|
-
-
7 楼
最初见到这个方法的时候,是在某病毒的驱动中,用来恢复SSDT hook,不由感慨现在的病毒都做安全软件该做的事了。
这个东东应该写成内核模块,用来检测SSDT hook和重建SSDT,你这代码用来学习不错,想拿来直接用就很麻烦了。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
正需要,下了看看
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
哎,不是完整代码啊,编译通不过
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
隔了好些天再看,自己编译器设置的问题,是完整代码。感谢楼主了
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
Mark~!~!~!~
|
能力值:
( LV9,RANK:170 )
|
-
-
12 楼
哈哈,我写成c++类就是想人家用起来方便....
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
下载收藏备用
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
发现个小问题哦。。
// 如果是Nt开头的话,说不定是SSDT的函数
if (NULL != strstr(pFunName, "Nt"))
这里你会多读出一个函数。
输出:
FunName: NtYieldExecution ServiceID: 400
FunName: RtlGetLongestNtPathLength ServiceID: 269
RtlGetLongestNtPathLength,因为这个函数名中也有Nt字符串!
我改成了 :if (pFunName[0] == (char)'N' && pFunName[1] == (char)'t')
还有就是main函数中的 nCount 计数问题。
呵呵。。
|
能力值:
( LV9,RANK:170 )
|
-
-
15 楼
收到回复了,非常感谢指出问题。
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
客气客气,呵呵。
最近在研究驱动编程,你的这段代码写了也有些年头,我只是仔细研读了一番。
还要多多膜拜大牛你呢。呵呵。
|
能力值:
( LV9,RANK:170 )
|
-
-
17 楼
膜拜就不必了,互相学习吧,我都好久没有写过代码了,呵呵...
|
|
|