本文實例簡述了C++實現inline hook的原理及應用,對于大家更好的理解inline hook原理及其應用有很大的幫助。具體內容如下:
一、Inline Hook簡介:
1.INLINE HOOK原理:
Inline Hook通過硬編碼的方式向內核API的內存空間(通常是開始的一段字節,且一般在第一個call之前,這么做是為了防止堆?;靵y)寫入跳轉語句,這樣,該API只要被調用,程序就會跳轉到我們的函數中來,我們在自己寫的函數里需要完成3個任務:
1)重新調整當前堆棧。程序流程在剛剛跳轉的時候,內核API并沒有執行完,而我們的函數需要根據其結果來進行信息過濾,所以我們需要保證內核API能在順利執行完畢后返回到我們的函數中來,這就要求對當前堆棧做一個調整。
2)執行遺失的指令。我們向內核API地址空間些如跳轉指令(jmp xxxxxxxx)時,勢必要覆蓋原先的一些匯編指令,所以我們一定要保證這些被覆蓋的指令能夠順利執行(否則,你的及其就要BSOD了,呵呵,Blue Screen Of Death)。關于這部分指令的執行,一般是將其放在我們的函數中,讓我們的函數“幫助”內核API執行完被覆蓋的指令,然后再跳回內核API中被覆蓋內后后的地址繼續執行剩余內容。跳回去的時候,一定要算好是跳回到什么地址,是內核API起始地址后的第幾個字節。
3)信息過濾。這個就不用多說了,內核API順利執行并返回到我們的函數中,我們自然要根據其結果做一些信息過濾,這部分內容因被hook的API以及Hook目的的不同而不同。
2.Inline hook的工作流程:
1)驗證內核API的版本(特征碼匹配)。
2)撰寫自己的函數,要完成以上三項任務。
3)獲取自己函數的地址,覆蓋內核API內存,供跳轉。
簡而言之,inlinehook的原理就是,修改函數,使其跳轉到我們指定的地方。
常見的有改函數入口,也有改函數尾,函數中間的
比如,通常函數開頭的匯編代碼都是這樣:mov edi,edi;push esp;mov ebp,esp,而我們便可以通過修改這里進行HOOK。
二、示例代碼(該示例摘自看雪)
#include <ntifs.h>#include <windef.h>ULONG g_KiInsertQueueApc;ULONG g_uCr0;BYTE g_HookCode[5] = { 0xe9, 0, 0, 0, 0 }; //JMP NEARBYTE g_OrigCode[5] = { 0 }; // 原函數的前字節內容BYTE jmp_orig_code[7] = { 0xEA, 0, 0, 0, 0, 0x08, 0x00 }; //JMP FARBOOL g_bHooked = FALSE;VOIDfake_KiInsertQueueApc ( PKAPC Apc, KPRIORITY Increment );VOIDProxy_KiInsertQueueApc ( PKAPC Apc, KPRIORITY Increment );void WPOFF(){ ULONG uAttr; _asm { push eax; mov eax, cr0; mov uAttr, eax; and eax, 0FFFEFFFFh; // CR0 16 BIT = 0 mov cr0, eax; pop eax; cli }; g_uCr0 = uAttr; //保存原有的 CRO 亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb 精品久久久国产| 91精品视频在线免费观看| 91免费看视频.| 欧美华人在线视频| 国产啪精品视频网站| 91成人在线视频| 亚洲人成在线免费观看| 7777精品久久久久久| 久久久久久久成人| 国产欧美久久久久久| 奇米成人av国产一区二区三区| 啊v视频在线一区二区三区| 日韩成人小视频| 正在播放欧美视频| 久久久久久久久久久久av| 国产欧美日韩综合精品| 欧美大片免费看| 久久久久国产一区二区三区| 福利一区视频在线观看| 欧美视频国产精品| 国产精品入口免费视频一| 精品免费在线视频| 欧美极品少妇xxxxx| 国产成一区二区| 国产91成人在在线播放| 日韩欧美精品网站| 国内精品久久久久久久久| 国产精品高清免费在线观看| 日韩成人中文字幕| 亚洲精品电影网| 日韩精品在线免费观看| 成人激情视频网| 国产精品极品美女在线观看免费| 久久久久久有精品国产| 97久久国产精品| 日韩在线视频网| 操91在线视频| 人妖精品videosex性欧美| 国产精品丝袜白浆摸在线| 国产在线视频欧美| 日本精品免费观看| 91亚洲精品在线| 国产日韩在线视频| 欧美制服第一页| 欧美自拍视频在线观看| 欧美黄色片视频| 伊人久久久久久久久久久久久| 亚洲欧美中文在线视频| 日本精品一区二区三区在线播放视频| 国产精品福利在线观看网址| 欧美在线日韩在线| 亚洲美女久久久| 懂色av影视一区二区三区| 国产91精品高潮白浆喷水| 中文字幕国产精品| 色琪琪综合男人的天堂aⅴ视频| 国产成人精品一区二区三区| 日韩中文字幕在线| 精品国产一区久久久| 91精品在线观看视频| 欧美激情一区二区三级高清视频| 日韩欧美精品在线观看| 国产精品久久久久免费a∨| 5278欧美一区二区三区| 国产精品av免费在线观看| 亚洲国产高清自拍| 在线电影欧美日韩一区二区私密| 中文字幕欧美精品在线| 国产婷婷97碰碰久久人人蜜臀| 欧美高清一级大片| 精品一区二区三区电影| 91国在线精品国内播放| 欧美激情亚洲自拍| 海角国产乱辈乱精品视频| 精品久久香蕉国产线看观看gif| 91精品国产精品| 北条麻妃在线一区二区| 色噜噜狠狠色综合网图区| 亚洲欧美激情在线视频| 在线一区二区日韩| 91精品久久久久久久久青青| 97人洗澡人人免费公开视频碰碰碰| 日韩电影免费观看在线| 欧洲精品久久久| 中文字幕日韩av电影| 久久久噜噜噜久久中文字免| 97人人爽人人喊人人模波多| 久久精品国产亚洲7777| 色阁综合伊人av| 亚洲欧美日韩在线高清直播| 一区二区欧美日韩视频| 亚洲一区二区免费在线| 国产精品wwwwww| 日韩亚洲精品电影| 在线精品视频视频中文字幕| 欧美激情欧美狂野欧美精品| 久久久999国产| 日韩美女在线播放| 欧美在线免费看| 国产丝袜视频一区| 国产日韩在线视频| 精品国产91久久久久久| 亚洲成人动漫在线播放| 2024亚洲男人天堂| 亚洲欧美日韩精品久久亚洲区| 欧美专区日韩视频| 欧洲成人性视频| 国产精品成人免费电影| 欧美精品少妇videofree| 久久婷婷国产麻豆91天堂| 亚洲福利视频专区| 国内精品久久久久影院 日本资源| 久久视频国产精品免费视频在线| 日韩中文字幕在线| 亚洲天堂男人的天堂| 国产精品视频导航| 欧美高清电影在线看| 欧洲精品毛片网站| 亚洲一区国产精品| 色先锋资源久久综合5566| 97精品在线观看| 久久av资源网站| 国产精品免费视频xxxx| 亚洲成人激情图| 伊人精品在线观看| 欧美成人免费全部观看天天性色| 91在线视频免费| 国产精品27p| 97婷婷大伊香蕉精品视频| 国产亚洲欧美视频| 亚洲天堂成人在线| 亚洲影视九九影院在线观看| 成人精品视频99在线观看免费| 亚洲国产毛片完整版| 日韩人体视频一二区| 91九色精品视频| xxav国产精品美女主播| 亚洲国产精品久久久久秋霞蜜臀| 欧美第一黄网免费网站| 亚洲国产精品一区二区久| 亚洲一区制服诱惑| 欧美日韩免费在线| 青草热久免费精品视频| 亚洲精品美女久久久| 久久久久久免费精品| 91久久国产精品| 欧美精品18videos性欧美| 日韩欧美极品在线观看| 国产精品欧美一区二区| 国产精品一区二区三区免费视频| 成人在线中文字幕| 成人免费高清完整版在线观看| 中文字幕亚洲欧美日韩高清| 国产亚洲精品美女| www亚洲欧美| 国产成人av在线| 久久男人资源视频| 日韩一区二区三区国产| 亚洲国产精品99| 日韩av在线高清| 亚洲欧美日韩在线高清直播| 日韩精品免费视频| 欧美老肥婆性猛交视频| 欧美国产视频一区二区|