Chinaunix首页 | 论坛 | 博客
  • 博客访问: 578788
  • 博文数量: 752
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(752)

文章存档

2011年(1)

2008年(751)

我的朋友

分类:

2008-10-13 16:48:44


平台:WinNT以上
完成时间:2004-2-26
编译环境:MSVC++6(SP4),Win2k PSDK
详细说明参见可执行文件(Mirager.exe)的帮助菜单。
  学校BBS上的师兄曾经告诉我“钩子”这东西是小孩子玩的东西,不过我自己认为无论什么工具只要能够“物尽其用”,就不枉为好东西。就像再著名的数学家都不能缺少微分和积分的思想一样。
  如果您发现它的错误,抑或您觉得它的功能依然不够。您可以抽出时间改它的源代码,可以的话,希望也能将您的最终大作发给我。
如果您有什么建议,比如觉得整个软件的实现方案不够好,也请您来信告诉我您的好点子。
  (随便说一句,如果您在词典里查不到Mirager这个词。请不要认为我拼写错误,Mirager是我很喜欢的一个游戏中一位主角的隐藏绝技。)

jinzhao@mail.ustc.edu.cn


[代码性质] VC完整应用程序代码
[代码作者] Boco
[文件大小] 401K
[更新日期] 2005-1-13 16:59:00
[下载次数] 5854


--------------------next---------------------

一、前言
  前一段时间发表了一篇文章 “Hook API 工具”,没有附带主程序的源代码,这几天翻出来代码加了些注释,现在补上。不过大家还是最好看看牛的书,书上讲解很详细。

二、对代码的简单说明
  总共3个工程,1个主程序,1个HookDll, 1个例子Dll。主程序负责启动进程,并将 HookDll 注入。还有一些额外的功能,比如显示 Log, 例子Dll的信息,导出函数等,HookDll 在 DllMain 启动的时候根据配置钩住指定的 API 函数

三、这种方法的缺点
  这种方法是在系统 API 函数起始代码 和 自定义代码之间切换。在多线程的环境下,如果正在切换的过程,其它线程调用这个函数,会出现异常,同时,如果已经切换回系统代码,其它线程对这个API 的调用将抓不到。解决方法就是不要切换,这点应该是可以做到的。

四、结束语
  在例子Dll 中,模仿了 ws_32.dll 的输出函数,但是不全,而且 Log 信息也不足,感兴趣的朋友如果有比较全的版本别忘了发给我一份 :)

程序大家可以随意修改,保留那个林月如的 Icon 就行了 ^_^


[代码性质] VC可重用代码段
[代码作者] JYan
[文件大小] 146K
[更新日期] 2004-8-20 16:55:00
[下载次数] 10552


--------------------next---------------------

阅读(270) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~