这个演示只能截取这个程序的Api,如何截获整个系统的Api呀!!!!(含制作API钩子,截获API的例子 源码)(16分)

  • 主题发起人 主题发起人 cntiny
  • 开始时间 开始时间
原来有人找我做过一个藏汉翻译软件,后来做了一半,那人退出了,软件也就搁浅了。

我刚好做好了取词这部分。可以取词,不过资源管理器里的词取不出来。因为explorer
是16位的内核,要hook 16位的程序的api需要使用trunk技术,混合编程。
 
薄荷兄说的对,先要在要截获的进程中注册一个消息钩子,消息处理的函数用APIHOOK的DLL
中的函数处理其实就是再调用原来的处理过程就行了,这样做的目的其实就是想要把DLL加载进该进程.
然后向进程放松刚才注册的消息,进程就会把DLL加载进来,这时你的APIHOOK就会被加载了。
所以想要注册APIHOOK先要注册一个消息的HOOK。消息一般用0就行了。
 
to 薄荷同志:你那个东东还有商业秘密吗?能不能把取词的那段公布或送给在下看看
hzg115@sina.com,不胜感激!
 
是呀,是呀!
 
当然没有商业秘密了,我那是也是参考了好多别人的程序。

我开个服务器给你们下载吧。
 
谢谢了,快点哦
 
可能得明天了。我那些东西在家里,单位没有。

:(
 
哦!那我也要一份。[8D]
dirk_c@sina.com
 
TO:薄荷
我的,houwf4zy@163.com
谢谢了~~~
 
我做了Wh_GetMessage的hook但为什么收到消息(动鼠标)程序就死了呀!
我是直接把那个apihook_up加在自己的mypro中了.
 
大家进步
TO:薄荷
我的:heijuanma@hotmail.com
谢谢了~~~

 
20M,我给下载地址把。

主要是很久以前做的,那时候做了很多版本,到处乱放,我现在都不知道最后那个能用的
版本在哪儿了。把我能找到的都给你把。我记得以前有个版本是可以稳定的取词的。

http://www.ustc.edu.cn/departments/dpse/pmqc.rar
 
to:薄荷
这些都不行呀,怎么老出现错误
我用的是
win98+sp3
怎么回事呀,希望你能快点找呀,谢谢~~

分不够,我可以再加.
其它人也需要这个呀,大家说是吧!
 
给你的其实APIHOOK部分基本实现了,出错的是因为我想和词霸一样,在单词的上方
出现Hint窗体,那儿有些问题,我记得后来是解决了。有空我在看看。
我还有一个APIHook,是Hook Messageboxa的,那个很稳定。是按照书上的做法做的。
http://www.ustc.edu.cn/departments/dpse/APIHook.rar
 
谢谢拉~~~
正在看源码!
终于快实现了
分这么少怎么办呀???
等实现了,一起分给你吧!
不然,再有什么不懂的不好找到你
呵~~
 
to:薄荷
有个问题再问你一下,你的
http://www.ustc.edu.cn/departments/dpse/APIHook.rar
还是有点问题呀,你运行那个测试用的程序,再运行Try2,连续点几下,StartHook(是连续点几下),
再点Stop,好象不能Stop,不过,我改进好了!
在TryDll.dpr中这样写这个函数就可以了
Var HookHandle,StoreHandle:THandle;///////添加,改动的地方procedure StartHook; Stdcall;
begin
if HookHandle=StoreHandle then///////添加,改动的地方
HookHandle:=SetWindowsHookEx(WH_GETMESSAGE,@GetMsgProc,HInstance,0);
end;

procedure StopHook;
begin
UnhookWindowsHookEx(HookHandle);
HookHandle:=StoreHandle;///////添加,改动的地方
end;
 
哦,不小心错了
是这样
Var HookHandle,StoreHandle:THandle;///////添加,改动的地方
procedure StartHook; Stdcall;
begin
if HookHandle=StoreHandle then///////添加,改动的地方
HookHandle:=SetWindowsHookEx(WH_GETMESSAGE,@GetMsgProc,HInstance,0);
end;

procedure StopHook;
begin
UnhookWindowsHookEx(HookHandle);
HookHandle:=StoreHandle;///////添加,改动的地方
end;
 
还是不明白!为什么截获不了ExtTextOut???
我把SetTextColor(DC,RGB(255,0,0)); { red }
放到myExtTextOut中为什么截获不了,而却能截获MyDrawTextA
 
你有没有试试截获ExtTextOutA?
 
后退
顶部