平台: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---------------------
阅读(281) | 评论(0) | 转发(0) |