2、钩子问题.
安装消息钩子是什么意思
安装一个钩子函数,用于在消息发送到目标窗口过程前将其截取。 该类型可以是一个系统级别的钩子或者线程级别的钩子。也就是通过安装“消息钩子”,可以窃取网络游戏玩家的账号密码,发送到黑客指定的远程服务器或邮箱,导致用户无法正常运行游戏
钩子问题.
以前做过编程,但现在都忘个差不多了,给你查了一点,看能不能有帮助
HOOK编程与消息处理一2009-06-14 16:02阅读本文需要一定的C++基础和windows编程基础,另外对动态链接库原理和机制也要有一定了解。我尽量讲解得简单明了一些。
因为考试系统项目中要对系统中的键盘消息进行处理,而WEB页面中对系统热键、功能键不能进行有效处理,如(ALT+F4 ALT+TABLE等等),因此需要编写一个WIN32下的客户端程序,内嵌一个WebBrownser实现页面显示(或用CHtmlView对象实现,其实道理都是一样的),这样我可以在客户端程序框架中对键盘消息进行处理。
本文介绍的内容主要是利用动态链接库安装全局进程钩子,实现应用程序的主导控制,因此本文的范畴还是在COM相关领域中。#此前在首页部分显示#
关于Hook编程,以前我总是认为很神秘,因为黑客技术中经常用到HOOK,比如最常见的盗取密码。下面我们来一窥门径。
首先我们来简单了解一下窗口句柄和WINDOWS消息处理机制;
窗口是Windows应用程序中一个非常重要的元素,一个Windows应用程序至少要有一个窗口,称为主窗口。窗口是屏幕上的一块矩形区域,是Windows应用程序与用户进行交互的接口。在windows应用程序中,窗口是通过窗口句柄(HWND)来标识的。我们要对某个窗口进行操作,首先要得到这个窗口的句柄。句柄(HANDLE)是Windows程序中一个重要的概念,使用很频繁。在windows程序中有各种各样的资源(窗口、图标、光标等),系统在创那家这些资源时会为它们分配内存,并返回标识这些资源的标识号,即句柄(图标句柄HICON、光标句柄HCURSOR、画刷句柄HBRUSH)。
Windows程序设计是一种完全不同于DOS方式的程序设计方法。它是一种事件驱动方式的程序设计模式,主要是基于消息的。例如当用户在窗口中画图的时候,按下鼠标左键,操作系统会感知这一事件,并将这一事件包装成一个消息,投递到应用程序消息队列中,然后应用程序通过调用GetMessage函数从消息队列中取出消息,然后调用DispatchMessage函数将这条消息调度给操作系统,操作系统会调用在设计窗口类时指定的应用程序窗口过程(WindowProc)对这一消息进行处理。
在实际应用中,可能要对某个特殊消息进行屏蔽,如在我的考试项目中要对键盘消息进行屏蔽,而鼠标消息不与处理。我们可以给我们的程序安装一个HOOK过程(钩子过程)来实现这一功能。在程序中,我们可以过SetWindowsHookEx函数来安装一个钩子过程。该函数声明如下:
HHOOK SetWindowsHookEx(
int idHook, // type of hook to install
HOOKPROC lpfn, // address of hook procedure
HINSTANCE hMod, // handle to application instance
DWORD dwThreadId // identity of thread to install hook for
SetWindowsHookEx函数的作用是安装一个应用程序定义的钩子过程,并将其放到钩子链中。应用程序可以安装多个钩子过程,对我们感兴趣的多个消息进行检查。这样多个钩子过程就形成了钩子链,最后安装的钩子过程总是排在该链的前面。如果调用成功,SetWindowsHookEx函数返回值就是所安装的钩子过程的句柄,否则返回NULL。
各参数的含义各位读者可以看下MSDN,MSDN中的英文也是很好读懂的,各位不要害怕。
第一个参数idHook MSDN中给出的含义是Specifies the type of hook procedure to be installed. 中文意思就是指定将要安装的钩子过程的类型。在我的项目中因为要处理键盘消息,因此本文中我会将其设为WH_KEYBOARD。如果要处理鼠标消息可将其设为WH_MOUSE。
第二个参数lpfn 指向相应钩子过程。如果参数dwThreadId 为0,或者指定了一个其他进程创那家的线程的标识符,那么参数lpfn 必须指向一个位于某动态接库中的钩子过程。否则,参数lpfn 可以指向当前进程相关代码中定义的一个钩子过程。
第三个参数hMod 指定lpfn 指向的钩子过程所在DLL的句柄。如果参数dwThreadId 指定的线程由当前进程创建,并且相应的钩子过程定义于当前进程相关的代码中,那么必须将此参数设为NULL。
第四个参数dwThreadId 指定也钩子过程相关的线程标识。如果其值为0,那么安装的钩子过程将与桌面上运行的所有线程都相关。
关于进程内的钩子比较简单,大家参看MSDN中的MouseProc、CallNextHookEx以及上面的SetWindowsHookEx等函数的说明就可以实现。在这里我们要写一个应用全局钩子的应用程序,主要是我想在程序运行时对桌面运行的所有进程的键盘消息都进行屏蔽。好,我们现在建一个空的DLL工程名为HookTest,再建一个C++源文件HookTest.cpp,在源文件中写一个函数SetHook用以安装钩子过程,再写一个函数UnHook用以卸载钩子过程。代码如下:
LRESULT CALLBACK KeyboardProc(
int code, // hook code
WPARAM wParam, // virtual-key code
LPARAM lParam // keystroke-message information)
if(VK_F2==wParam)
SendMessage(hWnd,WM_CLOSE,0,0);
UnhookWindowsHookEx(hKeyboardHook);
return 1;
void SetHook(HWND hwnd)
hWnd=hwnd;
hKeyboardHook=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle("Hook"),0);
void UnHook()
if(hKeyboardHook)
SendMessage(hWnd,WM_CLOSE,0,0);
UnhookWindowsHookEx(hKeyboardHook);
http://hi.baidu.com/mjnpc/blog/item/edbc9d1a6a74f9f3af5133a4.html
黑客3号钓鲫鱼好用吗?
看鲫鱼大小决定使用什么钩子。大多数的竞技钓者使用的是“袖钩”和“伊豆”;此类钩子的特点如下:袖钩:钩条超细、钩柄长、钩门窄、钩尖直、重量轻,具备灵敏度高、刺鱼快的特点,是钓小鲫鱼的首选。一般选用0-2号即可。伊豆:钩门窄、钩尖外撇、钩柄长、钩条细,适合钓中小型鲫鱼等。选用号数一般在2-5号。我个人用丸士的3-5号,钓鲫鱼也不错,你也可以去看看。具体哪个品牌适合就不好评价了,建议你去淘宝上看看,找大一点的供应商购买,另外,进口鱼钩大多数质量都是不错的,例如伽马,土肥富和欧娜等,但是价格较高。
什么是钩子程序?c/c++如何实现?
钩子程序解释截获键盘和鼠标事件的程序。比如你要输入qq密码的时候,钩子程序就会记录你按键盘的哪个键,鼠标按了哪个键。。。然后,就获得了你的密码
怎样设置win7的本地安全策略来防止黑客攻击
1、点击“开始”,在搜索框中输入“本地安全策略”,点击“本地安全策略”,就可以打开了。如图1所示
2、打开“本地安全策略”界面,点击“本地策略”——“安全选项”,找到“网络访问:可远程访问的注册表路径”和“网络访问:可远程访问的注册表路径和子路径”这两个选项。如图2所示
3、双击打开“网络访问:可远程访问的注册表路径”,删除“注册表路径”,点击“确定”。如图3所示
4、双击打开“网络访问:可远程访问的注册表路径和子路径”,删除“注册表路径”,点击“确定”。如图4所示
有没有什么方法可以查看到登录界面哪里的隐藏密码
可以给系统安装一个钩子(类似于黑客软件),
电脑用户每次键盘输入的内容,都会通过该钩子记录下来,
钩子安装者就可能筛选出需要的密码内容。