1.
HOOK技術(shù):在windows系統(tǒng)下編程,應(yīng)該會(huì)接觸到api函數(shù)的使用眠副,常用的api函數(shù)大概有2000個(gè)左右。今天隨著控件霍弹,stl等高效編程技術(shù)的出現(xiàn)娃弓,api的使用概率在普通的用戶程序上就變得越來越小了台丛。當(dāng)諸如控件這些現(xiàn)成的手段不能實(shí)現(xiàn)的功能時(shí),我們還需要借助api防嗡。最初有些人對(duì)某些api函數(shù)的功能不太滿意侠坎,就產(chǎn)生了如何修改這些api实胸,使之更好的服務(wù)于程序的想法,這樣api hook就自然而然的出現(xiàn)了钢属。我們可以通過api hook门躯,改變一個(gè)系統(tǒng)api的原有功能。基本的方法就是通過hook“接觸”到需要修改的api函數(shù)入口點(diǎn)窒升,改變它的地址指向新的自定義的函數(shù)。api hook并不屬于msdn上介紹的13類hook中的任何一種域醇。所以說,api hook并不是什么特別不同的hook锅铅,它也需要通過基本的hook提高自己的權(quán)限减宣,跨越不同進(jìn)程間訪問的限制,達(dá)到修改api函數(shù)地址的目的贼邓。對(duì)于自身進(jìn)程空間下使用到的api函數(shù)地址的修改闷尿,是不需要用到api hook技術(shù)就可以實(shí)現(xiàn)的。
API HOOK技術(shù)是一種用于改變API執(zhí)行結(jié)果的技術(shù)填具,Microsoft 自身也在Windows操作系統(tǒng)里面使用了這個(gè)技術(shù)劳景,如Windows兼容模式等。 API HOOK 技術(shù)并不是計(jì)算機(jī)病毒專有技術(shù)描融,但是計(jì)算機(jī)病毒經(jīng)常使用這個(gè)技術(shù)來達(dá)到隱藏自己的目的衡蚂。
2.
hook是什么? windows系統(tǒng)下的編程年叮,消息message的傳遞是貫穿其始終的玻募。這個(gè)消息我們可以簡(jiǎn)單理解為一個(gè)有特定意義的整數(shù),正如我們看過的老故事片中的“長(zhǎng)江長(zhǎng)江跃惫,我是黃河”一個(gè)含義艾栋。windows中定義的消息給初學(xué)者的印象似乎是“不計(jì)其數(shù)”的,常見的一部分消息在winuser.h頭文件中定義先较。hook與消息有著非常密切的聯(lián)系,它的中文含義是“鉤子”曾棕,這樣理解起來我們不難得出“hook是消息處理中的一個(gè)環(huán)節(jié)菜循,用于監(jiān)控消息在系統(tǒng)中的傳遞,并在這些消息到達(dá)最終的消息處理過程前债朵,處 理某些特定的消息”序芦。這也是hook分為不同種類的原因。 hook的這個(gè)本領(lǐng)渴杆,使它能夠?qū)⒆陨淼拇a“融入”被hook住的程序的進(jìn)程中宪塔,成為目標(biāo)進(jìn)程的一個(gè)部分。我們也知道比搭,在windows2000以后的系統(tǒng)中南誊,普通用戶程序的進(jìn)程空間都是獨(dú)立的抄囚,程序的運(yùn)行彼此間都不受干擾。這就使我們希望通過一個(gè)程序改變其他程序的某些行為的想法不能直接實(shí)現(xiàn)穴亏,但是hook的出現(xiàn)給我們開拓了解決此類問題的道路。 api hook是什么嗓化? 在windows系統(tǒng)下編程谬哀,應(yīng)該會(huì)接觸到api函數(shù)的使用,常用的api函數(shù)大概有2000個(gè)左右隅津。今天隨著控件劲室,stl等高效編程技術(shù)的出現(xiàn),api的使用概率在普通的用戶程序上就變得越來...
心得:hook充蓝,中文含義:鉤子 ? ?
我的理解就是把原有的函數(shù)勾住喉磁,然后執(zhí)行我自己寫的函數(shù)已達(dá)到原來函數(shù)沒有單我想達(dá)到的效果:增加功能,竊取數(shù)據(jù)等等协怒。
2中說hook是消息處理中的一個(gè)環(huán)節(jié)孕暇,用于監(jiān)控消息在系統(tǒng)中的傳遞,并在這些消息到達(dá)最終的消息處理過程前妖滔,處理某些特定的消息座舍。
這樣看來hook就很好理解了,通俗一點(diǎn)講就是:在古代你要用鴿子來送信采蚀,鴿子是我養(yǎng)的岸浑,我可以隨時(shí)將鴿子叫回來,篡改你的信璧眠,或者你的信的是否能送到指定位置都由我來決定责静,這只鴿子就相當(dāng)于被我hook了盖桥。