能力值:
( LV2,RANK:10 )
2 楼
不错不错啊
能力值:
( LV2,RANK:10 )
3 楼
期待下一篇文章,最好再讲讲怎么调试hook到程序的dll文件
能力值:
( LV2,RANK:10 )
4 楼
支持一下,最好讲个如何HOOK DEVIVEIOCONTROL的例子.
能力值:
( LV2,RANK:10 )
5 楼
学习了。呵呵,小菜扫盲成员
能力值:
( LV2,RANK:10 )
6 楼
不错,学习了。
能力值:
( LV2,RANK:10 )
7 楼
我是盲成员 学习学习.谢谢楼主
能力值:
(RANK:570 )
8 楼
写完又写的东西,还是有那么多人没看过,干脆置顶,让大家看过够
WriteProcessMemory((void *)GetCurrentProcess(),PMessageBoxA,pFuncData,5,iWrite);
int Result = MessageBoxA(hWnd,lpText,"ApiHook Test",uType);
WriteProcessMemory((void *)GetCurrentProcess(),PMessageBoxA,AsmCode,5,iWrite);
不过这种方法,我还真第一次看到,学习了
能力值:
( LV2,RANK:10 )
9 楼
很好很强大 凑字 呵呵
能力值:
( LV2,RANK:10 )
10 楼
可惜我还没看过钩子
能力值:
( LV2,RANK:10 )
11 楼
学习..学习下,,新人来D
能力值:
( LV2,RANK:10 )
12 楼
感谢楼主的精彩讲解,我看了有以下两点疑问:
1、你文章前半部分提到的SetWindowsHookEx等API函数,你在你的例子里面没有用到。能否讲解它们的用法?
2、这个例子是否是HOOK自身进程的API函数(如MessageBoxA),我想HOOK的作用是不是更多在于HOOK别的进程的API函数?
---
小弟是菜鸟,说的可能不对,还望指点一二,万分感谢呀!
能力值:
( LV2,RANK:10 )
13 楼
我是小菜 来看下
能力值:
( LV5,RANK:60 )
14 楼
学习学习再学习
能力值:
( LV2,RANK:10 )
15 楼
WriteProcessMemory((void *)GetCurrentProcess(),PMessageBoxA,pFuncData,5,iWrite);
这句,是不是只要HOOK了自己进程里的API,其它进程序里调用API也被HOOK了?
能力值:
( LV2,RANK:10 )
16 楼
呵呵,很好啊,谢谢
能力值:
( LV2,RANK:10 )
17 楼
以我的理解,这个例子演示的是动态加截一个API,然后对这个API进行HOOK,修改的当前进程的虚拟内存,实现HOOK,然后调用这个经过HOOK的API,再接着就马上unhook了。总的来说就是自已HOOK自已动态加载的API,以别的进程无关,所以说别的进程调用这个API,即user32.dll时,是不会有任何被HOOK的迹象的。
能力值:
( LV2,RANK:10 )
18 楼
不错,没见过这方面的东西,学习,收藏。
能力值:
( LV2,RANK:10 )
19 楼
很好..藏之
能力值:
( LV4,RANK:50 )
20 楼
这里讲解的可以用于HOOK自身进程和其他的进程。
关键看你如何利用了
SetWindowsHookEx的函数原型在文中我已经提到了 :)
通过 GetWindowThreadProcessId 获取到要HOOK的窗口的线程标识符
通过 SetWindowsHookEx 安装钩子
钩子安装成功后,修改API的入口达到API HOOK的目的
:)
能力值:
( LV2,RANK:10 )
21 楼
大家都这么厉害!惭愧
能力值:
( LV2,RANK:10 )
22 楼
受教了,谢谢分享
能力值:
( LV2,RANK:10 )
23 楼
很好的学习资料, 如能加上一个练习演示实例就好了~~~
能力值:
( LV2,RANK:10 )
24 楼
看来我编程语言基础不行 看的不太懂
能力值:
( LV2,RANK:10 )
25 楼
好像楼主漏说了一点2个函数返回值,参数原形要保持一致 。