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

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.¢% 閱讀(1199) 評論(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>
            亚洲高清av在线| 欧美肥婆在线| 久久综合精品国产一区二区三区| 日韩视频精品在线观看| 国产精品三级视频| 国产精品久久综合| 国产精品久久久久aaaa| 国产精品国产三级国产普通话蜜臀| 欧美精品尤物在线| 国产精品久久午夜| 亚洲高清视频的网址| 国内精品视频在线播放| 在线不卡a资源高清| 中文一区二区| 久久亚洲精品一区| 91久久久亚洲精品| 一区二区三区视频在线看| 亚洲欧美日韩国产另类专区| 欧美在线视频a| 欧美日韩高清不卡| 曰韩精品一区二区| 亚洲欧美日韩国产综合精品二区| 欧美一区二区在线| 亚洲精品美女久久久久| 欧美亚洲一区二区在线| 欧美另类高清视频在线| 在线成人欧美| 免费成人性网站| 欧美在线播放一区二区| 欧美日本免费| 在线观看日韩专区| 麻豆国产精品va在线观看不卡| 在线观看成人av| 久久er99精品| 亚洲香蕉在线观看| 欧美体内she精视频在线观看| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲一区二区三区欧美| 亚洲最新视频在线| 欧美视频中文字幕| 亚洲欧美中日韩| 亚洲在线网站| 在线成人激情| 亚洲精品美女久久7777777| 欧美日本在线| 欧美一区三区三区高中清蜜桃| 亚洲一区二区视频在线观看| 国产欧美日韩伦理| 猛男gaygay欧美视频| 欧美激情性爽国产精品17p| 亚洲精选久久| 亚洲一区一卡| 亚洲国产三级| 一区二区三区视频观看| 黄色成人在线| 午夜久久影院| 日韩视频永久免费| 久久9热精品视频| 亚洲乱码国产乱码精品精| 国产日韩视频| 亚洲视频在线观看免费| 亚洲精品在线三区| 久久手机精品视频| 久久久综合精品| 国产精品激情| 中文在线资源观看网站视频免费不卡 | 亚洲电影观看| 国内精品久久久久影院薰衣草| 在线一区二区三区四区五区| 国产麻豆午夜三级精品| 在线一区亚洲| 亚洲一级影院| 国产精品久久77777| 日韩视频免费在线观看| 这里是久久伊人| 欧美性jizz18性欧美| 日韩天堂在线观看| 国产精品99久久久久久白浆小说| 久久综合久久美利坚合众国| 久久青青草原一区二区| 国产一区二区黄色| 欧美怡红院视频| 久久久综合视频| 亚洲高清免费在线| 欧美精品久久久久久| 亚洲人体偷拍| 性欧美videos另类喷潮| 国产婷婷97碰碰久久人人蜜臀| 亚洲欧美另类综合偷拍| 免费av成人在线| 中文久久精品| 国产在线播精品第三| 欧美激情精品久久久久久黑人 | 亚洲自拍偷拍网址| 国产日韩欧美电影在线观看| 亚洲欧美综合| 亚洲激情午夜| 久久综合色一综合色88| 中日韩午夜理伦电影免费| 国产欧美欧美| 欧美色精品天天在线观看视频| 午夜精品久久久久久久99樱桃| 国产欧美视频一区二区| 欧美精品午夜视频| 麻豆精品视频在线观看| 亚洲欧美久久久| 9i看片成人免费高清| 欧美阿v一级看视频| 久久婷婷综合激情| 欧美一区二区三区播放老司机| 亚洲精品九九| 亚洲国产婷婷香蕉久久久久久| 久久精品1区| 欧美在线视频一区二区| 欧美在线啊v| 日韩小视频在线观看| 国内外成人在线视频| 国产亚洲欧洲997久久综合| 国产一区二区三区直播精品电影| 欧美午夜精品| 国产视频久久久久| 国产精品一香蕉国产线看观看| 久久精品人人做人人爽电影蜜月| 亚洲欧美日韩另类| 玖玖综合伊人| 91久久精品一区二区别| 亚洲一区影院| 欧美日韩成人免费| 国产综合久久| 一区二区三区福利| 欧美va天堂在线| 午夜久久tv| 欧美视频你懂的| 亚洲日韩视频| 久久精品一区二区三区不卡牛牛| 欧美大胆成人| 久久成人免费电影| 欧美日韩精品免费观看| 精品99一区二区三区| 亚洲综合色婷婷| 亚洲精品国产精品乱码不99| 亚洲欧美一区二区三区极速播放| 欧美黄在线观看| 亚洲一区免费| 夜夜爽99久久国产综合精品女不卡 | 久久精品国产综合| 欧美一区二区三区另类| 国产精品一区二区欧美| 亚洲精品一区二区三区在线观看| 久久精品国产清高在天天线| 夜夜嗨一区二区| 久久久久久国产精品mv| 伊人成人在线| 欧美激情无毛| 久久久久久免费| 黄色精品一区二区| 蜜桃精品一区二区三区 | 美女精品在线| 午夜精品久久久久久久久久久久久| 欧美体内she精视频| 欧美亚洲在线视频| 麻豆免费精品视频| 亚洲欧美中日韩| 久久综合给合久久狠狠狠97色69| 亚洲国产美女精品久久久久∴| 亚洲激情另类| 国产美女扒开尿口久久久| 免费在线成人| 国产精品视频免费观看www| 久久久一二三| 国产精品久久精品日日| 亚洲国产1区| 国产一区二区三区自拍| 亚洲欧美日韩综合| 亚洲一区在线免费观看| 午夜精品久久久久| 欧美乱大交xxxxx| 亚洲欧洲一区| 日韩亚洲一区在线播放| 久久这里只精品最新地址| 欧美成人午夜| 中国av一区| 欧美日韩国产首页在线观看| 久久亚洲一区二区三区四区| 日韩亚洲欧美一区| 欧美屁股在线| 欧美大秀在线观看| 在线观看日韩精品| 久久综合影音| 免费观看成人| 在线免费观看日本一区| 欧美专区在线播放| 久久露脸国产精品| 亚洲二区精品| 蜜臀av在线播放一区二区三区| 亚洲电影在线免费观看| 99视频精品| 欧美视频一区二区三区| 香蕉国产精品偷在线观看不卡| 久久国产精品99国产精|