亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

計算機軟件功能的動態(tài)擴充方法

文檔序號:6422659閱讀:360來源:國知局
專利名稱:計算機軟件功能的動態(tài)擴充方法
技術領域
本發(fā)明是有關于一種計算機軟件功能的動態(tài)擴充方法,特別是一種應用于視窗操作系統(tǒng)(Windows)之下執(zhí)行的應用程序,通過在應用程序之進程中注入一鉤接函數(shù)的手段,實現(xiàn)對應用程序的中斷,并且達成擴充功能之目的。
在傳統(tǒng)技術中,擴充應用軟件之功能的實現(xiàn)方法,大致包括下列兩種1.修改應用程序的原始程序,重新對修改后的原始程序進行編譯(Compile)以及鏈接(Link),這種方法需要程序設計師經(jīng)過復雜的編寫過程,才可以完成應用程序的功能擴充,對程序設計師而言是一種挑戰(zhàn),應用程序的開發(fā)成本較高,并且只能對單一應用程序進行功能擴充,而難以實現(xiàn)對多個程序完成相同功能的擴充。
2.對原始程序的二進制碼儲存格式分析,編寫一段可以提供擴充功能的擴充程序碼,再修改原始程序的進入點(Entry Point,即原始程序開始執(zhí)行的起點),使修改之后的進入點與擴充程序碼相呼應,指向擴充程序碼開始執(zhí)行的位置,實現(xiàn)對原始應用程序擴充功能的目的;但是這種方式,必須對原始應用程序進行部份的修改,不但具有相當?shù)睦щy度,也會對原始應用程序造成潛在的危害,甚至提供了計算機病毒侵入的界面(Interface)。
本發(fā)明的主要目的,在提供一種既不需要使用中斷例程(InterruptRoutine),也不需要修改應用程序之原始程序,就可以實現(xiàn)擴充應用程序之軟件功能的方法。
本發(fā)明的另一目的,在提供一種通過在應用程序的進程中注入一鉤接函數(shù),實現(xiàn)動態(tài)地修正或更換應用程序之軟件功能的方法,具有即時性與跨平臺性(Cross Platform)。
根據(jù)本發(fā)明所披露的技術,是將一種可以呼叫某一動態(tài)鏈接程序庫(DLL)的鉤接函數(shù)注入應用程序的進程之中,通過在應用程序的執(zhí)行過程中,根據(jù)使用者之需要而啟動這個鉤接函數(shù)的方式,執(zhí)行動態(tài)鏈接程序庫(DLL),而實現(xiàn)擴充應用程序之功能的目的。
有關本發(fā)明的詳細技術內(nèi)容與實施例,茲配合


