|
发表于 2019-4-20 20:06:34
|
显示全部楼层
你的代码无法成功注入应该是CBTProc中没有代码,我添加了下面的代码就能成功注入了
- LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
- {
- CHAR szBuf[128];
- CHAR szCode[128];
- static int c = 0;
- size_t cch;
- HRESULT hResult;
- if(nCode < 0) // do not process message
- return CallNextHookEx(m_hook, nCode, wParam,
- lParam);
- switch(nCode)
- {
- case HCBT_ACTIVATE:
- hResult = StringCchCopy(szCode, 128 / sizeof(TCHAR), "HCBT_ACTIVATE");
- if(FAILED(hResult))
- {
- // TODO: write error handler
- }
- break;
- case HCBT_CLICKSKIPPED:
- hResult = StringCchCopy(szCode, 128 / sizeof(TCHAR), "HCBT_CLICKSKIPPED");
- if(FAILED(hResult))
- {
- // TODO: write error handler
- }
- break;
- case HCBT_CREATEWND:
- hResult = StringCchCopy(szCode, 128 / sizeof(TCHAR), "HCBT_CREATEWND");
- if(FAILED(hResult))
- {
- // TODO: write error handler
- }
- break;
- case HCBT_DESTROYWND:
- hResult = StringCchCopy(szCode, 128 / sizeof(TCHAR), "HCBT_DESTROYWND");
- if(FAILED(hResult))
- {
- // TODO: write error handler
- }
- break;
- case HCBT_KEYSKIPPED:
- hResult = StringCchCopy(szCode, 128 / sizeof(TCHAR), "HCBT_KEYSKIPPED");
- if(FAILED(hResult))
- {
- // TODO: write error handler
- }
- break;
- case HCBT_MINMAX:
- hResult = StringCchCopy(szCode, 128 / sizeof(TCHAR), "HCBT_MINMAX");
- if(FAILED(hResult))
- {
- // TODO: write error handler
- }
- break;
- case HCBT_MOVESIZE:
- hResult = StringCchCopy(szCode, 128 / sizeof(TCHAR), "HCBT_MOVESIZE");
- if(FAILED(hResult))
- {
- // TODO: write error handler
- }
- break;
- case HCBT_QS:
- hResult = StringCchCopy(szCode, 128 / sizeof(TCHAR), "HCBT_QS");
- if(FAILED(hResult))
- {
- // TODO: write error handler
- }
- break;
- case HCBT_SETFOCUS:
- hResult = StringCchCopy(szCode, 128 / sizeof(TCHAR), "HCBT_SETFOCUS");
- if(FAILED(hResult))
- {
- // TODO: write error handler
- }
- break;
- case HCBT_SYSCOMMAND:
- hResult = StringCchCopy(szCode, 128 / sizeof(TCHAR), "HCBT_SYSCOMMAND");
- if(FAILED(hResult))
- {
- // TODO: write error handler
- }
- break;
- default:
- hResult = StringCchCopy(szCode, 128 / sizeof(TCHAR), "Unknown");
- if(FAILED(hResult))
- {
- // TODO: write error handler
- }
- break;
- }
- hResult = StringCchPrintf(szBuf, 128 / sizeof(TCHAR), "CBT - nCode: %s, tsk: %ld, %d times ",
- szCode, wParam, c++);
- if(FAILED(hResult))
- {
- // TODO: write error handler
- }
- hResult = StringCchLength(szBuf, 128 / sizeof(TCHAR), &cch);
- if(FAILED(hResult))
- {
- // TODO: write error handler
- }
- std::string s(szBuf, szBuf + cch);
- SendMessage(FindWindowEx(FindWindow("Notepad", NULL), NULL, "Edit", NULL), WM_SETTEXT, 0, (LPARAM)s.c_str());
- return CallNextHookEx(m_hook, nCode, wParam, lParam);
- }
复制代码 |
|