本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別是涉及一種數(shù)據(jù)處理方法和一種數(shù)據(jù)處理裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,用戶在終端中可以通過客戶端執(zhí)行各種操作,例如使用瀏覽器上網(wǎng),使用游戲客戶端玩游戲,使用視頻客戶端播放音視頻等。
這類能夠和網(wǎng)絡(luò)連接的客戶端,通常是通過與服務(wù)器的交互來為用戶提供網(wǎng)絡(luò)服務(wù)的。但是,客戶端在系統(tǒng)中運行時是基于本身的架構(gòu)執(zhí)行的,無法獲知其運行情況。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的數(shù)據(jù)處理方法和相應(yīng)的數(shù)據(jù)處理裝置。
依據(jù)本發(fā)明的一個方面,提供了一種數(shù)據(jù)處理方法,包括:通過對系統(tǒng)中創(chuàng)建函數(shù)的監(jiān)控,掛起創(chuàng)建的目標對象;在調(diào)用所述目標對象創(chuàng)建預(yù)設(shè)應(yīng)用時截獲應(yīng)用信息,所述應(yīng)用信息用于指示創(chuàng)建應(yīng)用源架構(gòu)數(shù)據(jù);依據(jù)所述應(yīng)用信息搭建所述預(yù)設(shè)應(yīng)用的應(yīng)用映射架構(gòu)數(shù)據(jù)和應(yīng)用源架構(gòu)數(shù)據(jù);截獲所述預(yù)設(shè)應(yīng)用的調(diào)用信息,依據(jù)所述應(yīng)用映射架構(gòu)數(shù)據(jù)執(zhí)行響應(yīng)。
可選的,通過對系統(tǒng)中創(chuàng)建函數(shù)的監(jiān)控,掛起創(chuàng)建的目標對象,包括:對系統(tǒng)中創(chuàng)建函數(shù)進行監(jiān)控,在所述創(chuàng)建函數(shù)創(chuàng)建目標對象時掛起所述目標對象。
可選的,依據(jù)所述應(yīng)用信息搭建所述預(yù)設(shè)應(yīng)用的應(yīng)用映射架構(gòu)數(shù)據(jù)和應(yīng)用源架構(gòu)數(shù)據(jù),包括:依據(jù)所述應(yīng)用信息確定映射對象和接口調(diào)用,搭建應(yīng)用映射架構(gòu)數(shù)據(jù),再依據(jù)所述應(yīng)用信息確定源對象和接口調(diào)用,搭建應(yīng)用源架構(gòu)數(shù)據(jù)。
可選的,還包括:在創(chuàng)建對象時,依據(jù)所述應(yīng)用信息創(chuàng)建映射對象并指向源內(nèi)存地址,再創(chuàng)建源對象并指向所述源內(nèi)存地址;在各源對象對應(yīng)的各接口分別設(shè)置鉤子程序。
可選的,截獲所述預(yù)設(shè)應(yīng)用的調(diào)用信息,依據(jù)所述應(yīng)用映射架構(gòu)數(shù)據(jù)執(zhí)行響應(yīng),包括:在所述預(yù)設(shè)應(yīng)用調(diào)用接口時,通過鉤子程序截獲所述接口的調(diào)用信息;依據(jù)所述調(diào)用信息訪問所述應(yīng)用映射架構(gòu)數(shù)據(jù),獲取對應(yīng)的響應(yīng)信息以執(zhí)行響應(yīng)。
可選的,依據(jù)所述調(diào)用信息訪問所述應(yīng)用映射架構(gòu)數(shù)據(jù),獲取對應(yīng)的響應(yīng)信息以執(zhí)行響應(yīng),包括:將所述調(diào)用信息發(fā)送給所述應(yīng)用映射架構(gòu)數(shù)據(jù),由所述應(yīng)用映射架構(gòu)數(shù)據(jù)調(diào)用所述應(yīng)用源架構(gòu)數(shù)據(jù),獲取對應(yīng)的響應(yīng)信息并反饋。
可選的,還包括:依據(jù)對所述應(yīng)用映射架構(gòu)數(shù)據(jù)的調(diào)用,對所述預(yù)設(shè)應(yīng)用的運行狀態(tài)進行分析。
可選的,還包括:依據(jù)運行狀態(tài)的分析結(jié)果生成應(yīng)用建議信息,反饋所述應(yīng)用建議信息。
可選的,所述目標對象包括:組件對象模型,所述預(yù)設(shè)應(yīng)用包括:游戲客戶端。
根據(jù)本發(fā)明的另一個方面,提供了一種數(shù)據(jù)處理裝置,包括:目標對象掛起模塊,用于通過對系統(tǒng)中創(chuàng)建函數(shù)的監(jiān)控,掛起創(chuàng)建的目標對象;應(yīng)用攔截模塊,用于在調(diào)用所述目標對象創(chuàng)建預(yù)設(shè)應(yīng)用時截獲應(yīng)用信息,所述應(yīng)用信息用于指示創(chuàng)建應(yīng)用源架構(gòu)數(shù)據(jù);架構(gòu)創(chuàng)建模塊,用于依據(jù)所述應(yīng)用信息搭建所述預(yù)設(shè)應(yīng)用的應(yīng)用映射架構(gòu)數(shù)據(jù)和應(yīng)用源架構(gòu)數(shù)據(jù);攔截響應(yīng)模塊,用于截獲所述預(yù)設(shè)應(yīng)用的調(diào)用信息,依據(jù)所述應(yīng)用映射架構(gòu)數(shù)據(jù)執(zhí)行響應(yīng)。
可選的,所述目標對象掛起模塊,用于對系統(tǒng)中創(chuàng)建函數(shù)進行監(jiān)控,在所述創(chuàng)建函數(shù)創(chuàng)建目標對象時掛起所述目標對象。
可選的,所述架構(gòu)創(chuàng)建模塊,用于依據(jù)所述應(yīng)用信息確定映射對象和接口調(diào)用,搭建應(yīng)用映射架構(gòu)數(shù)據(jù),再依據(jù)所述應(yīng)用信息確定源對象和接口調(diào)用,搭建應(yīng)用源架構(gòu)數(shù)據(jù)。
可選的,所述架構(gòu)創(chuàng)建模塊,還用于在創(chuàng)建對象時,依據(jù)所述應(yīng)用信息創(chuàng)建映射對象并指向源內(nèi)存地址,再創(chuàng)建源對象并指向所述源內(nèi)存地址;在各源對象對應(yīng)的各接口分別設(shè)置鉤子程序。
可選的,所述攔截響應(yīng)模塊,包括:攔截子模塊,用于在所述預(yù)設(shè)應(yīng)用調(diào)用接口時,通過鉤子程序截獲所述接口的調(diào)用信息;響應(yīng)子模塊,用于依據(jù)所述調(diào)用信息訪問所述應(yīng)用映射架構(gòu)數(shù)據(jù),獲取對應(yīng)的響應(yīng)信息以執(zhí)行響應(yīng)。
可選的,所述響應(yīng)子模塊,用于將所述調(diào)用信息發(fā)送給所述應(yīng)用映射架構(gòu)數(shù)據(jù),由所述應(yīng)用映射架構(gòu)數(shù)據(jù)調(diào)用所述應(yīng)用源架構(gòu)數(shù)據(jù),獲取對應(yīng)的響應(yīng)信息并反饋。
可選的,還包括:分析模塊,用于依據(jù)對所述應(yīng)用映射架構(gòu)數(shù)據(jù)的調(diào)用,對所述預(yù)設(shè)應(yīng)用的運行狀態(tài)進行分析。
可選的,還包括:建議模塊,用于依據(jù)運行狀態(tài)的分析結(jié)果生成應(yīng)用建議信息,反饋所述應(yīng)用建議信息。
可選的,所述目標對象包括:組件對象模型,所述預(yù)設(shè)應(yīng)用包括:游戲客戶端。
可以對系統(tǒng)中創(chuàng)建函數(shù)進行監(jiān)控,從而在源頭掛起目標對象,在在調(diào)用所述目標對象創(chuàng)建預(yù)設(shè)應(yīng)用時截獲應(yīng)用信息,搭建所述預(yù)設(shè)應(yīng)用的應(yīng)用映射架構(gòu)數(shù)據(jù)和應(yīng)用源架構(gòu)數(shù)據(jù),通過應(yīng)用映射架構(gòu)數(shù)據(jù)可以映射到應(yīng)用源架構(gòu)數(shù)據(jù),從而分析出預(yù)設(shè)應(yīng)用的架構(gòu),后續(xù)截獲所述預(yù)設(shè)應(yīng)用的調(diào)用信息,依據(jù)所述應(yīng)用映射架構(gòu)數(shù)據(jù)執(zhí)行響應(yīng),便于響應(yīng)和分析預(yù)設(shè)應(yīng)用。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明一個實施例的一種異常檢測方法實施例的步驟流程圖;
圖2示出了根據(jù)本發(fā)明另一個實施例的一種異常檢測方法實施例的步驟流程圖;
圖3示出了根據(jù)本發(fā)明一個實施例的一種數(shù)據(jù)處理裝置實施例的結(jié)構(gòu)框圖;以及
圖4示出了根據(jù)本發(fā)明另一個實施例的一種數(shù)據(jù)處理裝置實施例的結(jié)構(gòu)框圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
參照圖1,示出了根據(jù)本發(fā)明一個實施例的一種異常檢測方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟102,通過對系統(tǒng)中創(chuàng)建函數(shù)的監(jiān)控,掛起創(chuàng)建的目標對象。
預(yù)先對系統(tǒng)進行監(jiān)控,監(jiān)控系統(tǒng)的創(chuàng)建函數(shù)如crate函數(shù),當調(diào)用該創(chuàng)建函數(shù)創(chuàng)建目標對象時,可以掛起該目標對象,即在初始化目標對象時設(shè)置第一鉤子程序,從而在目標對象的源頭設(shè)置鉤子程序。該目標對象為系統(tǒng)的重要組件對象,用于執(zhí)行各種應(yīng)用所需的操作。
本發(fā)明實施例中,可以在各種系統(tǒng)的各種目標對象設(shè)置鉤子程序,本實施例中以組件對象模型(Component Object Model,COM)作為目標對象為例,可以在創(chuàng)建函數(shù)初始化COM組件時,為COM組件設(shè)置第一鉤子程序,從而在COM組件的源頭設(shè)置鉤子,實現(xiàn)對COM組件的接管。其中,COM 組件是微軟對于網(wǎng)頁服務(wù)器與客戶端之間交互的一項軟件組件技術(shù),是一種面向?qū)ο蟮木幊棠J?,它定義了對象在單個應(yīng)用程序內(nèi)部或多個應(yīng)用程序之間的行為方式。并且COM被實現(xiàn)于多個平臺之上,并不限于Windows操作系統(tǒng)。
步驟104,在調(diào)用所述目標對象創(chuàng)建預(yù)設(shè)應(yīng)用時截獲應(yīng)用信息,所述應(yīng)用信息用于指示創(chuàng)建應(yīng)用源架構(gòu)數(shù)據(jù)。
系統(tǒng)中部分應(yīng)用的創(chuàng)建、運行等均需要目標對象的參與,因此在目標對象的源頭設(shè)置鉤子,就可以截獲各個針對目標對象的調(diào)用,從而確定所需的信息。本實施例中,應(yīng)用在創(chuàng)建需要調(diào)用目標對象執(zhí)行操作,因此可以通過第一鉤子程序截獲調(diào)用所述目標對象時的應(yīng)用信息,該應(yīng)用信息用于指示創(chuàng)建該預(yù)設(shè)應(yīng)用的應(yīng)用源架構(gòu)數(shù)據(jù)。即在預(yù)設(shè)應(yīng)用創(chuàng)建時需要調(diào)用目標對應(yīng)的一系列接口獲取數(shù)據(jù),并創(chuàng)建所需的函數(shù)對象等,通過該接口調(diào)用和函數(shù)對象可以確定出該預(yù)設(shè)應(yīng)用的應(yīng)用源架構(gòu)數(shù)據(jù),從而啟動并運行該預(yù)設(shè)應(yīng)用。
例如,游戲客戶端采用DirectX(Direct eXtension,DX)的3D引擎,該DirectX是由微軟公司創(chuàng)建的多媒體編程接口,由C++編程語言實現(xiàn),遵循COM組件。因此在啟動運行該游戲客戶端,涉及到3D引擎操作時,需要調(diào)用COM組件,通過在COM組件設(shè)置的第一鉤子引擎,可以獲取調(diào)用COM組件的應(yīng)用信息,從而確定出該游戲客戶端的3D引擎的源架構(gòu)數(shù)據(jù),即獲知3D引擎運行所需的各種接口以及函數(shù)對象等。
步驟106,依據(jù)所述應(yīng)用信息搭建所述預(yù)設(shè)應(yīng)用的應(yīng)用映射架構(gòu)數(shù)據(jù)和應(yīng)用源架構(gòu)數(shù)據(jù)。
由于通過該應(yīng)用信息能夠搭建應(yīng)用源架構(gòu)數(shù)據(jù),因此本實施例先采用應(yīng)用信息搭建該預(yù)設(shè)應(yīng)用的應(yīng)用映射架構(gòu)數(shù)據(jù),再搭建應(yīng)用源架構(gòu)數(shù)據(jù),即依據(jù)該應(yīng)用信息確定所需操作,先創(chuàng)建一個映射信息再創(chuàng)建源信息,且該映射信息與源信息指向相同的內(nèi)容地址,即采用映射架構(gòu)數(shù)據(jù)搭建一個與應(yīng)用源架構(gòu)數(shù)據(jù)相同的外殼,但其實質(zhì)內(nèi)容仍然由應(yīng)用源架構(gòu)數(shù)據(jù)提供,從而極少量的消耗內(nèi)存信息,且能夠獲知該預(yù)設(shè)應(yīng)用的架構(gòu),并控制應(yīng)用所需數(shù)據(jù)的返回。
步驟108,截獲所述預(yù)設(shè)應(yīng)用的調(diào)用信息,依據(jù)所述應(yīng)用映射架構(gòu)數(shù)據(jù)執(zhí)行響應(yīng)。
由于搭建了與應(yīng)用源架構(gòu)數(shù)據(jù)相同的應(yīng)用映射架構(gòu)數(shù)據(jù),因此能夠截獲該預(yù)設(shè)應(yīng)用的調(diào)用信息,并且基于該應(yīng)用映射架構(gòu)數(shù)據(jù)對調(diào)用信息進行響應(yīng),即依據(jù)調(diào)用信息對應(yīng)調(diào)用的接口、對象等,確定在應(yīng)用映射架構(gòu)數(shù)據(jù)中的接口、對象,然后執(zhí)行響應(yīng)的處理進行響應(yīng),該響應(yīng)可以是該應(yīng)用原始所需的響應(yīng)信息,也可以是設(shè)定的其他內(nèi)容。并且還可以依據(jù)該映射架構(gòu)數(shù)據(jù)確定出該預(yù)設(shè)應(yīng)用中各進程的消耗信息,以及分析該預(yù)設(shè)應(yīng)用的運行情況等。
例如,依據(jù)游戲客戶端的應(yīng)用信息搭建該游戲客戶端中3D引擎運行的映射架構(gòu)數(shù)據(jù)和源架構(gòu)數(shù)據(jù),在該游戲客戶端運行過程中采用3D引擎進行數(shù)據(jù)渲染等操作時,獲取對接口等的調(diào)用信息發(fā)送給映射架構(gòu)數(shù)據(jù),然后反饋對應(yīng)的響應(yīng)信息執(zhí)行響應(yīng)。
綜上,可以對系統(tǒng)中創(chuàng)建函數(shù)進行監(jiān)控,從而在源頭掛起目標對象,在在調(diào)用所述目標對象創(chuàng)建預(yù)設(shè)應(yīng)用時截獲應(yīng)用信息,搭建所述預(yù)設(shè)應(yīng)用的應(yīng)用映射架構(gòu)數(shù)據(jù)和應(yīng)用源架構(gòu)數(shù)據(jù),通過應(yīng)用映射架構(gòu)數(shù)據(jù)可以映射到應(yīng)用源架構(gòu)數(shù)據(jù),從而分析出預(yù)設(shè)應(yīng)用的架構(gòu),后續(xù)截獲所述預(yù)設(shè)應(yīng)用的調(diào)用信息,依據(jù)所述應(yīng)用映射架構(gòu)數(shù)據(jù)執(zhí)行響應(yīng),便于響應(yīng)和分析預(yù)設(shè)應(yīng)用。
本實施例以游戲客戶端作為預(yù)設(shè)應(yīng)用為例,該游戲客戶端可以采用DX的3D引擎,該3D引擎在Windows操作系統(tǒng)中是基于硬件圖形處理器(Graphics Processing Unit,GPU)加速,直接從內(nèi)存讀寫,可以規(guī)避消息機制。
參照圖2,示出了根據(jù)本發(fā)明另一個實施例的一種異常檢測方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟202,對系統(tǒng)中創(chuàng)建函數(shù)進行監(jiān)控,在所述創(chuàng)建函數(shù)創(chuàng)建目標對象時掛起所述目標對象。
預(yù)先對系統(tǒng)進行監(jiān)控,監(jiān)控系統(tǒng)的創(chuàng)建函數(shù)如crate函數(shù),當調(diào)用該創(chuàng)建函數(shù)創(chuàng)建目標對象時,可以掛起該目標對象,即在初始化目標對象時設(shè)置第一鉤子程序,從而在目標對象的源頭設(shè)置鉤子程序。該目標對象為系統(tǒng)的重要組件對象,用于執(zhí)行各種應(yīng)用所需的操作。
本發(fā)明實施例中,可以在各種系統(tǒng)的各種目標對象設(shè)置鉤子程序,本實施例中以組件對象模型(Component Object Model,COM)作為目標對象為例,可以在創(chuàng)建函數(shù)初始化COM組件時,為COM組件設(shè)置第一鉤子程序,從而在COM組件的源頭設(shè)置鉤子,實現(xiàn)對COM組件的接管。
步驟204,在調(diào)用所述目標對象創(chuàng)建預(yù)設(shè)應(yīng)用時截獲應(yīng)用信息。
系統(tǒng)中部分應(yīng)用的創(chuàng)建、運行等均需要目標對象的參與,因此在目標對象的源頭設(shè)置鉤子,就可以截獲各個針對目標對象的調(diào)用,從而確定所需的信息。本實施例中,應(yīng)用在創(chuàng)建需要調(diào)用目標對象執(zhí)行操作,因此可以通過第一鉤子程序截獲調(diào)用所述目標對象時的應(yīng)用信息,該應(yīng)用信息用于指示創(chuàng)建該預(yù)設(shè)應(yīng)用的應(yīng)用源架構(gòu)數(shù)據(jù)。即在預(yù)設(shè)應(yīng)用創(chuàng)建時需要調(diào)用目標對應(yīng)的一系列接口獲取數(shù)據(jù),并創(chuàng)建所需的函數(shù)對象等,通過該接口調(diào)用和函數(shù)對象可以確定出該預(yù)設(shè)應(yīng)用的應(yīng)用源架構(gòu)數(shù)據(jù),從而啟動并運行該預(yù)設(shè)應(yīng)用。
例如,游戲客戶端采用DirectX(Direct eXtension,DX)的3D引擎,該DirectX是由微軟公司創(chuàng)建的多媒體編程接口,由C++編程語言實現(xiàn),遵循COM組件。因此在啟動運行該游戲客戶端,涉及到3D引擎操作時,需要調(diào)用COM組件,通過在COM組件設(shè)置的第一鉤子引擎,可以獲取調(diào)用COM組件的應(yīng)用信息,從而確定出該游戲客戶端的3D引擎的源架構(gòu)數(shù)據(jù),即獲知3D引擎運行所需的各種接口以及函數(shù)對象等。
步驟206,在創(chuàng)建對象時,依據(jù)所述應(yīng)用信息創(chuàng)建映射對象并指向源內(nèi)存地址,再創(chuàng)建源對象并指向所述源內(nèi)存地址。
步驟208,在各源對象對應(yīng)的各接口分別設(shè)置鉤子程序。
步驟210,依據(jù)映射對象和接口調(diào)用,搭建應(yīng)用映射架構(gòu)數(shù)據(jù)。
步驟212,依據(jù)源對象和接口調(diào)用,搭建應(yīng)用源架構(gòu)數(shù)據(jù)。
本實施例中,目標對象創(chuàng)建預(yù)設(shè)應(yīng)用相關(guān)內(nèi)容時,可以創(chuàng)建所需對象依據(jù)確定需要調(diào)用的接口等信息,本實施例中,采用映射架構(gòu)數(shù)據(jù)搭建一個與應(yīng)用源架構(gòu)數(shù)據(jù)相同的外殼,但其實質(zhì)內(nèi)容仍然由應(yīng)用源架構(gòu)數(shù)據(jù)提供。因此,可以在該應(yīng)用信息需要創(chuàng)建對象時,確定所需創(chuàng)建對象的相關(guān)信息,創(chuàng)建一個映射對象指向?qū)?yīng)的源內(nèi)存地址,然后創(chuàng)建源對象并指向所述源內(nèi)存地址。即依據(jù)該應(yīng)用信息確定所需定義的內(nèi)容,定義一個具有含義的映射對象,再定義原本需要定義的源對象,并且在各源對象所需的接口處分別設(shè)置鉤子程序,從而針對該預(yù)設(shè)應(yīng)用可以設(shè)置一組鉤子程序,實現(xiàn)在入口級掛鉤子的調(diào)用方式。從而采用映射對象和接口調(diào)用搭建應(yīng)用映射架構(gòu)數(shù)據(jù),采用源對象和接口調(diào)用搭建應(yīng)用源架構(gòu)數(shù)據(jù),從而得到與該應(yīng)用源架構(gòu)數(shù)據(jù)相同的外殼即應(yīng)用映射架構(gòu)數(shù)據(jù),而該應(yīng)用映射架構(gòu)數(shù)據(jù)實際定義、調(diào)用的內(nèi)容可以與應(yīng)用源架構(gòu)數(shù)據(jù)對應(yīng),還可以映射到應(yīng)用源架構(gòu)數(shù)據(jù)中處理。
例如,游戲客戶端的3D引擎調(diào)用COM組件時,截獲調(diào)用信息,例如調(diào)用信息指示創(chuàng)建函數(shù)A,該函數(shù)A調(diào)用接口B和函數(shù)C,函數(shù)C調(diào)用接口D、E,可以向創(chuàng)建映射函數(shù)A'和C',并且在接口B、D、E處分別設(shè)置鉤子程序以及建立映射函數(shù)的對應(yīng)關(guān)系,再創(chuàng)建源函數(shù)A和C以及與接口B、D、E的對應(yīng)關(guān)系,從而搭建一個與游戲客戶端的源架構(gòu)數(shù)據(jù)相同的外殼即映射架構(gòu)數(shù)據(jù),通過該映射架構(gòu)數(shù)據(jù)可以映射到源架構(gòu)數(shù)據(jù)。
步驟214,在所述預(yù)設(shè)應(yīng)用調(diào)用接口時,通過鉤子程序截獲所述接口的調(diào)用信息。
步驟216,依據(jù)所述調(diào)用信息訪問所述應(yīng)用映射架構(gòu)數(shù)據(jù),獲取對應(yīng)的響應(yīng)信息執(zhí)行響應(yīng)。
由于搭建了與應(yīng)用源架構(gòu)數(shù)據(jù)相同的應(yīng)用映射架構(gòu)數(shù)據(jù),因此能夠截獲該預(yù)設(shè)應(yīng)用的調(diào)用信息,并且基于該應(yīng)用映射架構(gòu)數(shù)據(jù)對調(diào)用信息進行響應(yīng)。在預(yù)設(shè)應(yīng)用執(zhí)行函數(shù)調(diào)用接口時,依據(jù)該接口處的鉤子程序截獲對應(yīng)的調(diào)用信息,然后采用調(diào)用信息訪問所述應(yīng)用映射架構(gòu)數(shù)據(jù),應(yīng)用映射架構(gòu)數(shù)據(jù)定義了與應(yīng)用源架構(gòu)數(shù)據(jù)相同給的架構(gòu),因此可以訪問相應(yīng)的地址依據(jù)調(diào)用函數(shù)等執(zhí)行相應(yīng),還可以映射到應(yīng)用源架構(gòu)數(shù)據(jù)執(zhí)行。
其中,一個可選實施例中,依據(jù)所述調(diào)用信息訪問所述應(yīng)用映射架構(gòu)數(shù)據(jù),獲取對應(yīng)的響應(yīng)信息以執(zhí)行響應(yīng),包括:將所述調(diào)用信息發(fā)送給所述應(yīng)用映射架構(gòu)數(shù)據(jù),由所述應(yīng)用映射架構(gòu)數(shù)據(jù)調(diào)用所述應(yīng)用源架構(gòu)數(shù)據(jù),獲取對應(yīng)的響應(yīng)信息并反饋。
將所述調(diào)用信息發(fā)送給所述應(yīng)用映射架構(gòu)數(shù)據(jù),采用該應(yīng)用映射架構(gòu)數(shù)據(jù)與應(yīng)用源架構(gòu)數(shù)據(jù)執(zhí)行映射,調(diào)用應(yīng)用源架構(gòu)數(shù)據(jù)對應(yīng)的函數(shù)、接口等執(zhí)行相應(yīng)的操作,例如頁面渲染等操作,然后獲取對應(yīng)的響應(yīng)信息并反饋,如像是渲染頁面。
例如,依據(jù)游戲客戶端的3D引擎調(diào)用界面進行頁面渲染,可以采用映射架構(gòu)數(shù)據(jù)獲取調(diào)用信息,確定調(diào)用信息中各函數(shù)在映射架構(gòu)數(shù)據(jù)中的函數(shù),以及調(diào)用相應(yīng)的接口,從而執(zhí)行頁面的渲染操作并顯示。或者通過映射架構(gòu)數(shù)據(jù)源將各函數(shù)等映射到源架構(gòu)數(shù)據(jù)中,采用源架構(gòu)數(shù)據(jù)調(diào)用接口執(zhí)行頁面渲染后顯示,還可以對游戲客戶端中游戲操作進行響應(yīng),如響應(yīng)客戶端中按鈕的觸發(fā)渲染相應(yīng)的頁面等。
步驟218,依據(jù)對所述應(yīng)用映射架構(gòu)數(shù)據(jù)的調(diào)用,對所述預(yù)設(shè)應(yīng)用的運行狀態(tài)進行分析。
步驟220,依據(jù)運行狀態(tài)的分析結(jié)果生成應(yīng)用建議信息,反饋所述應(yīng)用建議信息。
通過應(yīng)用映射架構(gòu)數(shù)據(jù)對預(yù)設(shè)應(yīng)用的調(diào)用信息進行處理,從而可以獲知預(yù)設(shè)應(yīng)用中各進程、線程以及函數(shù)的使用信息,進而對該預(yù)設(shè)應(yīng)用進行分析,分析預(yù)設(shè)應(yīng)用的運行狀態(tài),例如各進程、線程的使用狀態(tài)、內(nèi)存占用率等。
基于運行狀態(tài)的分析結(jié)果還可以進一步分析預(yù)設(shè)應(yīng)用,從而生成相應(yīng)的應(yīng)用建議信息,例如進程A占用內(nèi)存過大,建議關(guān)閉,又如線程B不經(jīng)常使用建立關(guān)閉等,然后反饋該應(yīng)用建議信息,以便基于該應(yīng)用建議信息提高應(yīng)用的性能。
對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實施例并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明實施例,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作并不一定是本發(fā)明實施例所必須的。
在上述實施例的基礎(chǔ)上,本發(fā)明實施例還提供了一種數(shù)據(jù)處理裝置。
參照圖3,示出了根據(jù)本發(fā)明一個實施例的一種數(shù)據(jù)處理裝置實施例的結(jié)構(gòu)框圖,具體可以包括如下模塊:
目標對象掛起模塊302,用于通過對系統(tǒng)中創(chuàng)建函數(shù)的監(jiān)控,掛起創(chuàng)建的目標對象。
應(yīng)用攔截模塊304,用于在調(diào)用所述目標對象創(chuàng)建預(yù)設(shè)應(yīng)用時截獲應(yīng)用信息,所述應(yīng)用信息用于指示創(chuàng)建應(yīng)用源架構(gòu)數(shù)據(jù)。
架構(gòu)創(chuàng)建模塊306,用于依據(jù)所述應(yīng)用信息搭建所述預(yù)設(shè)應(yīng)用的應(yīng)用映射架構(gòu)數(shù)據(jù)和應(yīng)用源架構(gòu)數(shù)據(jù)。
攔截響應(yīng)模塊308,用于截獲所述預(yù)設(shè)應(yīng)用的調(diào)用信息,依據(jù)所述應(yīng)用映射架構(gòu)數(shù)據(jù)執(zhí)行響應(yīng)。
綜上,可以對系統(tǒng)中創(chuàng)建函數(shù)進行監(jiān)控,從而在源頭掛起目標對象,在在調(diào)用所述目標對象創(chuàng)建預(yù)設(shè)應(yīng)用時截獲應(yīng)用信息,搭建所述預(yù)設(shè)應(yīng)用的應(yīng)用映射架構(gòu)數(shù)據(jù)和應(yīng)用源架構(gòu)數(shù)據(jù),通過應(yīng)用映射架構(gòu)數(shù)據(jù)可以映射到應(yīng)用源架構(gòu)數(shù)據(jù),從而分析出預(yù)設(shè)應(yīng)用的架構(gòu),后續(xù)截獲所述預(yù)設(shè)應(yīng)用的調(diào)用信息,依據(jù)所述應(yīng)用映射架構(gòu)數(shù)據(jù)執(zhí)行響應(yīng),便于響應(yīng)和分析預(yù)設(shè)應(yīng)用。
參照圖4,示出了根據(jù)本發(fā)明另一個實施例的一種數(shù)據(jù)處理裝置實施例的結(jié)構(gòu)框圖,具體可以包括如下模塊:
目標對象掛起模塊302,用于通過對系統(tǒng)中創(chuàng)建函數(shù)的監(jiān)控,掛起創(chuàng)建的目標對象。
應(yīng)用攔截模塊304,用于在調(diào)用所述目標對象創(chuàng)建預(yù)設(shè)應(yīng)用時截獲應(yīng)用信息,所述應(yīng)用信息用于指示創(chuàng)建應(yīng)用源架構(gòu)數(shù)據(jù)。
架構(gòu)創(chuàng)建模塊306,用于依據(jù)所述應(yīng)用信息搭建所述預(yù)設(shè)應(yīng)用的應(yīng)用映射架構(gòu)數(shù)據(jù)和應(yīng)用源架構(gòu)數(shù)據(jù)。
攔截響應(yīng)模塊308,用于截獲所述預(yù)設(shè)應(yīng)用的調(diào)用信息,依據(jù)所述應(yīng)用映射架構(gòu)數(shù)據(jù)執(zhí)行響應(yīng)。
分析模塊310,用于依據(jù)對所述應(yīng)用映射架構(gòu)數(shù)據(jù)的調(diào)用,對所述預(yù)設(shè)應(yīng)用的運行狀態(tài)進行分析。
建議模塊312,用于依據(jù)運行狀態(tài)的分析結(jié)果生成應(yīng)用建議信息,反饋所述應(yīng)用建議信息。
其中,所述目標對象掛起模塊302,用于對系統(tǒng)中創(chuàng)建函數(shù)進行監(jiān)控,在所述創(chuàng)建函數(shù)創(chuàng)建目標對象時掛起所述目標對象。
所述架構(gòu)創(chuàng)建模塊306,用于依據(jù)所述應(yīng)用信息確定映射對象和接口調(diào)用,搭建應(yīng)用映射架構(gòu)數(shù)據(jù),再依據(jù)所述應(yīng)用信息確定源對象和接口調(diào)用,搭建應(yīng)用源架構(gòu)數(shù)據(jù)。
所述架構(gòu)創(chuàng)建模塊306,還用于在創(chuàng)建對象時,依據(jù)所述應(yīng)用信息創(chuàng)建映射對象并指向源內(nèi)存地址,再創(chuàng)建源對象并指向所述源內(nèi)存地址;在各源對象對應(yīng)的各接口分別設(shè)置鉤子程序。
攔截響應(yīng)模塊308,包括:
攔截子模塊3082,用于在所述預(yù)設(shè)應(yīng)用調(diào)用接口時,通過鉤子程序截獲所述接口的調(diào)用信息。
響應(yīng)子模塊3084,用于依據(jù)所述調(diào)用信息訪問所述應(yīng)用映射架構(gòu)數(shù)據(jù),獲取對應(yīng)的響應(yīng)信息以執(zhí)行響應(yīng)。
所述響應(yīng)子模塊3084,用于將所述調(diào)用信息發(fā)送給所述應(yīng)用映射架構(gòu)數(shù)據(jù),由所述應(yīng)用映射架構(gòu)數(shù)據(jù)調(diào)用所述應(yīng)用源架構(gòu)數(shù)據(jù),獲取對應(yīng)的響應(yīng)信息并反饋。
其中,所述目標對象包括:組件對象模型,所述預(yù)設(shè)應(yīng)用包括:游戲客戶端。
對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的異常檢測方法和裝置設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
本發(fā)明公開了A1、一種數(shù)據(jù)處理方法,包括:通過對系統(tǒng)中創(chuàng)建函數(shù)的監(jiān)控,掛起創(chuàng)建的目標對象;在調(diào)用所述目標對象創(chuàng)建預(yù)設(shè)應(yīng)用時截獲應(yīng)用信息,所述應(yīng)用信息用于指示創(chuàng)建應(yīng)用源架構(gòu)數(shù)據(jù);依據(jù)所述應(yīng)用信息搭建所述預(yù)設(shè)應(yīng)用的應(yīng)用映射架構(gòu)數(shù)據(jù)和應(yīng)用源架構(gòu)數(shù)據(jù);截獲所述預(yù)設(shè)應(yīng)用的調(diào)用信息,依據(jù)所述應(yīng)用映射架構(gòu)數(shù)據(jù)執(zhí)行響應(yīng)。
A2、如權(quán)利要求A1所述的方法,通過對系統(tǒng)中創(chuàng)建函數(shù)的監(jiān)控,掛起創(chuàng)建的目標對象,包括:對系統(tǒng)中創(chuàng)建函數(shù)進行監(jiān)控,在所述創(chuàng)建函數(shù)創(chuàng)建目標對象時掛起所述目標對象。
A3、如A1所述的方法,依據(jù)所述應(yīng)用信息搭建所述預(yù)設(shè)應(yīng)用的應(yīng)用映射架構(gòu)數(shù)據(jù)和應(yīng)用源架構(gòu)數(shù)據(jù),包括:依據(jù)所述應(yīng)用信息確定映射對象和接口調(diào)用,搭建應(yīng)用映射架構(gòu)數(shù)據(jù),再依據(jù)所述應(yīng)用信息確定源對象和接口調(diào)用,搭建應(yīng)用源架構(gòu)數(shù)據(jù)。
A4、如A3所述的方法,還包括:在創(chuàng)建對象時,依據(jù)所述應(yīng)用信息創(chuàng)建映射對象并指向源內(nèi)存地址,再創(chuàng)建源對象并指向所述源內(nèi)存地址;在各源對象對應(yīng)的各接口分別設(shè)置鉤子程序。
A5、如A4所述的方法,截獲所述預(yù)設(shè)應(yīng)用的調(diào)用信息,依據(jù)所述應(yīng)用映射架構(gòu)數(shù)據(jù)執(zhí)行響應(yīng),包括:在所述預(yù)設(shè)應(yīng)用調(diào)用接口時,通過鉤子程序截獲所述接口的調(diào)用信息;依據(jù)所述調(diào)用信息訪問所述應(yīng)用映射架構(gòu)數(shù)據(jù),獲取對應(yīng)的響應(yīng)信息以執(zhí)行響應(yīng)。
A6、如A5所述的方法,依據(jù)所述調(diào)用信息訪問所述應(yīng)用映射架構(gòu)數(shù)據(jù),獲取對應(yīng)的響應(yīng)信息以執(zhí)行響應(yīng),包括:將所述調(diào)用信息發(fā)送給所述應(yīng)用映射架構(gòu)數(shù)據(jù),由所述應(yīng)用映射架構(gòu)數(shù)據(jù)調(diào)用所述應(yīng)用源架構(gòu)數(shù)據(jù),獲取對應(yīng)的響應(yīng)信息并反饋。
A7、如A1所述的方法,還包括:依據(jù)對所述應(yīng)用映射架構(gòu)數(shù)據(jù)的調(diào)用,對所述預(yù)設(shè)應(yīng)用的運行狀態(tài)進行分析。
A8、如A7所述的方法,還包括:依據(jù)運行狀態(tài)的分析結(jié)果生成應(yīng)用建議信息,反饋所述應(yīng)用建議信息。
A9、如A1-A8任一所述的方法,所述目標對象包括:組件對象模型,所述預(yù)設(shè)應(yīng)用包括:游戲客戶端。
本發(fā)明實施例還提供了B10、一種數(shù)據(jù)處理裝置,包括:目標對象掛起模塊,用于通過對系統(tǒng)中創(chuàng)建函數(shù)的監(jiān)控,掛起創(chuàng)建的目標對象;應(yīng)用攔截模塊,用于在調(diào)用所述目標對象創(chuàng)建預(yù)設(shè)應(yīng)用時截獲應(yīng)用信息,所述應(yīng)用信息用于指示創(chuàng)建應(yīng)用源架構(gòu)數(shù)據(jù);架構(gòu)創(chuàng)建模塊,用于依據(jù)所述應(yīng)用信息搭建所述預(yù)設(shè)應(yīng)用的應(yīng)用映射架構(gòu)數(shù)據(jù)和應(yīng)用源架構(gòu)數(shù)據(jù);攔截響應(yīng)模塊,用于截獲所述預(yù)設(shè)應(yīng)用的調(diào)用信息,依據(jù)所述應(yīng)用映射架構(gòu)數(shù)據(jù)執(zhí)行響應(yīng)。
B11、如B10所述的裝置,所述目標對象掛起模塊,用于對系統(tǒng)中創(chuàng)建函數(shù)進行監(jiān)控,在所述創(chuàng)建函數(shù)創(chuàng)建目標對象時掛起所述目標對象。
B12、如B10所述的裝置,所述架構(gòu)創(chuàng)建模塊,用于依據(jù)所述應(yīng)用信息確定映射對象和接口調(diào)用,搭建應(yīng)用映射架構(gòu)數(shù)據(jù),再依據(jù)所述應(yīng)用信息確定源對象和接口調(diào)用,搭建應(yīng)用源架構(gòu)數(shù)據(jù)。
B13、如B12所述的裝置,所述架構(gòu)創(chuàng)建模塊,還用于在創(chuàng)建對象時,依據(jù)所述應(yīng)用信息創(chuàng)建映射對象并指向源內(nèi)存地址,再創(chuàng)建源對象并指向所述源內(nèi)存地址;在各源對象對應(yīng)的各接口分別設(shè)置鉤子程序。
B14、如B13所述的裝置,攔截響應(yīng)模塊,包括:攔截子模塊,用于在所述預(yù)設(shè)應(yīng)用調(diào)用接口時,通過鉤子程序截獲所述接口的調(diào)用信息;響應(yīng)子模塊,用于依據(jù)所述調(diào)用信息訪問所述應(yīng)用映射架構(gòu)數(shù)據(jù),獲取對應(yīng)的響應(yīng)信息以執(zhí)行響應(yīng)。
B15、如B14所述的裝置,所述響應(yīng)子模塊,用于將所述調(diào)用信息發(fā)送給所述應(yīng)用映射架構(gòu)數(shù)據(jù),由所述應(yīng)用映射架構(gòu)數(shù)據(jù)調(diào)用所述應(yīng)用源架構(gòu)數(shù)據(jù),獲取對應(yīng)的響應(yīng)信息并反饋。
B16、如B10所述的裝置,還包括:分析模塊,用于依據(jù)對所述應(yīng)用映射架構(gòu)數(shù)據(jù)的調(diào)用,對所述預(yù)設(shè)應(yīng)用的運行狀態(tài)進行分析。
B17、如B16所述的裝置,還包括:建議模塊,用于依據(jù)運行狀態(tài)的分析結(jié)果生成應(yīng)用建議信息,反饋所述應(yīng)用建議信息。
B18、如B10-B17任一所述的裝置,所述目標對象包括:組件對象模型,所述預(yù)設(shè)應(yīng)用包括:游戲客戶端。