能力值:
( LV9,RANK:610 )
|
-
-
26 楼
Hook函数尾不是不可以啊
|
能力值:
( LV2,RANK:10 )
|
-
-
27 楼
LZ还是求某牛放血吧,这样马甲下去也不是办法啊
|
能力值:
( LV2,RANK:10 )
|
-
-
28 楼
搞定~!借用cschenhui的代码果然成功了
原来是忘了考虑bojecttype为空的情况~哎~~
麻烦大家了 问题解决~!谢~!
|
能力值:
( LV3,RANK:20 )
|
-
-
29 楼
要看情况,如果有返回Buffer的一般都可以
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
至少我用了,都BSOD 很多次了,不敢用到实际中去啊
|
能力值:
( LV3,RANK:20 )
|
-
-
31 楼
肯定代码有问题
现在HOOK这个函数的工具不少
都很稳定
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
我用的是Sysnap
这篇文章的代码:
http://bbs.pediy.com/showthread.php?t=65731
至少BSOD 好些次.
也只能看看.不能拿到实际中用.
|
能力值:
( LV3,RANK:20 )
|
-
-
33 楼
我看了下你说的文章,这篇文章写得不错。
但是感觉HOOK的方法不是很对,采用了3环下的一种替换函数头部指令,当需要执行原函数又恢复的方法,这里存在一定的不稳定性,在多核下很容易出问题。
我觉得应该只需要更改一次函数就可以了,这样HOOK的方法就要换一下
__declspec (naked) xxxxx()
{
mov eax,ObReferenceObjectByHandle
add eax,5
jmp eax
}
把这个单独成一个函数。HOOK开始先把原函数执行。
_asm{
push [ebp+1ch]
push [ebp+18h]
push [ebp+14h]
push [ebp+10h]
push [ebp+0ch]
push [ebp+08h]
call xxxxx
mov ntStatus,eax
}
if (NT_SUCCESS(ntStatus))
{
....在这里判断是你需要保护的或者HOOK的就把*Object=NULL;就OK了然后给个错误返回值。
|
能力值:
( LV2,RANK:10 )
|
-
-
34 楼
谢谢,不过我没有翻译成功。
|
能力值:
( LV2,RANK:10 )
|
-
-
35 楼
发现楼猪的马甲了。
|
能力值:
( LV3,RANK:20 )
|
-
-
36 楼
看不懂??已经说得很明白了
|
|
|