能力值:
( LV9,RANK:140 )
|
-
-
2 楼
看上去好像很不错........ 支持个!
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
严重支持
来个IO TIMER DCP TIMER更好
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
支持一下。
|
能力值:
(RANK:400 )
|
-
-
5 楼
看了下,定位数组的时候都是采用的硬编码,这样的话,通用性不太好。
上次逆向了下PowerTool的实现方法,它是首先自己调用PsSetxxx函数插入自己的回调,然后再寻找自己的回调的方法,挺巧妙的,兄弟可以借鉴下。
不过也有个缺点,就是数组中成员满了之后,插入自己的回调就会失败了。
这两个方法结合下就很好了。
|
能力值:
( LV9,RANK:165 )
|
-
-
6 楼
多谢版主提示…我研究研究,另外,关于即插即用回调的问题,谁能给些提点?
|
能力值:
( LV9,RANK:330 )
|
-
-
7 楼
mark 一下,感谢共享。
|
能力值:
(RANK:290 )
|
-
-
8 楼
支持一下。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
不错不错,向楼主学习了~~
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
支持楼主,多谢!
|
能力值:
( LV7,RANK:100 )
|
-
-
11 楼
plugplay的回调该如何获得?求解释
|
能力值:
( LV9,RANK:165 )
|
-
-
12 楼
我也在郁闷这个啊
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
正好需要这方面的资料,感谢分享,收下学习了
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
收藏备用,感谢分享。
|
能力值:
( LV9,RANK:165 )
|
-
-
15 楼
PlugPlay回调遍历方法补充完毕。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
很详细,谢谢楼主分享。
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
好东西,定
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
不错,做个标记
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
国际惯例, 强势插入! 刚好需要补充各种回调的枚举资料思路
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
[QUOTE=futosky;1060342]引用:
"但是技术太烂,WinDbg 在u IoRegisterPlugPlayNotification里面没看到IopDeviceClassNotifyList数组,但是发现还有一个函数:IopInitializePlugPlayNotification 这个函数没有导出,我用了最烂的方法,遍历内核模块空间,根据特征码得到函数地址
nt!IopInitializePlugPlayNotification:
8058a5b4 6a0d push 0Dh
8058a5b6 b880d06780 mov eax,offset nt!IopDeviceClassNotifyList (8067d080)
...
再得到IopDeviceClassNotifyList 数组地址,遍历即可。。。"[/QUOTE]
最近在写枚举系统回调->即插即用,在WinDBG调试分析 IoRegisterPlugPlayNotification函数体时惊现对IopDeviceClassNotifyList数组地址的引用-_-!
纠正楼主在贴子中讲解的"在u IoRegisterPlugPlayNotification里面没看到IopDeviceClassNotifyList数组"的说法、、
代码:
0: kd> u IoRegisterPlugPlayNotification l 200
nt!IoRegisterPlugPlayNotification:
..
8058b3fd ff1518914d80 call dword ptr [nt!_imp_ExAcquireFastMutex (804d9118)]
8058b403 8b4334 mov eax,dword ptr [ebx+34h]
8058b406 034330 add eax,dword ptr [ebx+30h]
8058b409 6a0d push 0Dh
8058b40b 03432c add eax,dword ptr [ebx+2Ch]
8058b40e 59 pop ecx
8058b40f 034328 add eax,dword ptr [ebx+28h]
8058b412 33d2 xor edx,edx
8058b414 f7f1 div eax,ecx
8058b416 8d04d580d06780 lea eax,nt![COLOR="Red"]IopDeviceClassNotifyList[/COLOR] (8067d080)[edx*8] // 地址8067d080跟LZ一样(Xp Sp3)
8058b41d 8b4804 mov ecx,dword ptr [eax+4]
8058b420 894b04 mov dword ptr [ebx+4],ecx
8058b423 8903 mov dword ptr [ebx],eax
8058b425 8919 mov dword ptr [ecx],ebx
8058b427 8bcf mov ecx,edi
8058b429 895804 mov dword ptr [eax+4],ebx
8058b42c ffd6 call esi
8058b42e f6450c01 test byte ptr [ebp+0Ch],1
8058b432 0f8404020000 je nt!IoRegisterPlugPlayNotification+0x4e2 (8058b63c)
...
|
能力值:
( LV9,RANK:165 )
|
-
-
21 楼
额 过去很久了,我印象中好像我虚拟机里的 XP 是没看到 看到过一个貌似数组的但是得不到正确数据
很久没碰电脑了,好思念有代码敲的日子~~
|
能力值:
( LV4,RANK:40 )
|
-
-
22 楼
ObRegisterCallBacks也是创建一个回调的吧,发现好多工具都没有遍历这个。
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
LZ的枚举即插即用貌似枚举出来的结构很奇怪且总是对不上呢少几个, 发现了两个与即插即用回调或相关的链表数据结构:IopProfileNotifyList与IopDeferredRegistrationList, 但还是少几个即插即用回调, LZ看看呗
|
能力值:
( LV9,RANK:780 )
|
-
-
24 楼
mark 一下,感谢共享。
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
这么久也没回复, 楼主不会也改卖水果了吧
|
|
|