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

S.l.e!ep.¢%

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

利用WH_DEBUG消息進行反HOOK

Posted on 2010-01-10 16:48 S.l.e!ep.¢% 閱讀(1200) 評論(2)  編輯 收藏 引用 所屬分類: RootKit
【原創】利用WH_DEBUG消息進行反HOOK
ningkai 當前離線

標 題: 【原創】利用WH_DEBUG消息進行反HOOK
作 者: ningkai
時 間: 2007-10-09,19:14
鏈 接: http://bbs.pediy.com/showthread.php?t=53016

以前在學習鉤子的時候對于WH_DEBUG這個類型很是不解釋,不知道它是做什么用的,在網上找了一找,發現也沒有什么有價值的文章。在逆向分析“熱血江湖”突然發現WH_DEBUG竟被用來進行反鍵盤記錄(這是老版本,現在的版本已經用了最新的技術,原理沒弄明白,哪位要是弄明白了,希望可以指點一下)。仔細研究了一下,弄明白了其中的原理,現在就介紹給一下。
首先要將WH_DEBUG介紹一下。WH_DEBUG為調試鉤子,用來給鉤子函數除錯。在系統調用系統中與其他Hook關聯的Hook鉤子例程之前,系統會調用WH_DEBUG?Hook鉤子例程。你可以使用這個Hook來決定是否允許系統調用與其他Hook關聯的Hook鉤子例程。WH_DEBUG調用DebugProc鉤子例程。
DebugProc語法:
LRESULT?CALLBACK?DebugProc(
??int?nCode,
????WPARAM?wParam,
????LPARAM?lParam
)
nCode傳遞到鉤子例程的鉤子代碼。
wParam指示當前即將被調用的鉤子的類型,如WH_MOUSE,WH_KEYBOARD?參數。
lParam?指向DEBUGHOOKINFO?結構。
typedef?struct?
{
????DWORD?idThread;
????DWORD?idThreadInstaller;
????LPARAM?lParam;
????WPARAM?wParam;
????int?code;
}?DEBUGHOOKINFO,?*PDEBUGHOOKINFO;
idThread?安裝WH_DEBUG鉤子的線程ID。
idThreadInstaller?當前即將被調用的鉤子所在的線程ID。
lParam?當前即將被調用的鉤子的lParam參數。
wParam?當前即將被調用的鉤子的wParam參數。
Code?當前即將被調用的鉤子的nCode參數。

返回值:當你已經處理了該鉤子并且不希望即將被調用的鉤子繼續執行,則必須返回非0值?否則請返回CallNextHookEx的值。

進行反HOOK時只要知道判斷idThread和idThreadInstaller是否相等就可了。如果相等,說明即將被調用的鉤子是自己線程中鉤子;如果不等,說明是其它線程中的鉤子,只要返回非0值就可以了,這時即將被調用的鉤子就不會執行了。
程序編寫:
新建DLL工程,寫入以下代碼,然后調用InstallHook()安裝WH_DEBUG鉤子,調用UnInstallHook()卸載WH_DEBUG鉤子。
#ifndef?MYLIBAPI
#define?MYLIBAPI?extern?"C"?__declspec(dllimport)
#endif

HHOOK?DEBUG_hhook;
HINSTANCE?handle;

MYLIBAPI?bool?WINAPI?InstallHook();
MYLIBAPI?bool?WINAPI?UnInstallHook();

LRESULT?CALLBACK?DebugProc(int?nCode,?WPARAM?wParam,?LPARAM?lParam)?//WH_DEBUG鉤子例程
{
??DEBUGHOOKINFO?*debug=(DEBUGHOOKINFO?*)lParam;
//如果要編寫反鍵盤記錄代碼,可以改成
//?if(debug->idThread!=debug->idThreadInstaller?&&?wParam==?WH_KEYBOARD)
//{
//?return?1;
//}
??if(debug->idThread!=debug->idThreadInstaller)???//是否相等,如果不等則不執行
??{
????return?1;
??}
??return?::CallNextHookEx(DEBUG_hhook,?nCode,?wParam?,lParam);
}

BOOL?APIENTRY?DllMain(?HINSTANCE?hModule,?
???????????????????????DWORD??ul_reason_for_call,?
???????????????????????LPVOID?lpReserved
???????????)
{
??handle=hModule;
????return?TRUE;
}

