[發(fā)明專利]軟件鉤子設(shè)置方法及裝置在審
| 申請(qǐng)?zhí)枺?/td> | 201711371113.2 | 申請(qǐng)日: | 2017-12-19 |
| 公開(公告)號(hào): | CN109933387A | 公開(公告)日: | 2019-06-25 |
| 發(fā)明(設(shè)計(jì))人: | 楊怡 | 申請(qǐng)(專利權(quán))人: | 鎮(zhèn)江飛協(xié)軟件開發(fā)有限公司 |
| 主分類號(hào): | G06F9/448 | 分類號(hào): | G06F9/448 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 212000 江蘇*** | 國(guó)省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 鉤子 入口地址 替換 觸發(fā) 處理程序 還原過程 自動(dòng)釋放 預(yù)置 還原 釋放 創(chuàng)建 | ||
本發(fā)明公開軟件鉤子設(shè)置方法及裝置,其中方法包括如下步驟:在目標(biāo)API被觸發(fā)時(shí),創(chuàng)建鉤子API2;替換API2的入口地址為原目標(biāo)API入口地址;替換原目標(biāo)API入口地址為鉤子API1的入口地址;執(zhí)行鉤子API1;隨著目標(biāo)API的釋放,鉤子API1自動(dòng)釋放。本方案通過目標(biāo)API的入口地址的替換,使得目標(biāo)API被觸發(fā)時(shí),都能運(yùn)行預(yù)置處理程序鉤子API1,避免了在鉤子還原過程中直接運(yùn)行目標(biāo)API的問題,即避免了在還原的時(shí)候出現(xiàn)縫隙的問題。
技術(shù)領(lǐng)域
本發(fā)明涉及軟件技術(shù)領(lǐng)域,尤其涉及軟件鉤子設(shè)置方法及裝置。
背景技術(shù)
鉤子(Hook),技術(shù)是一種用于改變API(ApplicationProgrammingInterface,應(yīng)用程序編程接口)執(zhí)行結(jié)果的技術(shù),Microsoft自身也在Windows操作系統(tǒng)里面使用了這個(gè)技術(shù)。其原理為:用自行構(gòu)建的API入口地址替換目標(biāo)API的入口地址,以達(dá)到應(yīng)用程序在執(zhí)行系統(tǒng)API功能前,預(yù)先處理自行構(gòu)建的處理事件,然后還原系統(tǒng)API的入口地址,以實(shí)現(xiàn)返回用戶真正調(diào)用API的功能。
現(xiàn)有的API運(yùn)行原流程如下:應(yīng)用程序觸發(fā)——調(diào)用原API執(zhí)行既定功能。而普通鉤子流程如下:應(yīng)用程序觸發(fā)——調(diào)用原API但入口地址是API1的,即調(diào)用API1入口地址執(zhí)行預(yù)置的程序,——預(yù)置程序執(zhí)行后——還原原API的入口地址,調(diào)用原API既定功能。
現(xiàn)有的在鉤子API進(jìn)行處理的過程中,會(huì)在新的API和原API入口地址之間不斷交替的過程,這會(huì)產(chǎn)生無數(shù)的時(shí)間縫隙。可能發(fā)生被鉤子掛鉤的程序直接執(zhí)行而繞過鉤子API1的問題,即在鉤子API1的掛鉤過程中,會(huì)出現(xiàn)一個(gè)縫隙,造成無法勾住該目標(biāo)API的問題。
發(fā)明內(nèi)容
為此,需要提供軟件鉤子設(shè)置方法及裝置,解決現(xiàn)有鉤子處理過程中存在縫隙的問題。
為實(shí)現(xiàn)上述目的,發(fā)明人提供了軟件鉤子設(shè)置方法,包括如下步驟:
在目標(biāo)API被觸發(fā)時(shí),創(chuàng)建鉤子API2;
替換API2的入口地址為原目標(biāo)API入口地址;
替換原目標(biāo)API入口地址為鉤子API1的入口地址;
執(zhí)行鉤子API1;
隨著目標(biāo)API的釋放,鉤子API1自動(dòng)釋放。
進(jìn)一步地,所述鉤子API1為預(yù)置鉤子程序,鉤子API2為空白程序。
以及本發(fā)明還提供無縫鉤子設(shè)置裝置,包括如下模塊:
臨時(shí)鉤子創(chuàng)建模塊:在目標(biāo)API被觸發(fā)時(shí),創(chuàng)建鉤子API2;
第一地址替換模塊:替換API2的入口地址為原目標(biāo)API入口地址;
第二地址替換模塊:替換原目標(biāo)API入口地址為鉤子API1的入口地址;
鉤子API1執(zhí)行模塊:執(zhí)行鉤子API1;
被鉤地址還原模塊:隨著目標(biāo)API的釋放,鉤子API1自動(dòng)釋放。
進(jìn)一步地,所述鉤子API1為預(yù)置鉤子程序,鉤子API2為空白程序。
區(qū)別于現(xiàn)有技術(shù),上述技術(shù)方案通過目標(biāo)API的入口地址的替換,使得目標(biāo)API被觸發(fā)時(shí),都能運(yùn)行預(yù)置處理程序鉤子API1,避免了在鉤子還原過程中直接運(yùn)行目標(biāo)API的問題,即避免了在還原的時(shí)候出現(xiàn)縫隙的問題。
附圖說明
圖1為本發(fā)明方法一實(shí)施例的流程圖;
圖2為本發(fā)明裝置一實(shí)施例的結(jié)構(gòu)圖。
具體實(shí)施方式
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于鎮(zhèn)江飛協(xié)軟件開發(fā)有限公司,未經(jīng)鎮(zhèn)江飛協(xié)軟件開發(fā)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711371113.2/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 生成靜態(tài)地址表的方法及數(shù)據(jù)網(wǎng)絡(luò)
- 發(fā)現(xiàn)呼叫控制系統(tǒng)入口的方法和系統(tǒng)
- 發(fā)現(xiàn)呼叫控制系統(tǒng)入口的方法和終端
- 一種業(yè)務(wù)入口的尋址方法、相關(guān)終端和系統(tǒng)
- 動(dòng)態(tài)獲取數(shù)字電視系統(tǒng)入口地址的方法、設(shè)備及系統(tǒng)
- 程序處理方法和裝置
- 一種NFV環(huán)境下的撥測(cè)方法及裝置
- 線程主動(dòng)退出方法和裝置
- 用于動(dòng)態(tài)控制地址空間分配的方法和設(shè)備
- 保護(hù)入口地址的方法





