青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
DLL Inject -- 一、Windows 鉤子(Hooks) - (1)

之前搞復雜了,其實可以很簡單

有個要點:
The global hooks are a shared resource, and installing one affects all applications in the same desktop as the calling thread. All global hook functions must be in libraries. Global hooks should be restricted to special-purpose applications or to use as a development aid during application debugging. Libraries that no longer need a hook should remove its hook procedure.

作為一個全局或跨進程的鉤子,鉤子的實現函數必須在DLL中實現,不然目標程序觸發到鉤子時就會掛掉

DLL實現

//?DLLInject.cpp?:?Defines?the?entry?point?for?the?DLL?application.
//

#include?
"stdafx.h"
#include?
<stdio.h>

LRESULT?CALLBACK?CallWndProc(
int?code,?WPARAM?wParam,?LPARAM?lParam)
{?
????
return?CallNextHookEx?(NULL,?code,?wParam,?lParam);
}

BOOL?APIENTRY?DllMain(?HANDLE?hModule,?
??????????????????????DWORD??ul_reason_for_call,?
??????????????????????LPVOID?lpReserved
??????????????????????)
{
????
switch?(?ul_reason_for_call?)
????{
????
case?DLL_PROCESS_ATTACH:
????????{
????????????
char?szDllName[MAX_PATH]={0};
????????????GetModuleFileName((HMODULE)hModule,?szDllName,?MAX_PATH);
????????????LoadLibrary(szDllName);????????
????????????
break;
????????}
????
case?DLL_PROCESS_DETACH:
????????{
????????}
????????
break;
????}
????
????
return?TRUE;
????
}

在DLL加載時,調用多一次,LoadLibrary的目的,是為了增加引用計數,這樣即使我們的程序關掉了,系統也不會卸載掉DLL,DLL還在內存中(所以通常情況下 LoadLibrary 和 FreeLibrary 要成對調用, 具體可以了解下 Windows 的內存管理機制)

調用代碼:
HHOOK?g_hHook?=?NULL;
UINT??g_nHOOKMsg?
=?0;

//---------------------------------------------------------------------------
//?ModuleFromAddress
//
//?Returns?the?HMODULE?that?contains?the?specified?memory?address
//---------------------------------------------------------------------------
static?HMODULE?ModuleFromAddress(PVOID?pv)?
{
????MEMORY_BASIC_INFORMATION?mbi;
????
????
return?((::VirtualQuery(pv,?&mbi,?sizeof(mbi))?!=?0)???(HMODULE)?mbi.AllocationBase?:?NULL);
}

void?CDLLInjectBySetHookDlg::OnButton1()?
{????
????HMODULE?hModule?
=?::LoadLibrary("DLLInject.dll");
????
if?(?hModule?==?NULL?)
????{
????????AfxMessageBox(
"Failed?to?LoadLibrary!");
????????
return?;
????}

????typedef?LRESULT?(CALLBACK?
*CallWndProc)(int?code,?WPARAM?wParam,?LPARAM?lParam);
????CallWndProc?pfnCallWndProc?
=?(CallWndProc)::GetProcAddress(hModule,?"CallWndProc");

????
if?(?pfnCallWndProc?==?NULL?)
????{
????????AfxMessageBox(
"Failed?to?GetProcAddress!");
????????
return?;
????}

????HWND?hWnd?
=?::FindWindow(NULL,?"testHooked");
????
if?(hWnd?==?NULL)
????{
????????AfxMessageBox(
"Failed?to?Find?Window!");
????????
return?;
????}

????DWORD?dwThreadID?
=?::GetWindowThreadProcessId(hWnd,?NULL);
????
if?(?dwThreadID?==?0?)
????{
????????AfxMessageBox(
"Failed?to?Get?Window?Thread?Process?ID");
????????
return?;
????}

????g_hHook?
=?::SetWindowsHookEx(WH_CALLWNDPROC,?(HOOKPROC)(pfnCallWndProc),?ModuleFromAddress(pfnCallWndProc),?dwThreadID);

????
if?(?g_hHook?==?NULL?)
????{
????????AfxMessageBox(
"Failed?to?Set?Windows?Hook");
????????
return?;
????}

????::SendMessage(::FindWindow(NULL,?
"testHooked"),?WM_USER,?0,?0);
????::UnhookWindowsHookEx(g_hHook);
}