如后。
圖式說明圖1是應用程序在視窗操作系統(tǒng)中的運作功能方塊圖。
圖2是應用程序的進程結構示意圖。
圖3是本發(fā)明的主要步驟流程圖。
圖4是本發(fā)明之實施例流程圖,顯示通過鉤接函數(shù)中斷應用程序的運作流程圖。
圖5是本發(fā)明之實施例流程圖,顯示通過鉤接函數(shù)呼叫功能擴充模組的運作流程圖。
圖6顯示一種圖形操作界面的實施例。
圖7顯示另一種圖形操作界面的實施例。
在視窗操作系統(tǒng)中,應用程序(APP,Application)在收到外來的消息(Message)之后,其運作過程的功能方塊圖如‘圖1’所示,當視窗操作系統(tǒng)(10)收到外來的消息(11)(如使用者輸入的操作消息),或是來自于應用程序回應的消息(12)之后,注入應用程序之進程中的鉤接函數(shù)(13)將會接收此一消息并且作出回應,然后由相應的鉤接函數(shù)(13)呼叫一用以對原應用程序提供擴充功能的功能擴充界面(14)(如動態(tài)鏈接程序庫(DLL)或是一種圖形操作界面(GUI,Graphics UserInterface)),通過這個功能擴充界面(14)可與各種不同用途的功能擴充程序(15)鏈接,如保護程序、進程監(jiān)控程序、多媒體輔助程序等,以實現(xiàn)對原始應用程序進行功能擴充的目的,并且在功能擴充程序執(zhí)行完畢之后,將控制權交還給系統(tǒng)或是應用程序,而不會影響到原應用程序的功能與完整性。
應用程序(APP)的執(zhí)行過程實際上就是一種消息的循環(huán)過程,當一個應用程序(APP)被啟動時,會判斷是否接收到系統(tǒng)發(fā)來的消息,如果接收到系統(tǒng)的消息,則將這個消息傳送到應用程序(APP),并且等待下一個系統(tǒng)的消息,如果沒有新的系統(tǒng)消息被載入,則應用程序(APP)便處于等待狀態(tài),而系統(tǒng)消息與應用程序(APP)本身之間的聯(lián)系,則可通過進程來表示,將系統(tǒng)消息作用于應用程序的過程視為進程(Process),此一進程的結構如‘圖2’所示,當系統(tǒng)消息滿足鉤接函數(shù)1(Hook1)的要求,則通過鉤接函數(shù)1(Hook1)指向(Pointer)動態(tài)鏈接程序庫1(DLL1),按照(DLL1)中的內(nèi)容運行應用程序(APP),等到(DLL1)的內(nèi)容執(zhí)行完畢后,再將控制權轉到下一個鉤接函數(shù)2(Hook2),同樣地再根據(jù)(Hook2)指向動態(tài)鏈接程序庫2(DLL2),執(zhí)行(DLL2)的內(nèi)容,依此類推,依序傳遞控制權,直到?jīng)]有要執(zhí)行的鉤接函數(shù)為止,而本發(fā)明正是根據(jù)這一特點,將一鉤接函數(shù),注入進程中,以實現(xiàn)對原應用程序的中斷,進而達成功能擴充。
根據(jù)本發(fā)明所披露之方法,包括有將至少一鉤接函數(shù)注入應用程序之進程的手段;執(zhí)行相應之鉤接函數(shù)的手段,例如通過一圖形操作界面(GUI)提供使用者可選取的操作選項,依據(jù)該選項的內(nèi)容產(chǎn)生一個消息,而執(zhí)行與此一消息相應的鉤接函數(shù);以及執(zhí)行鉤接函數(shù)所指向之功能擴充模組的手段。
其實施的流程如‘圖3’所示,根據(jù)流程圖可分為三個階段a.鉤接函數(shù)(Hook)的注入階段;b.配置文件(Config File)的載入階段;以及c.控制權轉移階段。
當視窗操作系統(tǒng)獲得一消息(如使用者自鍵盤、鼠標或其他計算機輸入設備輸入的操作消息),會依序調(diào)用系統(tǒng)函數(shù),并且載入應用程序之進程中的鉤接函數(shù)(步驟30),當讀到本發(fā)明所提供的鉤接函數(shù)后,由于該鉤接函數(shù)中已經(jīng)注入了用于功能擴充的動態(tài)鏈接程序庫(DLL),所以按照這個動態(tài)鏈接程序庫(DLL)的內(nèi)容,讀取配置文件(ConfigFile)的相關部分,取出其中的功能擴充模組(Module)(步驟31),判斷是否禁止擴充功能(步驟32),如果禁止擴充功能,則等待激活(Enable)消息,并取消擴充功能(步驟33);如果允許,則功能擴充模組開始工作,并調(diào)用相關處理參數(shù)(Parameter),等待視窗操作系統(tǒng)將此一參數(shù)寫入應用程序的地址空間(Addressing Space)(步驟34),判斷是否為第一次載入(步驟35),如果是第一次載入相關參數(shù),則將這個參數(shù)所表示的功能擴充模組載入(Load)應用程序的地址空間(步驟36),啟動擴充功能(步驟37),完成擴充功能后,等待系統(tǒng)發(fā)出離開應用程序的退出消息(Exit)(步驟38);而如果視窗操作系統(tǒng)判斷不是第一次載入相關參數(shù),則會將控制權傳給下一級鉤接函數(shù)(步驟39),然后重復(步驟30),再根據(jù)這個鉤接函數(shù)所指向之(DLL)的處理結果,以便決定是否將控制權交還應用程序繼續(xù)執(zhí)行,或是結束應用程序;所以根據(jù)本發(fā)明所披露的方法,將會在啟動功能擴充模組時將控制權自應用程序交予功能擴充模組,當功能擴充模組依據(jù)執(zhí)行結果將控制權交回應用程序,則又可以完全地回到原來的應用程序中,繼續(xù)進行原應用程序的功能,如此循環(huán)。
實施例說明下面本發(fā)明以一具體實施例,說明本發(fā)明之技術應用在視窗操作系統(tǒng)之中某一應用程序的情形。
此一實施例的目的是為了實現(xiàn)對應用程序的即時保護,亦即是此一應用程序本身并未提供加鎖保護的功能,而通過本發(fā)明的方法則可以讓使用者在啟動應用程序之初,借助另一軟件保護程序(ProtectedApplication)的執(zhí)行,提供使用者決定是否以設定的密碼進行操作鎖定的功能。以本發(fā)明所提供的軟件保護程序為例,將會在應用程序啟動之前彈出對話框(Dialog Box),要求使用者輸入密碼,經(jīng)確認密碼正確后,允許使用者開始使用此一應用程序,如果密碼輸入三次不正確,則會關閉應用程序,即認定使用者無使用此一應用程序的權限,進而保護使用者的私人軟件不受人為的外在侵害,該軟件保護的實施具體流程如‘圖4、圖5’所示,主要的運作流程包括兩個階段(應用程序的中斷階段)當要啟動某一應用程序之時,視窗操作系統(tǒng)將接收到一外部消息(步驟41)(例如使用者在視窗作業(yè)平臺中點選了某一應用程序的執(zhí)行按鈕);再于此一應用程序的進程中注入一鉤接函數(shù)(Hook)(步驟42),設定一判斷裝置提供使用者進行操作的選項(步驟43),(例如彈出一對話框詢問使用者是否要對此一應用程序進行保護),而使用者可以利用鼠標、鍵盤或其他輸入設備來進行確認,‘圖6’所揭示的即為一種圖形操作界面的例子,如果同意執(zhí)行保護程序所提供的擴充功能,則調(diào)用鉤接函數(shù)所指向的動態(tài)鏈接程序庫DLL(步驟44),而完成應用程序的中斷處理(步驟45);(擴充功能的執(zhí)行階段)應用程序中斷成功后,讀入文件列表(filelist)(步驟51),檢查當前的保護程序是否在應用程序之進程的文件列表中(步驟52),如果存在表示此一保護程序已被注入應用程序中,接著通過檢驗用戶輸入密碼是否正確(步驟53),其圖形操作界面例如‘圖7’所示,決定是否繼續(xù)執(zhí)行保護程序(步驟54),依據(jù)保護程序的執(zhí)行結果實現(xiàn)對應用程序的保護,但如果保護程序不在應用程序之進程的文件列表中,則表示鉤接函數(shù)并未注入此一應用程序,亦即是應用程序并未擴充保護程序所提供的保護功能,故將控制權轉移給下一個鉤接函數(shù)(步驟55),依此類推,依序傳遞控制權,再根據(jù)鉤接函數(shù)所指向之(DLL)的處理結果,以便決定是否將控制權交還應用程序繼續(xù)執(zhí)行,使原應用程序能夠繼續(xù)正確運行原有的功能,或是結束應用程序。
發(fā)明功效1.既不需要使用中斷例程(Interrupt Routine),也不需要修改應用程序之原始程序,就可以實現(xiàn)擴充應用程序的軟件功能。
2.可以動態(tài)地修正或更換應用程序之軟件功能,并且具有即時性與跨平臺性(Cross Platform)。
附圖符號說明10……視窗操作系統(tǒng)11……外來的消息12……應用程序回應的消息13……鉤接函數(shù)14……功能擴充界面15……功能擴充程序
權利要求
1.一種計算機軟件功能的動態(tài)擴充方法,用以對在視窗操作系統(tǒng)之下執(zhí)行的應用程序進行功能的擴充,包括有將至少一鉤接函數(shù)注入該應用程序的進程,該鉤接函數(shù)并且指向一功能擴充模組;執(zhí)行相應的該鉤接函數(shù),對該應用程序進行中斷;以及執(zhí)行該鉤接函數(shù)所指向的功能擴充模組,并且依據(jù)該功能擴充模組的執(zhí)行結果,決定將控制權交還該應用程序繼續(xù)執(zhí)行,或是結束該應用程序。
2.如權利要求1所述計算機軟件功能的動態(tài)擴充方法,其中該功能擴充模組可為一動態(tài)鏈接程序庫(DLL)。
3.如權利要求2所述計算機軟件功能的動態(tài)擴充方法,其中該功能擴充模組至少包括有某一用途的功能擴充程序。
4.如權利要求3所述計算機軟件功能的動態(tài)擴充方法,其中該功能擴充程序可為一保護程序。
5.如權利要求3所述計算機軟件功能的動態(tài)擴充方法,其中該功能擴充程序可為一進程監(jiān)控程序。
6.如權利要求3所述計算機軟件功能的動態(tài)擴充方法,其中該功能擴充程序可為一多媒體輔助程序。
7.如權利要求1所述計算機軟件功能的動態(tài)擴充方法,其中執(zhí)行該相應之鉤接函數(shù)的步驟,是通過產(chǎn)生一圖形操作界面(GUI)提供使用者可選取的操作選項,依據(jù)該選項的內(nèi)容執(zhí)行相應之該鉤接函數(shù)。
8.如權利要求7所述計算機軟件功能的動態(tài)擴充方法,其中執(zhí)行該相應之鉤接函數(shù)的步驟還包括有將該功能擴充模組載入該應用程序的地址空間。
全文摘要
本發(fā)明系為一種計算機軟件功能的動態(tài)擴充方法,其中披露了一種在計算機軟件(如:應用程序,)執(zhí)行時,動態(tài)地修正或更換軟件功能的技術;根據(jù)本發(fā)明所披露的技術,是在應用程序的進程之中注入一鉤接函數(shù),通過將鉤接函數(shù)所呼叫的動態(tài)鏈接程序庫載入進程的步驟,提供一種既不需要使用中斷例程,也不需要修改應用程序之原始程序碼,就可以實現(xiàn)擴充應用程序之軟件功能的方法。
文檔編號G06F9/318GK1310385SQ0010269
公開日2001年8月29日 申請日期2000年2月24日 優(yōu)先權日2000年2月24日
發(fā)明者陳玄同, 林光信, 李鵬 申請人:英業(yè)達股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1