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

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伊人久久综合| 亚洲欧美国产日韩中文字幕| 久久久久久久高潮| 亚洲黄色一区| 一区二区欧美在线观看| 亚洲一区欧美二区| 久久免费视频这里只有精品| 国产精品成人观看视频免费| 极品av少妇一区二区| 一区二区三区视频在线看| 久久精品国产视频| 亚洲国产精品视频| 亚洲欧美激情在线视频| 久久美女性网| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 国产精品视频网站| 狠狠久久综合婷婷不卡| 最新国产拍偷乱拍精品| 亚洲欧美日韩精品久久久| 欧美成年人视频| 亚洲一区二区三区精品动漫| 美国十次了思思久久精品导航| 国产精品欧美风情| 一本色道久久综合一区| 欧美国产精品| 久久精品99无色码中文字幕| 欧美视频三区在线播放| 亚洲第一免费播放区| 久久国产视频网站| 亚洲一二三四久久| 欧美日韩一区二区欧美激情| 91久久久久久国产精品| 久久欧美中文字幕| 午夜在线成人av| 国产精品丝袜白浆摸在线| 中日韩午夜理伦电影免费| 亚洲国产精品电影| 久久综合给合| 亚洲激情第一页| 裸体丰满少妇做受久久99精品| 午夜精品久久久久久久99水蜜桃 | 香蕉尹人综合在线观看| 日韩午夜激情| 欧美日韩在线免费| 一区二区三区精品视频在线观看 | 国产欧美日本一区视频| 日韩一级精品视频在线观看| 免费在线成人| 久久久综合视频| 国产一区二区欧美| 久久视频免费观看| 亚洲一区二区在线观看视频| 国产精品美女久久久浪潮软件| 亚洲综合色视频| 亚洲一区二区三区免费观看 | 亚洲视频中文字幕| 99视频在线精品国自产拍免费观看| 欧美精品三级在线观看| 99re这里只有精品6| 欧美国产一区二区三区激情无套| 六十路精品视频| 亚洲茄子视频| 99人久久精品视频最新地址| 国产精品日韩一区二区| 久久久99免费视频| 免费在线国产精品| 亚洲免费在线观看视频| 欧美专区亚洲专区| 99日韩精品| 欧美一区二区观看视频| 91久久精品日日躁夜夜躁国产| 亚洲精品乱码久久久久久日本蜜臀| 欧美午夜一区二区| 久久综合伊人| 欧美日韩高清在线| 久久www成人_看片免费不卡| 久久综合五月天婷婷伊人| 亚洲免费观看在线观看| 亚洲综合欧美| 亚洲精品久久在线| 一本色道久久精品| 狠狠做深爱婷婷久久综合一区 | 欧美日韩免费一区| 小黄鸭精品aⅴ导航网站入口| 亚洲欧美日韩综合| 亚洲黄页一区| 欧美一区1区三区3区公司| 亚洲国产精品久久久久秋霞蜜臀| 亚洲国产一区二区在线| 国产九区一区在线| 亚洲国产91精品在线观看| 国产精品国产自产拍高清av| 欧美成人伊人久久综合网| 欧美午夜不卡视频| 久久久亚洲综合| 国产精品剧情在线亚洲| 欧美成年网站| 国产一区二区三区不卡在线观看| 亚洲精品三级| 亚洲第一在线综合网站| 欧美一级视频| 欧美一区二区成人6969| 欧美日韩不卡| 欧美精品免费观看二区| 午夜久久99| 欧美不卡在线视频| 久久丁香综合五月国产三级网站| 欧美久久久久中文字幕| 免费成人性网站| 国产一区二区三区四区hd| 中文一区二区在线观看| 夜夜嗨av一区二区三区| 猛男gaygay欧美视频| 蜜桃久久av一区| 韩日在线一区| 久久福利一区| 久热精品在线| 国产日韩av高清| 先锋影院在线亚洲| 亚洲欧美综合国产精品一区| 欧美午夜剧场| 一区二区三区久久精品| 一区二区三区四区五区视频| 老司机亚洲精品| 欧美成ee人免费视频| 在线观看亚洲视频啊啊啊啊| 亚洲欧美日韩成人高清在线一区| 一本综合久久| 欧美电影在线观看完整版| 美女精品视频一区| 一区在线免费观看| 久久亚洲风情| 免费视频一区| 亚洲第一网站| 欧美日韩国产天堂| 一区二区三区色| 久久成人国产| 亚洲二区三区四区| 美女精品在线观看| 亚洲国产精品成人久久综合一区| 日韩一区二区精品视频| 欧美午夜不卡影院在线观看完整版免费| 亚洲精品老司机| 亚洲综合精品四区| 国产乱肥老妇国产一区二| 久久成人精品一区二区三区| 久久久99精品免费观看不卡| 亚洲电影自拍| 欧美日韩中文字幕精品| 亚洲全部视频| 久久av一区二区三区亚洲| 在线观看91精品国产麻豆| 欧美国产日韩一区二区在线观看| 亚洲乱码视频| 久久精品二区亚洲w码| 国产专区综合网| 欧美欧美全黄| 欧美一区免费| 日韩午夜av| 欧美69wwwcom| 性欧美8khd高清极品| 亚洲国产女人aaa毛片在线| 欧美午夜理伦三级在线观看| 久久天堂国产精品| 亚洲视频网站在线观看| 欧美va亚洲va香蕉在线| 亚洲欧美日本国产有色| 亚洲成人资源网| 国产精品影音先锋| 欧美国产在线观看| 久久精品成人一区二区三区| 日韩视频在线一区二区| 老司机凹凸av亚洲导航| 亚洲欧美精品在线观看| 麻豆免费精品视频| 亚洲小说春色综合另类电影| 欧美激情中文字幕乱码免费| 午夜宅男欧美| 日韩亚洲成人av在线| 在线成人激情视频| 国产在线视频不卡二| 国产精品视频免费| 国产精品mm| 欧美日韩一卡二卡|