能力值:
( LV9,RANK:610 )
|
-
-
26 楼
PsProcess已经导出了,所以只需声明一下就可以了,就像搞SSDT时需要声明KeServiceDescriptorTable一样。顺便再把此帖顶出来,楼主闭关许久,现在功力大增啊
|
能力值:
( LV3,RANK:20 )
|
-
-
27 楼
请楼上再解释一下。怎么知道它们也经导出啦呢,比如没有导出的话就要暴力找,导出的话就可以用MmGetSystemRoutineAddress()得到地址。是不是就看ntoskernel的导出表?
|
能力值:
( LV9,RANK:610 )
|
-
-
28 楼
正确!看导出表就可以了,但并不是所有导出的函数在DDK中都有声明,有时候就得自己声明了
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
会不会花掉啊?
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
这个HOOK会有线程来操作它吗?有的话我是否先要判断操作它的类型是线程还是进程?
|
能力值:
( LV2,RANK:10 )
|
-
-
31 楼
留名学习
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
//不匹配的..调用原来的地址+5个字节.ObReferenceObjectByHandle正常执行
mov eax,ObReferenceObjectByHandle
add eax,5
jmp eax
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
我纳闷:没有考虑"调用原来的地址+5"是不是指令的开头啊?如果一个函数HOOK_FUN以下指令开头:
.text:006C7E10 HOOK_FUN proc near
.text:006C7E10 push 0FFFFFFFFh
.text:006C7E12 push offset loc_6E106F
.text:006C7E17 mov eax, large fs:0
.text:006C7E1D push eax
如果这样:
mov eax,HOOK_FUN
add eax,5
jmp eax
必蹦无疑吧?
所以楼主是不是会误导初学者?
是不是这方法是不是没有考虑通用性?
谢谢!
|
能力值:
( LV12,RANK:600 )
|
-
-
33 楼
必蹦无疑吧?
所以楼主是不是会误导初学者?
是不是这方法是不是没有考虑通用性?
谢谢!
嗯...你说得对.这份代码的确有问题,,但当时水平就这样...但误导初学者可能间接有吧..但我本意不是误导人..因为我也是初学者..
|
能力值:
( LV2,RANK:10 )
|
-
-
34 楼
期待楼主把代码写得更完美一点
|
能力值:
( LV2,RANK:10 )
|
-
-
35 楼
学习,最近很想这方面的东西
|
能力值:
( LV12,RANK:210 )
|
-
-
36 楼
对这样不停地hook 恢复 hook 恢复不是很好,我也推荐
mycode
五个字节
jmp
|
能力值:
( LV12,RANK:300 )
|
-
-
37 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
38 楼
很强大的教程,慢慢看看,学习 了
|
能力值:
( LV2,RANK:10 )
|
-
-
39 楼
强帖,要好好研究下
|
|
|