按下按鈕,使用工具查看,目標程序的加載模塊列表中已經有了 DLLInject.dll ,注入成功!
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一本到高清视频免费精品| 在线亚洲欧美视频| 欧美一区二区三区四区视频| 国产视频一区在线观看| 美女精品一区| 欧美激情中文字幕一区二区| 亚洲女人天堂成人av在线| 欧美影院精品一区| 亚洲精品久久久久| 羞羞答答国产精品www一本| 在线观看91精品国产入口| 亚洲精品综合| 一区二区三区在线观看欧美 | 欧美激情小视频| 午夜精品短视频| 欧美成人午夜77777| 欧美有码在线观看视频| 欧美激情网友自拍| 久久综合影视| 国产精品视频免费| 亚洲美女av在线播放| 精品成人在线视频| 亚洲一区二区三区在线看| 亚洲欧洲一区二区天堂久久| 亚洲欧美乱综合| 亚洲午夜精品久久| 免费视频一区| 免费成人小视频| 狠狠色丁香久久婷婷综合丁香| 一区二区三区久久| 91久久视频| 久久综合狠狠综合久久综合88| 久久精品导航| 国产乱肥老妇国产一区二| 亚洲精品一区久久久久久| 91久久夜色精品国产九色| 久久久久久一区二区三区| 欧美伊人久久| 国产精品永久在线| 亚洲欧美视频在线观看| 亚洲免费影视| 亚洲精品久久视频| 激情久久久久久| 性色av一区二区三区在线观看| 性感少妇一区| 国产欧美短视频| 亚洲欧美成人在线| 欧美一区二区视频在线| 国产精品卡一卡二卡三| 中国成人亚色综合网站| 在线一区二区三区做爰视频网站| 欧美成人久久| 亚洲麻豆视频| 亚洲网站啪啪| 国产精品qvod| 亚洲婷婷免费| 午夜一区不卡| 国产视频久久久久| 久久激情视频久久| 牛牛精品成人免费视频| 亚洲第一级黄色片| 欧美大片免费观看| 亚洲九九爱视频| 亚洲伊人一本大道中文字幕| 欧美视频专区一二在线观看| 亚洲一区二区三区精品视频| 欧美一区二区日韩一区二区| 国产亚洲二区| 久久久久一区二区三区四区| 免费看黄裸体一级大秀欧美| 最新精品在线| 欧美三日本三级三级在线播放| 亚洲一区二区久久| 久久男人资源视频| 亚洲欧洲三级电影| 欧美日韩精品系列| 亚洲免费视频在线观看| 久久综合久久美利坚合众国| 亚洲激情电影在线| 欧美午夜欧美| 久久av二区| 亚洲激情电影中文字幕| 亚洲天堂av综合网| 国产一区二区三区日韩欧美| 欧美69wwwcom| 亚洲一区二区三区色| 免费欧美电影| 亚洲欧美日韩在线高清直播| 尤物99国产成人精品视频| 欧美日韩中文在线| 久久人人爽国产| 一区二区三区视频观看| 免费观看在线综合| 亚洲欧美综合一区| 亚洲人成网站在线观看播放| 国产女优一区| 欧美精品综合| 久久亚洲精品中文字幕冲田杏梨| 夜夜嗨av一区二区三区| 欧美freesex8一10精品| 午夜精品福利一区二区三区av| 亚洲高清在线视频| 国产精品综合av一区二区国产馆| 欧美成黄导航| 久久久久久久久久久久久久一区| 一区二区三区毛片| 亚洲国产成人av| 久久视频在线视频| 亚洲欧美一区二区三区极速播放 | 免费一级欧美在线大片| 亚洲一区精彩视频| 亚洲美女在线视频| 欧美成人综合在线| 亚洲欧美日韩精品一区二区| 在线观看av不卡| 国产欧美一区二区白浆黑人| 欧美精品99| 免费成人黄色片| 久久riav二区三区| 亚洲欧美国产制服动漫| 999在线观看精品免费不卡网站| 欧美+日本+国产+在线a∨观看| 欧美综合国产| 欧美一区免费| 亚洲欧美在线高清| 亚洲一区三区电影在线观看| 日韩午夜中文字幕| 亚洲日本乱码在线观看| 尤物在线精品| 国内成人精品2018免费看| 国产精品日日做人人爱| 国产精品国产精品| 欧美日韩在线视频观看| 欧美日韩精品免费观看视一区二区 | 一区二区三区四区五区精品视频| 欧美高清不卡| 欧美国产成人在线| 嫩模写真一区二区三区三州| 久热精品视频在线观看一区| 久久精品国产综合精品| 久久精品国产77777蜜臀| 久久精品国产免费观看| 久久精品99久久香蕉国产色戒 | 欧美日韩国内| 欧美日韩一二三四五区| 欧美日韩精品国产| 国产精品日本欧美一区二区三区| 国产精品久久9| 国产免费观看久久| 国产一区导航| 亚洲第一搞黄网站| 99综合精品| 亚洲综合999| 欧美一区二区成人| 久久久噜噜噜久久中文字免| 狂野欧美激情性xxxx| 欧美成人免费网| 亚洲日本中文字幕免费在线不卡| 亚洲精选久久| 亚洲一区日韩在线| 久久精品男女| 欧美国产丝袜视频| 欧美午夜一区二区福利视频| 国产精品资源在线观看| 一区视频在线| 一本色道**综合亚洲精品蜜桃冫| 亚洲一区二区三区免费观看 | 欧美日韩精品免费观看| 国产精品区一区二区三| 狠狠色综合色区| 99视频在线观看一区三区| 午夜精品亚洲| 欧美大片在线观看一区二区| 亚洲美女尤物影院| 欧美专区日韩专区| 欧美风情在线观看| 国产欧美一区二区三区沐欲| 在线观看三级视频欧美| 亚洲校园激情| 女人香蕉久久**毛片精品| 99亚洲一区二区| 久久九九精品| 国产精品黄视频| 欧美久久久久| 国产欧美不卡| 日韩一区二区电影网| 久久九九99| 亚洲精品在线三区| 久久精品亚洲一区二区| 欧美日韩精品一区二区天天拍小说| 国产日韩欧美精品综合| 99re6热在线精品视频播放速度| 久久超碰97人人做人人爱| 亚洲国产欧美一区二区三区同亚洲| 亚洲午夜国产一区99re久久 | 欧美一级夜夜爽| 亚洲激情校园春色| 久久亚洲综合色一区二区三区| 国产精品美女主播| 在线亚洲+欧美+日本专区|