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

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>
            久久另类ts人妖一区二区| 欧美成人免费全部| 欧美激情精品久久久久久蜜臀| 日韩一级在线| 亚洲伦理一区| 99国产一区二区三精品乱码| 亚洲韩国日本中文字幕| 亚洲三级网站| 9国产精品视频| 亚洲欧美综合国产精品一区| 亚洲色无码播放| 午夜精品久久久久久久久| 久久久久国产精品www | 国产一区二区高清| 1000部国产精品成人观看| 亚洲乱码国产乱码精品精98午夜 | 欧美精品一区在线发布| 欧美精品免费看| 玖玖玖国产精品| 欧美色图一区二区三区| 国产一区二区三区在线观看免费视频| 国产一区二区av| 一本久久a久久精品亚洲| 香蕉尹人综合在线观看| 欧美肥婆在线| 欧美一区二区精品久久911| 欧美日韩综合视频网址| 中文久久精品| 久久精品九九| 亚洲综合视频网| 欧美久久电影| 亚洲国产另类久久精品| 久久国产精品色婷婷| 一级成人国产| 欧美日韩国语| 一区二区国产在线观看| 亚洲国产美女| 另类国产ts人妖高潮视频| 国产日韩视频一区二区三区| 亚洲欧美日韩在线不卡| 91久久久久久国产精品| 久久久久一区二区三区| 久久精品欧美| 日韩视频一区二区三区| 亚洲精品老司机| 国产精品啊啊啊| 小处雏高清一区二区三区| 午夜日韩在线| 亚洲破处大片| 亚洲一区二区三区免费观看 | 国产精品高潮呻吟久久av无限 | 久久精品国产成人| 蜜月aⅴ免费一区二区三区| 99国产精品| 午夜精品视频在线观看一区二区| 国产欧美日韩亚洲| 亚洲国产婷婷综合在线精品 | 亚洲激情视频网| 一区二区三区免费网站| 激情久久五月天| 亚洲视频在线观看三级| 亚洲国产精品视频一区| 亚洲午夜精品| 亚洲私人影吧| 欧美国产视频日韩| 免费成人黄色av| 国产日韩av在线播放| 亚洲精品一区二区三区四区高清| 99在线视频精品| 伊大人香蕉综合8在线视| 一区二区三区不卡视频在线观看| 在线观看日韩av电影| 欧美一区二区三区在线观看视频| 亚洲精品国产拍免费91在线| 久久久av网站| 美女脱光内衣内裤视频久久影院| 国产精品久久久久影院亚瑟| 亚洲精品国产精品国自产观看浪潮 | 久久野战av| 亚洲自拍偷拍福利| 日韩视频中文| 欧美激情中文字幕乱码免费| 亚洲国产精品国自产拍av秋霞| 狠狠久久亚洲欧美专区| 理论片一区二区在线| 欧美二区在线播放| 中文在线资源观看视频网站免费不卡| 欧美韩日视频| 亚洲免费在线视频一区 二区| 性欧美精品高清| 在线日韩电影| 欧美日韩高清在线观看| 亚洲综合国产激情另类一区| 久久香蕉国产线看观看av| 一区二区在线看| 欧美精品一区二区高清在线观看| 亚洲精品一二三| 欧美大片免费久久精品三p| 亚洲精品一区中文| 国产毛片精品视频| 欧美激情按摩| 亚洲香蕉在线观看| 国产一区二区三区不卡在线观看 | 美女脱光内衣内裤视频久久网站| 亚洲成色777777在线观看影院| 欧美精品不卡| 欧美成人综合| 葵司免费一区二区三区四区五区| 亚洲一区成人| 亚洲一级在线| 亚洲一区免费在线观看| 9l视频自拍蝌蚪9l视频成人| 亚洲福利一区| 欧美粗暴jizz性欧美20| 美女黄毛**国产精品啪啪| 久久精品亚洲精品国产欧美kt∨| 亚洲伊人伊色伊影伊综合网| 亚洲区中文字幕| 亚洲人成亚洲人成在线观看| 亚洲国产91色在线| 亚洲精品少妇30p| 亚洲精品一区在线| 亚洲一区国产精品| 欧美一区综合| 欧美成人tv| 日韩视频精品| 欧美一区永久视频免费观看| 久久久精品性| 欧美另类一区| 国产色综合天天综合网| 亚洲国产人成综合网站| 日韩一级黄色av| 欧美中文字幕第一页| 欧美二区在线看| 亚洲欧洲av一区二区三区久久| 香蕉久久精品日日躁夜夜躁| 久久精品国产欧美亚洲人人爽| 欧美 日韩 国产在线| 国产精品亚洲一区二区三区在线| 激情视频一区二区| 欧美日韩黄视频| 国内外成人免费视频| 看片网站欧美日韩| 国产日韩av在线播放| 亚洲第一黄网| 亚洲欧美一区二区激情| 亚洲国产高潮在线观看| 欧美在线在线| 国产精品亚洲视频| 一区二区三区四区五区精品视频| 久久人人97超碰国产公开结果| 99视频精品| 欧美韩日高清| 99精品热视频| 亚洲欧洲一区二区天堂久久| 久久久久久久波多野高潮日日| 国产精品第一区| 亚洲图片欧美午夜| 99精品国产在热久久| 欧美精品18+| 中日韩高清电影网| 日韩系列欧美系列| 国产精品成人午夜| 亚洲欧美综合国产精品一区| 亚洲精选中文字幕| 国产精品成人va在线观看| 亚洲综合色婷婷| 午夜精品成人在线| 尤物在线精品| 亚洲激情在线观看| 国产精品视频一二| 米奇777在线欧美播放| 欧美大片18| 欧美中文字幕在线观看| 原创国产精品91| 一本色道精品久久一区二区三区| 国产女精品视频网站免费| 欧美激情精品久久久久久大尺度 | 亚洲影视中文字幕| 久久精品国产综合| 久久久久久久久岛国免费| 亚洲福利久久| 亚洲欧美经典视频| 在线视频精品一| 欧美激情精品久久久久久久变态| 欧美一级久久久久久久大片| 欧美成人久久| 麻豆av福利av久久av| 国产欧美日韩麻豆91| 一区二区冒白浆视频| 这里只有精品丝袜| 欧美日韩国产小视频在线观看| 欧美激情五月| 在线观看视频免费一区二区三区| 亚洲一区中文字幕在线观看| 午夜精品免费视频| 国产美女高潮久久白浆| 欧美一区二区三区视频免费播放 | 亚洲成人自拍视频| 久久久成人精品|