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

旅途

如果想飛得高,就該把地平線忘掉

Windows內(nèi)核API HOOK 之 Inline Hook

名字起得好,Inline hook,乍一聽,似乎很高深。此處的Inline,我以為,意指將匯編代碼直接寫入內(nèi)核API的內(nèi)存區(qū)域。Inline Hook不像用戶態(tài)Hook或SSDT hook(用C語言就足夠),它需要在程序中嵌入?yún)R編代碼(Inline Assembly)以操作堆棧和執(zhí)行內(nèi)核API對應(yīng)的部分匯編指令。當然,這些都須以驅(qū)動的形式進行。

所謂API Hook,就是用自己寫的函數(shù)去替代系統(tǒng)API的“職位”,此后,自己寫的函數(shù)便掌握了以前由被hook的API所“經(jīng)手”的一切“事宜”。 Windows系統(tǒng)分用戶態(tài)和內(nèi)核態(tài),API也就有了用戶級和內(nèi)核級兩大類。想要比較底層、徹底地做點事情,當然要hook內(nèi)核API了(不過hook用 戶態(tài)API也有諸多用途)。

Hook內(nèi)核API比較常見的是SSDT hook,一句話——Windows把需要調(diào)用的內(nèi)核API地址全都存在了一個表中(System Service Dispatch Table), 要想hook一個內(nèi)核API,比較簡單的辦法就是把該內(nèi)核API在表(SSDT)中保存的地址修改為自己撰寫的函數(shù)地址。這個道理類似于把 "Windows"先生的"內(nèi)核API電話簿"給篡改了,當老先生想要打電話給"被hook的api先生"時,他找到的"電話號碼"其實已被我們篡改,撥 通電話,我們的"函數(shù)小子"開始應(yīng)答,信息過濾自此開始。

非常不幸,ICESword等檢測工具可以輕松判斷SSDT是否被篡改,并且會以適當?shù)姆绞酵ㄖ脩簦ū热鐧z索結(jié)果的字體變紅)。

Inline Hook要比SSDT Hook來得更徹底一點。如果說SSDT Hook只是把某位"內(nèi)核API先生"綁架,然后用我們的“自己人”來接管其工作,而ICESword卻可以從其他聯(lián)系途徑找到被綁架的"內(nèi)核API先生 "并“報警”,那么——Inline Hook可以說是給"內(nèi)核API先生"動了手術(shù),讓他成為"我們陣營的一分子"。Inline Hook通過硬編碼的方式向內(nèi)核API的內(nèi)存空間(通常是開始的一段字節(jié),且一般在第一個call之前,這么做是為了防止堆棧混亂)寫入跳轉(zhuǎn)語句,這樣, 該API只要被調(diào)用,程序就會跳轉(zhuǎn)到我們的函數(shù)中來,我們在自己寫的函數(shù)里需要完成3個任務(wù):
1)重新調(diào)整當前堆棧。程序流程在剛剛跳轉(zhuǎn)的時候,內(nèi)核API并沒有執(zhí)行完,而我們的函數(shù)需要根據(jù)其結(jié)果來進行信息過濾,所以我們需要保證內(nèi)核API能在順利執(zhí)行完畢后返回到我們的函數(shù)中來,這就要求對當前堆棧做一個調(diào)整。
2) 執(zhí)行遺失的指令。我們向內(nèi)核API地址空間些如跳轉(zhuǎn)指令(jmp xxxxxxxx)時,勢必要覆蓋原先的一些匯編指令,所以我們一定要保證這些被覆蓋的指令能夠順利執(zhí)行(否則,你的及其就要BSOD了,呵呵,Blue Screen Of Death)。關(guān)于這部分指令的執(zhí)行,一般是將其放在我們的函數(shù)中,讓我們的函數(shù)“幫助”內(nèi)核API執(zhí)行完被覆蓋的指令,然后再跳回內(nèi)核API中被覆蓋內(nèi) 后后的地址繼續(xù)執(zhí)行剩余內(nèi)容。跳回去的時候,一定要算好是跳回到什么地址,是內(nèi)核API起始地址后的第幾個字節(jié)。
一個朋友曾提出把內(nèi)核API的被覆蓋內(nèi)容還原,然后執(zhí)行之——這種方法,我沒有試驗,但我認為應(yīng)該不會很穩(wěn)定,因為內(nèi)核里常有線程切換,如果你把內(nèi)核API還原,萬一自己函數(shù)的線程被掛起,而又有線程要調(diào)用給API,這就會出現(xiàn)“Hook 遺漏”。
3)信息過濾。這個就不用多說了,內(nèi)核API順利執(zhí)行并返回到我們的函數(shù)中,我們自然要根據(jù)其結(jié)果做一些信息過濾,這部分內(nèi)容因被hook的API以及Hook目的的不同而不同。

