能力值:
( LV12,RANK:450 )
2 楼
虽然比较老了……不过还是顶下
能力值:
( LV12,RANK:240 )
3 楼
谢谢~
基础最重要嘛= = 基础懂了 研究别的也就容易了哈
能力值:
( LV2,RANK:10 )
4 楼
别的不说,收藏代码,
顶lz
能力值:
( LV12,RANK:420 )
5 楼
header inline太没意思了,又麻烦又容易出问题,指针替换最爽了,又安全又快捷
能力值:
( LV4,RANK:40 )
6 楼
跟MS的Detour差不多吧?
能力值:
( LV9,RANK:290 )
7 楼
还有delphi版的吗?
能力值:
( LV12,RANK:240 )
8 楼
to 5楼:
1 个人认为这种模式非常方便 看过很多方式HOOK 这种模式很方便 代码结构非常好
2 这不一定只能用在header 是 CODE HOOK 随便在哪里HOOK 不一定在函数头
当然HOOK API有另外的函数比这个还方便 具体见附件
另外这种构架用了几年了 用的人多了 没出过问题 = =
to 7楼: 有 在附件 使用方法参考我一楼的吧~
上传的附件:
能力值:
( LV6,RANK:90 )
9 楼
1.header inline 存在着无法解决的安全性问题,不管如何同步操作,都会导致问题,只是概率较低,你没碰到而已,原因是HOOK的指令不是一条,原理自己去想吧,指针替换就没这个问题
2.用的人多就说明没问题了?微软怎么不推荐用这个呢?
3.比起指针替换,这种HOOK操作起来的繁琐 性、包括多次HOOK、同其他人HOOK的冲突上,都存在很大的弊端
4.如果不在HEADER上,这种HOOK还存在被跳走的可能~所以无法通用
总之CODE INLINE很挫很垃圾~
能力值:
( LV2,RANK:10 )
10 楼
虽然不懂,也顶一下!
能力值:
( LV6,RANK:80 )
11 楼
标记下,自己上次准备写个全局的,正好学习楼主的代码
能力值:
( LV2,RANK:10 )
12 楼
大概看了一下,个问题没有想懂:
按照一楼的写法,原函数的头五个字节的汇编必须组成完整的命令,否则汇编命令可能出错,这部是否是Delphi代码中SizeOfProc的起的作用?
能力值:
( LV3,RANK:30 )
13 楼
大家都各说各的,我认为不错的,初级时只会HOOK——MYAPI——UNHOOK——MYFUN——HOOK,我觉得这个应该高级些,实用!
能力值:
( LV12,RANK:240 )
14 楼
bool AfxHookCode(void* TargetProc, void* NewProc,void ** l_OldProc, int bytescopy = 5)
注意看函数声明 = = 第五个是参数 传进去的 可以是7字节 8字节等等 = =
能力值:
( LV3,RANK:30 )
15 楼
改成全局的出错了,提示内存不能为写,想法可以,我需要进一步调试,哎调试半天还不行,明明都可以,不知道怎么了!
算了不如使用临界区来保护那段内在,不不知道行不!
能力值:
( LV3,RANK:30 )
16 楼
改成全局的不行,经调试在这一句*((unsigned char*)(*l_OldProc)+bytescopy) = 0xe9;有问题,为什么?
能力值:
( LV2,RANK:10 )
17 楼
好,喜欢. 辛苦了。 呵呵。
能力值:
( LV2,RANK:10 )
18 楼
能給個指針替換方法的文章鏈接嗎?我google了一下,沒有找到相關的文章。
另外,除了header inline和指針替換之外,還有別的hook方法嗎?
謝謝!
能力值:
( LV4,RANK:50 )
19 楼
inline hook最好是能有一个小的反汇编引擎.计算出前面几个要hook是多少个字节...
不然的话还是有可能会出错...
能力值:
( LV9,RANK:170 )
20 楼
TAG:RING3代码HOOK的原理实现 INLINE / HEADER HOOK API SRC 源码 C++ DELPHI
能力值:
( LV2,RANK:10 )
21 楼
很多时候没法替换指针的,只能hook函数体。并且微软有个detours库,是官方的实现
能力值:
( LV4,RANK:50 )
22 楼
哈哈。找了半天,才找到。
收藏了。
能力值:
( LV2,RANK:10 )
23 楼
我觉着很好.
能力值:
( LV2,RANK:10 )
24 楼
楼主能整理一份DELPHI版本的吗,你的思路值得学习!
能力值:
( LV3,RANK:30 )
25 楼
什么是指针替换,给讲讲?好像这个方法很利害。