bool?WINAPI?InstallHook()??//安裝WH_DEBUG鉤子
{
DEBUG_hhook=::SetWindowsHookEx(WH_DEBUG,(HOOKPROC)DebugProc,handle,?NULL);
If(DEBUG_hhook==NULL)
Return?false;
??return?true;
}

bool?WINAPI?UnInstallHook()//卸載WH_DEBUG鉤子
{
??UnhookWindowsHookEx(DEBUG_hhook);
??return?true;
}
當然,破解這種方法的辦法也很簡單。比如你要用HOOK進行鍵盤攔截時,在安裝WH_KEYBOARD時,同時安裝一個WH_DEBUG鉤子。這時你自己的WH_DEBUG鉤子將攔截到你自己的WH_KEYBOARD,DEBUGHOOKINFO?結構中的lParam存放的是WH_KEYBOARD的lParam,wParam存放的是WH_KEYBOARD的wParam,只要在這里處理WH_KEYBOARD就可以了。因為HOOK鏈是按照后進先出的順序執行的,所以你只要在反HOOK的WH_DEBUG之后安裝WH_DEBUG,就可以在它之前進行處理了。
我只用這種方法進行過反鍵盤和鼠標,其它的鉤子,我還沒有試過,如果有什么不對的地方,還請大家指點!!!

????很久以前寫的文章,一直沒發布,突然想起來了,發出來共大家參考,本來是有源碼的,可是權限不夠,不能發附件,所以請大家海涵

Feedback

# re: 利用WH_DEBUG消息進行反HOOK   回復  更多評論   

2010-02-23 16:50 by Pencil.C++
debug->idThread!=debug->idThreadInstaller

這個等式永遠成立,在2000/xp之后的系統中。因為idThreadInstaller始終是0

# re: 利用WH_DEBUG消息進行反HOOK   回復  更多評論   

