能力值:
( LV13,RANK:240 )
|
-
-
2 楼
对于这种提问,我一般表示无语,真该多去看看提问的智慧。怎么样明确提问,需要给出什么信息。。连个HOOK的代码都不贴,鬼知道你是怎么HOOK的???浪费大家的时间和别人的时间。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
不加入条件判断?什么都处理当然!
|
能力值:
( LV9,RANK:370 )
|
-
-
4 楼
对 memcpy的size做处理,必须的,size也许太大导致了异常崩溃
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
可能是重入问题 你自己的代码也可能用到memcpy
|
能力值:
( LV9,RANK:190 )
|
-
-
6 楼
安全HOOK 需要考虑多核问题!如果你在设置inline hook而正修改其中部分字节数据时,有其他线程正好经过此处,则经过的线程就会执行了被破坏的CPU指令而导致进程或系统崩溃。我们怎么解决这个问题呢?先来看看这个指令:
CODE_000:
_asm jmp CODE_000;//这句汇编指令被编译后,应该是连接成了2个字节的机器码。
CODE_001:
.......
我们在下钩子的时候,先让自己的线程占用CPU,然后把前面的2字节机器码植入被下钩子的地方,这时就算有其他CPU线程进入这里,也只能一直重复执行_asm jmp CODE_000;而我们设置HOOK的线程就可以继续修改后面的字节数据,最后在修改 _asm jmp CODE_000 对应的2字节数据,这样一来就会进入 安全的HOOK。
这种安全HOOK我还没有测试过,但是我想理论上是可行的。
|
|
|