能力值:
( LV4,RANK:50 )
|
-
-
2 楼
支持呀.附件在哪里?
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
下来看看
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
路过,支持一下...
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
顶起,支持一下
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
万一hook位置有相对跳转……秒蓝……
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
顶一个。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
顶一个...
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
就是多重hook问题嘛.最后我说了的..不知道原因就是不成功..所以求解答呢还在~
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
没必要判断……
两个方法
1,在无论hook什么函数前……先恢复一遍
2反正发现call jmp push ret
之类的东西,转化成绝对地址
然后hook这个绝对地址……(相当与hook掉他的处理函数)
……
第一种稳定些
|
能力值:
( LV4,RANK:50 )
|
-
-
11 楼
产品发布的话 这两种都不可取..
现在问题是..我代码中有判断E8 E9 但是不生效.很奇怪
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
第一种谁说不可取
卡巴的hook就是这样做的……直接覆盖掉以前钩子……
所以很多窗体保护不能与卡巴共存
360的hook也是的……如果你和他共用一个位置
他会先恢复掉你的钩子
第二种处理得好同样没有问题,看你怎么做,其实比第一种还要好一些,可以和其他钩子和谐共存
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
我喜欢第一种~~~ 嘿嘿
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
终于有能看懂的帖子了。很棒!
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
哈哈!会蓝屏么?
|
能力值:
( LV4,RANK:50 )
|
-
-
16 楼
有判断E8 E9 但是不生效...求问啥原因呢..能否帮忙改下
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
我手头现在没有调试环境……没有办法帮你调试
没有看源码,但是我可以给你大概分析以下
可以改变函数流程的指令太多了
有短跳 可以 push ret 甚至可以jnz jz
单独判断e9 e8是不够的
而且你的处理也是有问题的……简单的向后退推5字节hook很有可能造成指令屑……
这些都是会产生蓝屏的原因
当然也有可能是一些低级错误……这个我就不讲了……自查吧
|
能力值:
( LV4,RANK:50 )
|
-
-
18 楼
额 是这样
我一开始的想法是扫描前8字节 存在e8 e9即在该处使用汇编引擎汇编一下.得到指令长度后.向后推
但是现在判断E8 E9都不成功
PS:目前只考虑e8 e9的情况  因为只是在学习的过程
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
不成功是误判,还是发现不了(没有效果),还是蓝屏?
|
能力值:
( LV4,RANK:50 )
|
-
-
20 楼
条件不成立.所以没走到对应的代码里面

条件就是
if (((char*)HookFunAddress)[0] == 0xe8 || ((char*)HookFunAddress)[0] == 0xe9)
{
HookFun->IsDobeHook = TRUE;
}else
{
KdPrint(("HookFunAddress :0x%x",((char*)HookFunAddress)[0]));
}
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
架构挺好的,我顺便试了一下,还行
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
坚决支持下,谢谢楼主分享!
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
mark!!!!!!!!
|
能力值:
( LV4,RANK:50 )
|
-
-
24 楼
- -某人居然又问.我自顶一下
|
能力值:
( LV3,RANK:20 )
|
-
-
25 楼
有个很重要的东西,你忘记了,你的HookFun()没有实现,因此,也没有实现关于HookFun()执行完调用HookFun()的内容
|
|
|