<P>大概在四五年前,偶还是一只小小菜青虫时,便在网上听说了一句"名言":
VB是不可能独立做出全局HOOK的!
对于当时的我来说,HOOK是个虾米东东都不知道,所以也没去管,学!~~~
直到有一天,我决定做一个木马时,才发现,好象只用VB是无法记录键盘鼠标的....因为以上的"名言"!!!
当时的木马是使用一个别人做的DLL来工作的(是用汇编语言做的,偶自己改了一下HOOK类型).后来,木马制作相当成功,可以拦截到所有的键盘鼠标动作,并采用了本人独创的(应该是"独创"的吧??偶还没有见到过类似的木马)时间轴定位方法,使任何键盘与鼠标的操作都可以重现,并与当时的工作焦点相结合,使任何操作都难逃"法"眼("贼"眼也许合适点....).经过自己的使用,觉得相当不错!!
但在后来的某一天的某一论坛上,我发现有人使用VB本身的功能就完成了全局HOOK,于是便立刻当下来学习.
经过分析,发现程序基本是MS所说的DLL式HOOK的标准应用!只是,这些标准的应用是在ActiveX DLL上实现的!
当时偶差点晕了,不是有人说过,"VB是不可能独立做出全局HOOK"吗??-------等一下!!仔细想想,在听到那句话时,我真的从来都没有去怀疑过它的真假,因为我当时根本就不懂.现在,让我自己来找找答案吧!!
当下新建一ADLL工程,做好类的事件接口,并把HOOK过程放在一个标准模块里,编译,生成.
再建立一EXE工程,引用DLL,编写简单的代码,OK,编译,运行,按按键,动鼠标................晕,真的可以呀!!!
回头想想,其实是自己的鼻子让人牵着走了N年....不过,这下也让我知道了一句话的重要性:
<B>学习WHY,而不是学习HOW!</B>
很多东西,其实自己就可以搞明白的.
最后,也附上代码,让大家看看,VB是如何独立做到全局HOOK的:
http://m5home.vicp.net:85/pubfile/m5/Hook.rar</P>
<P>
1zywFcK1.rar
(16.03 KB, 下载次数: 32544)
</P>
[此贴子已经被作者于2005-4-22 12:29:15编辑过] |