2010-02-23 20:24 by S.l.e!ep.¢%
那2K/XP 后沒法判斷?
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美伊人久久久久久午夜久久久久| 久久久久久电影| 亚洲午夜小视频| 亚洲电影欧美电影有声小说| 亚洲欧美日韩另类| 午夜精品久久久久久久| 亚洲美女91| 欧美日韩国产电影| 亚洲精选在线观看| 亚洲国产99| 欧美大片在线观看一区| 亚洲国产婷婷| 亚洲国产日韩欧美一区二区三区| 久久九九有精品国产23| 亚洲第一页自拍| 亚洲福利视频网| 欧美精品videossex性护士| 亚洲激情在线播放| 亚洲精品综合精品自拍| 国产精品久久久久久五月尺| 校园激情久久| 欧美专区一区二区三区| 精久久久久久久久久久| 欧美国产日韩精品免费观看| 欧美韩国在线| 亚洲一区二区网站| 亚洲午夜日本在线观看| 国产欧美婷婷中文| 浪潮色综合久久天堂| 欧美mv日韩mv国产网站| 一本色道久久88综合日韩精品| 999亚洲国产精| 国产视频在线观看一区| 蜜臀av国产精品久久久久| 女主播福利一区| 亚洲一区国产精品| 欧美与黑人午夜性猛交久久久| 伊人久久亚洲影院| 亚洲毛片在线免费观看| 国产视频一区欧美| 亚洲人成网站在线播| 国产精品色网| 欧美成人亚洲| 欧美三级电影一区| 久久婷婷蜜乳一本欲蜜臀| 欧美激情1区2区| 欧美在线一区二区三区| 欧美a级片一区| 欧美怡红院视频| 欧美成人影音| 久久久综合香蕉尹人综合网| 欧美人成在线| 久久久综合激的五月天| 欧美日韩精品在线| 欧美xx视频| 国产日韩精品视频一区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 国内在线观看一区二区三区 | 国产一区视频在线看| 欧美国产视频在线| 国产精品亚洲激情| 亚洲激精日韩激精欧美精品| 国产日韩欧美在线播放不卡| 91久久精品一区| 尤物yw午夜国产精品视频| 一区二区三区国产盗摄| 亚洲国产精彩中文乱码av在线播放| 亚洲视频播放| 一区二区免费在线播放| 美女成人午夜| 老司机亚洲精品| 国产精品一区=区| 亚洲免费激情| 日韩一区二区精品在线观看| 久久亚洲国产成人| 久久久999| 国产欧美一区二区三区视频| 国产精品99久久久久久www| 99re66热这里只有精品3直播| 久久精品国产久精国产爱| 久久精品国产69国产精品亚洲| 国产精品成人一区| 一本一本久久a久久精品综合妖精| 亚洲日本成人| 久久综合久久综合久久| 麻豆91精品| 揄拍成人国产精品视频| 久久超碰97中文字幕| 久久国产主播精品| 国产欧美视频一区二区| 午夜宅男欧美| 久久国产精品一区二区| 国产性猛交xxxx免费看久久| 午夜亚洲影视| 久久五月天婷婷| 在线视频观看日韩| 欧美成人a视频| 亚洲黄色三级| 亚洲婷婷在线| 国产精品欧美日韩久久| 午夜精品久久久久久久| 久久久久9999亚洲精品| 揄拍成人国产精品视频| 欧美成年视频| 中国成人在线视频| 欧美在线日韩在线| 精品二区久久| 欧美国产日韩一区二区三区| 日韩一级精品视频在线观看| 午夜在线播放视频欧美| 国产一区二区0| 另类成人小视频在线| 亚洲精品国产欧美| 亚洲综合清纯丝袜自拍| 国产亚洲综合精品| 美女久久一区| 中日韩美女免费视频网站在线观看| 亚洲欧美日韩在线综合| 国产主播一区二区三区四区| 美女视频一区免费观看| 一本色道久久综合亚洲精品小说 | 久久精品九九| 亚洲激情在线播放| 亚洲欧美在线免费观看| 国产一区二区成人| 欧美a级在线| 亚洲在线播放| 欧美色另类天堂2015| 欧美一区在线直播| 亚洲国产日韩在线| 欧美主播一区二区三区| 亚洲国产婷婷香蕉久久久久久99| 欧美日韩精品一区| 久久精品国产欧美亚洲人人爽| 91久久精品美女高潮| 久久狠狠婷婷| 一本色道久久88综合亚洲精品ⅰ| 国产日韩一区| 欧美日韩国产综合网 | 国产精品久久久久一区二区三区共| 午夜影视日本亚洲欧洲精品| 亚洲黄一区二区| 久久久亚洲影院你懂的| 亚洲一区欧美激情| 亚洲精品久久7777| 国产日韩欧美精品| 欧美日韩国产一级| 久久综合九色欧美综合狠狠| 亚洲欧美激情四射在线日 | 欧美一区二区高清在线观看| 亚洲人成绝费网站色www| 久久免费一区| 欧美怡红院视频| 亚洲在线视频观看| 一本大道久久a久久精品综合| 极品尤物av久久免费看 | 久久九九热re6这里有精品| 亚洲视频在线观看一区| 亚洲激情第一区| 在线播放日韩| 国产曰批免费观看久久久| 国产精品视频一区二区三区| 欧美连裤袜在线视频| 麻豆精品一区二区av白丝在线| 久久国产精品毛片| 欧美在线免费| 欧美中文字幕久久| 久久9热精品视频| 欧美一区二区三区日韩视频| 亚洲综合色丁香婷婷六月图片| 一本大道久久a久久精二百| 99亚洲伊人久久精品影院红桃| 亚洲国产一区二区三区在线播| 欧美韩国日本一区| 亚洲第一伊人| 欧美激情91| 亚洲区免费影片| 亚洲巨乳在线| 国产精品99久久久久久有的能看| 亚洲美女精品成人在线视频| 亚洲精品免费在线播放| 91久久精品国产91性色tv| 亚洲精品视频免费在线观看| 亚洲精品一区二区三区蜜桃久 | 香蕉久久夜色精品国产使用方法| 亚洲午夜性刺激影院| 亚洲在线1234| 欧美亚洲自偷自偷| 久久精品国产第一区二区三区最新章节 | 午夜在线视频观看日韩17c| 亚洲欧美色婷婷| 久久野战av| 午夜精品久久久| 欧美在线高清视频| 久久亚洲一区二区三区四区| 欧美大片va欧美在线播放| 国产精品高清在线| 国产一区二区三区黄| 1024欧美极品| 在线视频你懂得一区二区三区|