Inline hook的工作流程:
1)驗證內(nèi)核API的版本(特征碼匹配)。
2)撰寫自己的函數(shù),要完成以上三項任務(wù)。
2)獲取自己函數(shù)的地址,覆蓋內(nèi)核API內(nèi)存,供跳轉(zhuǎn)。

Inline Hook的缺點:
1) 不夠通用。各個windows版本中,內(nèi)核API的開始一段不盡相同,要想通吃,就要多寫幾個版本或者做一個特征碼搜索(因為有的內(nèi)核API在各個版本中非常相似,只是在“特征碼”之前或之后加一點東西)。
2) 已被一些檢測工具列入檢測范圍,如果直接從內(nèi)核API第一個字節(jié)開始覆蓋,那么很容易被檢測,如果把覆蓋范圍往后推,并加以變形,也許能抵擋一氣。具體情況,我才疏學(xué)淺,尚未試驗。

上文權(quán)且當作是以下兩文的讀書筆記:
1) kernel inline hook 繞過vice檢測——xfocus上的文章
2) 實現(xiàn)kernel-mode inline function hook的簡單方法(http://www.phpfav.com/?p=35)——5eCur!ty上的文章

大家可以去參看原文,文章1中的代碼可以用文章2的方法優(yōu)化一下。

posted on 2007-07-29 10:41 旅途 閱讀(2645) 評論(0)  編輯 收藏 引用 所屬分類: 深入windows

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲欧美日韩精品久久| 一区二区三区鲁丝不卡| 黄色精品一区| 99re66热这里只有精品4| 久久久久久久网| 一区二区三区www| 欧美理论片在线观看| 亚洲高清免费视频| 久久久最新网址| 久久99伊人| 精品91在线| 久久久噜久噜久久综合| 亚洲综合丁香| 国产欧美日韩视频在线观看| 亚洲深夜福利网站| 日韩午夜一区| 欧美视频手机在线| 一区二区三区四区精品| 亚洲电影中文字幕| 美女诱惑黄网站一区| 亚洲第一网站| 欧美成人69av| 欧美1区免费| 亚洲免费精彩视频| 亚洲乱码国产乱码精品精可以看| 欧美成人精品在线观看| 亚洲激情成人网| 亚洲国产精选| 欧美日韩三级一区二区| 亚洲在线视频观看| 亚洲视频网在线直播| 国产精品亚洲人在线观看| 欧美一级久久| 久久精品国内一区二区三区| 136国产福利精品导航网址应用| 久久香蕉国产线看观看av| 久久精品视频99| 亚洲黄色在线观看| 99re热这里只有精品免费视频| 国产精品久久久久久久久| 久久国内精品自在自线400部| 久久精品免费看| 亚洲精品无人区| 亚洲永久字幕| 亚洲电影在线| 一区二区欧美日韩| 欧美在线观看视频一区二区三区 | 欧美四级在线| 久久狠狠久久综合桃花| 久久综合激情| 亚洲一区在线播放| 欧美在线一区二区| 日韩视频不卡中文| 亚洲欧美日韩精品综合在线观看| 在线观看91精品国产麻豆| 99国产精品久久久| 国产一区二区在线免费观看| 亚洲国产精品久久久久秋霞蜜臀| 国产精品久久看| 欧美成人xxx| 国产伦精品一区二区三区照片91| 欧美电影免费观看大全| 国产精品天天摸av网| 欧美电影在线观看完整版| 国产精品网站一区| 亚洲日产国产精品| 激情欧美丁香| 亚洲综合欧美日韩| 一区二区不卡在线视频 午夜欧美不卡' | 欧美在线视频全部完| 欧美理论在线播放| 欧美成人精品在线播放| 国产乱肥老妇国产一区二 | av成人免费观看| 伊甸园精品99久久久久久| 亚洲淫片在线视频| 一级日韩一区在线观看| 美女被久久久| 美日韩精品免费| 国产主播精品在线| 午夜激情一区| 欧美一级免费视频| 国产精品美女久久久免费| 亚洲三级免费电影| 亚洲国产合集| 牛人盗摄一区二区三区视频| 老司机一区二区| 红桃视频亚洲| 久久精品欧美| 久久人人爽国产| 国产亚洲视频在线| 午夜精品一区二区三区电影天堂| 亚洲免费网站| 国产精品日产欧美久久久久| 在线亚洲电影| 午夜精品久久久久久久久| 欧美性猛交99久久久久99按摩| 99国产精品视频免费观看| 亚洲午夜精品一区二区三区他趣| 欧美日韩高清区| 中国成人黄色视屏| 欧美一区二区三区四区在线观看地址| 国产精品三区www17con| 性一交一乱一区二区洋洋av| 日韩视频―中文字幕| 亚洲精品一区二区三区福利| 一本色道久久综合亚洲精品高清| 老牛嫩草一区二区三区日本| 久久看片网站| 影音先锋久久| 欧美成年视频| 亚洲另类一区二区| 亚洲综合电影| 国产视频亚洲| 久久精品国产精品亚洲综合| 免费的成人av| 亚洲毛片视频| 国产精品你懂的在线| 欧美自拍偷拍| 最新国产乱人伦偷精品免费网站| av成人手机在线| 国产精品丝袜白浆摸在线| 欧美中文字幕精品| 欧美激情一区二区在线| 99精品欧美一区二区三区综合在线| 欧美少妇一区| 久久国产精品毛片| 亚洲精品自在在线观看| 欧美一区二区精品| 亚洲福利视频三区| 国产精品久久久久久久久免费樱桃 | 91久久国产综合久久蜜月精品| 欧美黄色免费网站| 亚洲综合国产精品| 欧美激情视频在线免费观看 欧美视频免费一 | 欧美jjzz| 亚洲综合国产激情另类一区| 影音先锋亚洲视频| 国产精品国产三级国产aⅴ9色| 欧美主播一区二区三区美女 久久精品人| 欧美14一18处毛片| 亚洲专区免费| 亚洲日本中文字幕区| 国产精品视频福利| 欧美大片免费观看在线观看网站推荐| 中国av一区| 亚洲欧洲三级| 美女999久久久精品视频| 亚洲欧美日韩国产综合在线| 亚洲精品国产欧美| 极品少妇一区二区| 国产精品日韩久久久| 欧美精品在线网站| 久久综合九色九九| 欧美一区二区在线免费播放| 9l视频自拍蝌蚪9l视频成人| 女人色偷偷aa久久天堂| 欧美在线播放高清精品| 中文国产成人精品久久一| 亚洲高清不卡av| 狠狠久久亚洲欧美专区| 国产噜噜噜噜噜久久久久久久久| 欧美日韩中文字幕在线| 欧美国产精品v| 免费成人黄色| 久久激情综合| 欧美一区网站| 欧美一区精品| 国产一区美女| 国产伦精品一区二区三区四区免费| 欧美日韩成人综合在线一区二区| 久久综合九色综合欧美就去吻| 欧美一区二区三区四区高清 | 国产精品你懂的| 欧美性色视频在线| 欧美日韩精品一区二区天天拍小说 | 国产精品红桃| 久久精品首页| 香港成人在线视频| 亚洲免费在线看| 欧美一级久久久久久久大片| 亚洲欧美日韩天堂一区二区| 午夜一级久久| 午夜亚洲视频| 久久久久久久久蜜桃| 久久久久国产精品厨房| 久久久久久噜噜噜久久久精品| 久久性色av| 欧美大片免费观看在线观看网站推荐| 欧美88av| 欧美日韩色综合| 国产精品三上| 好吊成人免视频| 亚洲国产精品久久久久婷婷老年| 1024精品一区二区三区| 亚洲美女在线一区| 午夜精品久久久久| 久久色中文字幕| 欧美激情中文字幕在线| 亚洲精品在线观看视频|