新四季網

檢測SWF文件調用者的方法、裝置、服務端及客戶端與流程

2023-10-23 19:21:27 2


本發明涉及信息處理技術領域,具體而言,涉及一種檢測swf文件調用者的方法、裝置、服務端及客戶端。



背景技術:

目前,flash被廣泛的用於網頁設計和網頁動畫製作及網頁視頻播放等。大多數的視頻網站包括直播網站都採用flash作為其視頻播放器,並且大多數的網頁遊戲也會使用flash來開發,flash的開發是使用actionscript腳本語言來開發。由於其腳本語言的特性,導致其非常容易被反編譯,從而可以從最終發布的swf文件(flash的執行文件)中反編譯查看其源碼,並尋找其各個功能接口及接口的使用方法。同時由於flash具有反射機制的原理,從而可以從最終發布的swf文件中獲取到swf文件的所有接口,通過反射機制可以調用其接口功能,第三方程序則可以直接使用該swf的功能,從而使得flash極其不安全。



技術實現要素:

本發明的目的在於提供一種檢測swf文件調用者的方法、裝置、服務端及客戶端,用以改善上述問題。

為了實現上述目的,本發明實施例採用的技術方案如下:

第一方面,本發明提供了一種檢測swf文件調用者的方法,應用於服務端以及與服務端通信連接的客戶端。所述方法包括:服務端獲取swc庫文件,並將swc庫文件加入swf文件中;服務端基於客戶端的文件獲取請求,將swf文件發送至客戶端;客戶端獲取swf文件,當swf文件被客戶端的應用程式運行時,客戶端通過swc庫文件來獲取swf文件的運行環境信息;客戶端將運行環境信息發送至服務端;服務端獲取運行環境信息,並根據運行環境信息檢測swf文件的調用者。

第二方面,本發明提供了一種檢測swf文件調用者的方法,應用於與客戶端通信連接的服務端。所述方法包括:獲取swc庫文件,並將swc庫文件加入swf文件中;基於客戶端的文件獲取請求,將swf文件發送至客戶端;獲取客戶端發送的swf文件的運行環境信息,其中,運行環境信息通過swc庫文件在swf文件被客戶端的應用程式運行時獲取;根據運行環境信息檢測swf文件的調用者。

第三方面,本發明提供了一種檢測swf文件調用者的方法,應用於與服務端通信連接的客戶端。所述方法包括:基於文件獲取請求,從服務端獲取包含有swc庫文件的swf文件;當swf文件被客戶端的應用程式運行時,swc庫文件獲取swf文件的運行環境信息;將運行環境信息發送至服務端,以使服務端根據運行環境信息檢測swf文件的調用者。

第四方面,本發明提供了一種檢測swf文件調用者的裝置,應用於與客戶端通信連接的服務端。所述裝置包括swc庫文件獲取模塊、發送模塊、第一執行模塊及調用者檢測模塊。其中,swc庫文件獲取模塊用於獲取swc庫文件,並將swc庫文件加入swf文件中;發送模塊用於基於客戶端的文件獲取請求,將swf文件發送至客戶端;第一執行模塊用於獲取客戶端發送的swf文件的運行環境信息,其中,運行環境信息通過swc庫文件在swf文件被客戶端的應用程式運行時獲取;調用者檢測模塊用於根據運行環境信息檢測swf文件的調用者。

第五方面,本發明提供了一種檢測swf文件調用者的裝置,應用於與服務端通信連接的客戶端。所述裝置包括swf文件獲取模塊、第二執行模塊、運行環境信息發送模塊。其中,swf文件獲取模塊用於基於文件獲取請求,從服務端獲取包含有swc庫文件的swf文件;第二執行模塊用於當swf文件被客戶端的應用程式運行時,swc庫文件獲取swf文件的運行環境信息;運行環境信息發送模塊用於將運行環境信息發送至服務端,以使服務端根據運行環境信息檢測swf文件的調用者。

第六方面,本發明提供了一種服務端,所述服務端與客戶端通信連接,其包括第一存儲器、第一處理器、以及檢測swf文件調用者的裝置,所述檢測swf文件調用者的裝置安裝於所述第一存儲器中並包括一個或多個由所述第一處理器執行的軟體功能模組。所述檢測swf文件調用者的裝置包括swc庫文件獲取模塊、發送模塊、第一執行模塊及調用者檢測模塊。其中,swc庫文件獲取模塊用於獲取swc庫文件,並將swc庫文件加入swf文件中;發送模塊用於基於客戶端的文件獲取請求,將swf文件發送至客戶端;第一執行模塊用於獲取客戶端發送的swf文件的運行環境信息,其中,運行環境信息通過swc庫文件在swf文件被客戶端的應用程式運行時獲取;調用者檢測模塊用於根據運行環境信息檢測swf文件的調用者。

第七方面,本發明提供了一種客戶端,所述客戶端與服務端通信連接,其包括第二存儲器、第二處理器、以及檢測swf文件調用者的裝置,所述檢測swf文件調用者的裝置安裝於所述第二存儲器中並包括一個或多個由所述第二處理器執行的軟體功能模組。所述檢測swf文件調用者的裝置包括swf文件獲取模塊、第二執行模塊、運行環境信息發送模塊。其中,swf文件獲取模塊用於基於文件獲取請求,從服務端獲取包含有swc庫文件的swf文件;第二執行模塊用於當swf文件被客戶端的應用程式運行時,swc庫文件獲取swf文件的運行環境信息;運行環境信息發送模塊用於將運行環境信息發送至服務端,以使服務端根據運行環境信息檢測swf文件的調用者。

相對現有技術,本發明具有以下有益效果:本發明提供的一種檢測swf文件調用者的方法、裝置、服務端及客戶端,首先,服務端將swc庫文件加入swf文件中,其次,客戶端從服務端獲取swf文件,當swf文件被客戶端的應用程式運行時,客戶端通過swc庫文件來獲取swf文件的運行環境信息,並將運行環境信息發送至服務端,服務端根據運行環境信息就能檢測swf文件的調用者。因此,當swf文件被客戶端的應用程式非法調用時,服務端可以第一時間獲知,從而採取相應的措施,另外,通過將獲取swf運行環境信息的swc文件加入swf文件,提高了swf文件被反編譯的難度,從而能夠有效避免現有技術中swf文件被反編譯的問題。

為使本發明的上述目的、特徵和優點能更明顯易懂,下文特舉較佳實施例,並配合所附附圖,作詳細說明如下。

附圖說明

為了更清楚地說明本發明實施例的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應當理解,以下附圖僅示出了本發明的某些實施例,因此不應被看作是對範圍的限定,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他相關的附圖。

圖1示出了本發明實施例提供的服務端與客戶端進行交互的示意圖。

圖2示出了本發明實施例提供的客戶端的方框示意圖。

圖3示出了本發明實施例提供的服務端的方框示意圖。

圖4示出了本發明第一實施例提供的檢測swf文件調用者的方法的流程圖。

圖5為圖4示出的步驟s105的子步驟流程圖。

圖6示出了本發明第二實施例提供的檢測swf文件調用者的方法的流程圖。

圖7為圖6示出的步驟s202的子步驟流程圖。

圖8示出了本發明第三實施例提供的檢測swf文件調用者的方法的流程圖。

圖9示出了本發明第四實施例提供的第一檢測裝置的方框示意圖。

圖10為圖9示出的第一檢測裝置中調用者檢測模塊的方框示意圖。

圖11示出了本發明第四實施例提供的第二檢測裝置的方框示意圖。

圖12為圖11示出的第二檢測裝置中運行環境信息發送模塊的方框示意圖。

圖13示出了本發明第五實施例提供的檢測swf文件調用者的系統的方框示意圖。

圖標:100-服務端;110-第一檢測裝置;111-接口函數加入模塊;112-swc庫文件獲取模塊;113-發送模塊;114-第一執行模塊;115-調用者檢測模塊;1151-判斷單元;1152-第一子執行單元;1153-第二子執行單元;120-第一存儲器;130-第一處理器;140-第一通信單元;200-客戶端;210-第二檢測裝置;211-swf文件獲取模塊;212-第二執行模塊;2121-域名信息獲取單元;2122-url信息獲取單元;213-運行環境信息發送模塊;220-第二存儲器;230-存儲控制器;240-第二處理器;250-外設接口;260-第二通信單元;270-射頻單元;300-網絡;400-本地應用程式;500-檢測swf文件調用者的系統。

具體實施方式

下面將結合本發明實施例中附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發明實施例的組件可以以各種不同的配置來布置和設計。因此,以下對在附圖中提供的本發明的實施例的詳細描述並非旨在限制要求保護的本發明的範圍,而是僅僅表示本發明的選定實施例。基於本發明的實施例,本領域技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。

應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨後的附圖中不需要對其進行進一步定義和解釋。同時,在本發明的描述中,術語「第一」、「第二」等僅用於區分描述,而不能理解為指示或暗示相對重要性。

請參照圖1,圖1示出了本發明實施例提供的服務端100與至少一個客戶端200進行交互的示意圖。服務端100可通過網絡300與客戶端200進行通信,以實現服務端100與客戶端200之間的數據通信或交互。服務端100可以提供至少一個適用於各種作業系統的本地應用程式400的安裝包供客戶端200下載。客戶端200通過網絡300訪問服務端100後,可通過網絡300從服務端100下載適用於該客戶端200的作業系統的本地應用程式400的安裝包,以將本地應用程式400安裝到客戶端200中。

在本發明實施例中,服務端100為web(網站)伺服器。客戶端200可以是,但不限於,智慧型手機、個人電腦(personalcomputer,pc)、平板電腦、個人數字助理(personaldigitalassistant,pda)、移動上網設備(mobileinternetdevice,mid)等。客戶端200的作業系統可以是,但不限於,安卓(android)系統、ios(iphoneoperatingsystem)系統、windowsphone系統、windows系統等。本地應用程式400可以是服務端100提供的任何可供客戶端200自定義下載並安裝的應用程式,優選地,本實施例中,本地應用程式400可為各種運行swf文件的客戶端200的本地程序。

請參照圖2,圖2是圖1所示的服務端100的方框示意圖。服務端100包括第一檢測裝置110、第一存儲器120、第一處理器130和第一通信單元140。

第一存儲器120、第一處理器130以及第一通信單元140各元件相互之間直接或間接地電性連接,以實現數據的傳輸或交互。例如,這些元件相互之間可通過一條或多條通訊總線或信號線實現電性連接。第二檢測裝置210包括至少一個可以軟體或固件(firmware)的形式存儲於第一存儲器120中或固化在所述服務端100的作業系統(operatingsystem,os)中的軟體功能模塊。第一處理器130用於執行第一存儲器120中存儲的可執行模塊,例如第一檢測裝置110所包括的軟體功能模塊及電腦程式等。

其中,所述第一存儲器120可以是,但不限於,隨機存取存儲器(randomaccessmemory,ram),只讀存儲器(readonlymemory,rom),可編程只讀存儲器(programmableread-onlymemory,prom),可擦除只讀存儲器(erasableprogrammableread-onlymemory,eprom),電可擦除只讀存儲器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,第一存儲器120用於存儲程序,第一處理器130在接收到執行指令後,執行所述程序。第一通信單元140用於通過網絡300建立服務端100與客戶端200之間的通信連接,並用於通過網絡300收發數據。

請參照圖3,圖3是圖1所述的客戶端200的方框示意圖。該客戶端200包括第二檢測裝置210、第二存儲器220、存儲控制器230、第二處理器240、外設接口250、第二通信單元260以及射頻單元270。

第二存儲器220、存儲控制器230、第二處理器240、外設接口250、射頻單元270以及第二通信單元260各元件相互之間直接或間接地電性連接,以實現數據的傳輸或交互。例如,這些元件相互之間可通過一條或多條通訊總線或信號線實現電性連接。第二檢測裝置210包括至少一個可以軟體或固件(firmware)的形式存儲於所述第二存儲器220中或固化在客戶端200的作業系統(operatingsystem,os)中的軟體功能模塊。第二存儲器220存儲有客戶端200從服務端100中下載並安裝的本地應用程式400。第二處理器240用於執行第二存儲器220中存儲的可執行模塊,例如第二檢測裝置210所包括的軟體功能模塊及電腦程式等。

其中,第二存儲器220可以是,但不限於,隨機存取存儲器(randomaccessmemory,ram),只讀存儲器(readonlymemory,rom),可編程只讀存儲器(programmableread-onlymemory,prom),可擦除只讀存儲器(erasableprogrammableread-onlymemory,eprom),電可擦除只讀存儲器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,第二存儲器220用於存儲程序,第二處理器240在接收到執行指令後,執行所述程序。第二處理器240以及其他可能的組件對第二存儲器220的訪問可在存儲控制器230的控制下進行。

第二處理器240可能是一種集成電路晶片,具有信號的處理能力。上述的處理器可以是通用處理器,包括中央處理器(centralprocessingunit,cpu)、網絡處理器(networkprocessor,np)等;還可以是數位訊號處理器(dsp))、專用集成電路(asic)、現場可編程門陣列(fpga)或者其他可編程邏輯器件、分立門或者電晶體邏輯器件、分立硬體組件。可以實現或者執行本發明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。外設接口250將各種輸入/輸出裝置(例如射頻單元270)耦合至所述第二處理器240以及第二存儲器220。在一些實施例中,外設接口250、第二處理器240以及存儲控制器230可以在單個晶片中實現。在其他一些實例中,他們可以分別由獨立的晶片實現。

射頻單元270用於接收以及發送無線電波信號(如電磁波),實現無線電波與電信號的相互轉換,從而實現客戶端200與網絡300或者其他通信設備之間的無線通信。

第二通信單元260用於通過網絡300與服務端100建立連接,從而實現服務端100與客戶端200之間的通信連接。例如,該第二通信單元260可以利用射頻單元270發送的射頻信號連接到網絡300,進而通過網絡300與服務端100建立通信連接。

第一實施例

請參照圖4,圖4示出了本發明第一實施例提供的檢測swf文件調用者的方法的流程圖。本實施例為服務端100所執行的檢測swf文件調用者的方法,包括以下步驟:

步驟s101,將獲取swf文件運行環境信息的接口函數加入swc庫文件中,其中,接口函數為基於腳本語言的函數。

在本發明實施例中,swf文件為flash的執行文件,swc庫文件是使用flash提供的機制編寫的基於編譯語言的文件,編譯語言可以是,但不限於c語言和c++語言等,flash提供這一機制的目的是為了考慮代碼的復用性,同時為了更易於開發大型程序,swc文件編寫完成之後,flash可以在其actionscript腳本語言中來調用swc庫文件提供的功能函數,從而使得flash可以使用c或者c++開發的功能代碼。

在本發明實施例中,可以將獲取swf文件運行環境信息的接口函數加入swc庫文件中編寫到swc庫文件中,同時通過設置接口供flash調用,從而對於flash具體調用的swc庫文件中的哪些函數、以及flash具體獲取了哪些信息進行了隱藏保護,接口函數可以為基於腳本語言(例如,actionscript腳本語言)的函數。

作為一種實施方式,將獲取swf文件運行環境信息的接口函數加入swc庫文件中的方法可以是使用flash提供的機制使用編譯語言(例如,c語言)來編寫一個swc庫文件,並在該swc庫文件中編寫一個獲取swf文件運行環境信息的接口函數提供給flash來調用。一種實現方法可以是,但不限於:首先,使用flash提供的機制使用編譯語言(例如,c語言)編寫文件代碼;其次,在該文件代碼中編寫供flash調用的獲取swf文件運行環境信息的接口函數,這個過程可以通過intgetswfenvironment(int*pinfo);語句實現,其中,getswfenvironment為獲取swf文件運行環境信息的接口函數,int*pinfo表示接口函數getswfenvironment會將獲取的swf文件運行環境信息寫入到接口參數pinfo這個指針中,返回值int表示寫入到pinfo指針中的內容的大小;最後,使用flash提供的編譯工具將文件代碼編譯成swc庫文件。在這一實現方法中,使用編譯語言可以使swc庫文件不容易被反編譯。

作為一種實施方式,使得接口函數具備獲取swf文件運行環境信息的功能的方法可以是,但不限於將獲取swf文件運行環境信息的腳本語言加入到接口函數中。swf文件運行環境信息可以包括swf文件的調用者的域名信息、以及swf文件的url信息。一種實現方法可以是:首先編寫獲取swf文件運行環境信息的腳本語言,其次通過flash提供的內聯函數將該腳本語言包起來,從而告訴flash的編譯器,該段代碼是使用的腳本語言來編寫的。

作為一種實施方式,獲取swf文件的調用者的域名信息可以通過以下語句實現:

inline_as3(

"importflash.net.localconnection;\n"

"varlocaldomain:localconnection=newlocalconnection;\n"

"varmydomainname:string=localdomainlc.domain;\n"

"varstringptr:int=cmodule.mallocstring(mydomainname);\n"

"cmodule.write32(%0,stringptr);\n"

::"r"(&pstrdomain));

其中,inline_as3為flash的內聯函數;"varlocaldomain:localconnection=newlocalconnection;\n"表示使用flash提供的組件來創建一個域對象localdomain,localconnection是創建域對象localdomain的組件,通過調用該組件可以獲取到域對象localdomain;"varmydomainname:string=localdomainlc.domain;\n"表示通過域對象localdomain來獲取運行swf文件的應用程式的域名信息mydomainnamedata,pstrdomain是用於存儲該域名信息的指針。

作為一種實施方式,獲取swf文件的url信息可以通過以下語句實現:

inline_as3(

"importflash.display.stage;\n"

"varweburl:string=cmodule.rootsprite.stage.loaderinfo.url.tostring;\n"

"varstringptr:int=cmodule.mallocstring(weburl);\n"

"cmodule.write32(%0,stringptr);\n"

::"r"(&pstrurl));

其中,inline_as3為flash的內聯函數;"varweburl:string=cmodule.rootsprite.stage.loaderinfo.url.tostring;\n"表示通過使用swf文件的舞臺對象來獲取swf文件的url信息,rootsprite為根對象,由於在swf文件中用來被渲染的舞臺對象都具有rootsprite根對象,因此該rootsprite根對象的url信息就是swf文件的url信息,pstrurl是用於存儲該url信息的指針。

作為一種實施方式,獲取到調用者的域名信息及swf文件的url信息之後,首先將調用者的域名信息及swf文件的url信息存入到接口參數pinfo中,可以通過以下語句實現:

*pinfo=malloc(strlen(pstrdomain)+strlen(pstrurl));

memcpy(pinfo,pstrdomain,strlen(pstrdomain));

memcpy(pinfo+strlen(pstrdomain),pstrurl,strlen(pstrurl));從而將調用者的域名信息及swf文件的url信息返回給此接口的調用者(例如flash)。

步驟s102,獲取swc庫文件,並將swc庫文件加入swf文件中。

在本發明實施例中,swc庫文件編譯完成之後,可以加入到swf文件中,這樣當swf被客戶端200的應用程式運行時,swc庫文件就可以獲取swf文件的運行環境信息。

步驟s103,基於客戶端的文件獲取請求,將swf文件發送至客戶端。

在本發明實施例中,客戶端200的文件獲取請求可以是,但不限於來自客戶端200的調用者的獲取請求,調用者包括外部應用程式和本地應用程式400的。外部應用程式可以是使用網頁瀏覽器在網際網路或企業內部網上操作的應用軟體,例如,使用360瀏覽器、谷歌瀏覽器、ie瀏覽器等網頁瀏覽器在網上操作的百度、優酷、鬥魚直播等應用軟體。本地應用程式400可以是各種安裝於客戶端200的本地程序,例如百度網盤、暴風影音等安裝於客戶端200的各種app(application,應用)。

步驟s104,獲取客戶端發送的swf文件的運行環境信息,其中,運行環境信息通過swc庫文件在swf文件被客戶端的應用程式運行時獲取。

在本發明實施例中,客戶端200的應用程式從服務端100獲取到swf文件之後,當swf文件被該應用程式運行時,swc庫文件會獲取swf文件的運行環境信息,之後客戶端200會將該運行環境信息發送至服務端100。

步驟s105,根據運行環境信息檢測swf文件的調用者。

在本發明實施例中,由於客戶端200上報的swf文件的運行環境信息是加密的,因此,服務端100首先會對上報信息進行解密,從而獲取到調用者的域名信息及swf文件的url信息。

作為一種實施方式,服務端100對上報信息進行解密可以通過data=aes.decrypt(info,key);語句實現,其中,aes.decrypt則是aes解密算法的解密接口;其中參數info是客戶端200上報的swf文件的運行環境信息經加密的信息;參數key是客戶端200加密時使用的key信息。

在本發明實施例中,可以根據運行環境信息檢測swf文件的調用者,如果調用者的域名信息及swf文件的url信息均是網絡地址,則判定調用者是外部應用程式,如果調用者的域名信息及swf文件的url信息中任意一個不是網絡地址,例如,參數mydomainnamedata是「localhost」,或者swf文件的url信息是類似「c:\users\administrator\desktop\**.swf」的磁碟存儲路徑信息,則判定調用者是本地應用程式400。

請參照圖5,步驟s105可以包括以下子步驟:

子步驟s1051,判斷調用者的域名信息及swf文件的url信息是否均為網絡地址。

在本發明實施例中,如果調用者的域名信息及swf文件的url信息均為網絡地址,則執行子步驟s1052,如果調用者的域名信息及swf文件的url信息中任意一個不是網絡地址,則執行子步驟s1053。

子步驟s1052,判定調用者為客戶端的外部應用程式。

子步驟s1053,判定調用者為安裝於客戶端的本地應用程式。

在本發明實施例中,首先,通過將獲取swf文件運行環境信息的接口函數加入swc庫文件中編寫到swc庫文件中,同時通過設置接口供flash調用,從而對於flash具體調用的swc庫文件中的哪些函數、以及flash具體獲取了哪些信息進行了隱藏保護;其次,通過flash提供的內聯函數inline_as3將獲取swf文件運行環境信息的腳本語言包起來,加入到接口函數中,從而使得接口函數具備了獲取swf文件運行環境信息的功能,同時,由於swc庫文件是基於編譯語言編寫的文件,因此不容易被反編譯。

第二實施例

請參照圖6,圖6示出了本發明第二實施例提供的檢測swf文件調用者的方法的流程圖。本實施例為客戶端200所執行的檢測swf文件調用者的方法,包括以下步驟:

步驟s201,基於文件獲取請求,從服務端獲取包含有swc庫文件的swf文件。

在本發明實施例中,swf文件是外部應用程式的文件,因此,外部應用程式的獲取請求是指通過網絡300從服務端100調用包含有swc庫文件的swf文件,而本地應用程式400的獲取請求是指從服務端100非法下載包含有swc庫文件的swf文件。

步驟s202,當swf文件被客戶端的應用程式運行時,swc庫文件獲取swf文件的運行環境信息。

在本發明實施例中,當客戶端200的應用程式運行swf文件時,swc庫文件就能獲取swf文件的運行環境信息,從而檢測swf的調用者。運行環境信息可以是,但不限於包括swf的調用者的域名信息、以及swf文件的url(uniformresourelocator,統一資源定位器)信息等。

請參照圖7,步驟s202可以包括以下子步驟:

子步驟s2021,依據swf文件的調用者是否有域名,確定調用者的域名信息。

在本發明實施例中,當swf文件被外部應用程式運行時,也就是外部應用程式通過網絡300從服務端100調用的swf文件,swc庫文件獲取的運行swf文件的應用程式的域名必然是對應網站的域名,例如,當swf文件通過瀏覽器被百度運行時,百度的網頁調用flash運行swf文件,則flash獲取其的應用程式的域名是www.baidu.com;但是,當swf文件是從服務端100非法下載的,且被本地應用程式400運行時,swc庫文件則無法獲取到網站域名,因此,可以依據運行swf文件的應用程式是否有域名,來確定運行swf文件的應用程式的域名信息,當swc庫文件無法獲取到網站域名時,可以設置運行swf文件的應用程式的域名信息為一個固定的本地信息,例如localhost(本地主機)。

子步驟s2022,根據swf文件加載的舞臺對象獲取swf文件的url信息,其中,swf文件的運行環境信息包括調用者的域名信息及swf文件的url信息。

在本發明實施例中,url信息可以是,但不限於根據swf文件加載的舞臺對象所確定的swf文件的url信息。由於在swf文件中用來被渲染的舞臺對象都具有rootsprite根對象,故該rootsprite根對象的url信息就是swf文件的url信息。當swf文件被外部應用程式運行時,rootsprite根對象的url信息必然是該網站的域名及該網站運行的swf文件的伺服器路徑信息,也就是該網站頁面的url信息,例如,http://zhidao.baidu.com/question/124891257.html。但是,當swf文件被本地應用程式400運行時,swc庫文件則無法獲取到rootsprite根對象的url信息,因此,可以依據rootsprite根對象,來確定swf文件的url信息,當swc庫文件無法獲取到當前頁面的url信息時,可以設置rootsprite根對象的本地磁碟路徑信息作為swf文件的url信息,例如http://zhidao.baidu.com/question/124891257.html。

步驟s203,將運行環境信息發送至服務端,以使服務端根據運行環境信息檢測swf文件的調用者。

作為一種實施方式,可以在flash中加載swc庫文件,並調用swc庫文件的接口函數來獲取該接口函數獲取的swf文件的運行環境信息。可以通過以下方法實現:首先,通過flash的腳本指令來導入該swc庫文件,可以通過importxx.cmodule;語句實現;其次,分配一個指針變量ptrinfo調用該swc庫文件的接口函數getswfenvironment,可以通過varptrinfolen:int=xx.getswfenvironment(ptrinfo);語句實現;再次,讀取接口函數返回的接口參數pinfo指針,可以通過varinfodata:int=cmodule.read32(ptrinfo);語句實現;最後,讀取接口函數獲取的swf文件的運行環境信息,可以通過vardata:string=cmodule.readstring(infodata,ptrinfolen);語句實現,其中,data變量用於存儲swf文件的運行環境信息,包括調用者的域名信息及swf文件的url信息。

作為另一種實施方式,可以在flash的關鍵函數中調用swc庫文件的接口函數來獲取swf文件的運行環境信息,並將該信息進行加密後上報伺服器。關鍵函數可以是flash最開始執行或者初始化的函數,該接口函數必須是會被調用到的。

在本發明實施例中,當flash獲取到swf文件的運行環境信息後,則會將所獲取到的運行環境信息進行加密後上報到服務端100,服務端100會根據運行環境信息檢測swf文件的調用者。作為一種實施方式,可以通過info=aes.encrypt(data,key);語句實現,其中,aes.encrypt是aes加密算法的加密接口;參數data是swf文件的運行環境信息;key是加密使用的key信息;info數據是加密後上報到服務端100的數據。

在本發明實施例中,首先,swf文件的運行環境信息包括調用者的域名信息、以及swf文件的url信息,並且二者是通過不同的技術手段獲取的,這樣可以防止數據被篡改,提高了獲取的swf文件的運行環境信息的安全性;另外,獲取swf文件的運行環境信息的swc庫文件是編譯語言和腳本語言混合的文件,不容易被反編譯,進一步保證了獲取swf文件的運行環境信息的安全性。

第三實施例

請參照圖8,圖8示出了本發明第三實施例提供的檢測swf文件調用者的方法的流程圖。本實施例以服務端100與客戶端200之間的交互為主描述本方法,本實施例的方法可以包括以下步驟:

步驟s301,服務端獲取swc庫文件,並將swc庫文件加入swf文件中。

步驟s302,服務端基於客戶端的文件獲取請求,將swf文件發送至客戶端。

步驟s303,客戶端獲取swf文件,當swf文件被客戶端的應用程式運行時,客戶端通過swc庫文件來獲取swf文件的運行環境信息。

步驟s304,客戶端將運行環境信息發送至服務端。

步驟s305,服務端獲取運行環境信息,並根據運行環境信息檢測swf文件的調用者。

在本發明實施例中,服務端100將swc庫文件加入swf文件中,其次,客戶端200從服務端100獲取swf文件,當swf文件被客戶端200的應用程式運行時,客戶端200通過swc庫文件來獲取swf文件的運行環境信息,並將運行環境信息發送至服務端100,服務端100根據運行環境信息就能檢測swf文件的調用者。因此,當swf文件被客戶端200的應用程式非法調用時,服務端100可以第一時間獲知,從而採取相應的措施,另外,通過將獲取swf運行環境信息的swc文件加入swf文件,提高了swf文件被反編譯的難度。

第四實施例

請參照圖9,圖9示出了本發明第四實施例提供的第一檢測裝置110的方框示意圖。第一檢測裝置110應用於服務端100,其包括接口函數加入模塊111、swc庫文件獲取模塊112、發送模塊113、第一執行模塊114及調用者檢測模塊115。

接口函數加入模塊111,用於將獲取swf文件運行環境信息的接口函數加入swc庫文件中,其中,接口函數為基於腳本語言的函數。

在本發明實施例中,接口函數加入模塊111可以用於執行步驟s101。

swc庫文件獲取模塊112,用於獲取swc庫文件,並將swc庫文件加入swf文件中。

在本發明實施例中,swc庫文件獲取模塊112可以用於執行步驟s102。

發送模塊113,用於基於客戶端的文件獲取請求,將swf文件發送至客戶端。

在本發明實施例中,發送模塊113可以用於執行步驟s103。

第一執行模塊114,用於獲取客戶端發送的swf文件的運行環境信息,其中,運行環境信息通過swc庫文件在swf文件被客戶端的應用程式運行時獲取。

在本發明實施例中,第一執行模塊114可以用於執行步驟s104。

調用者檢測模塊115,用於根據運行環境信息檢測swf文件的調用者。

在本發明實施例中,調用者檢測模塊115可以用於執行步驟s105。

請參照圖10,圖10為圖9示出的第一檢測裝置110中調用者檢測模塊115的方框示意圖。調用者檢測模塊115包括判斷單元1151、第一子執行單元1152及第二子執行單元1153。

判斷單元1151,用於判斷調用者的域名信息及swf文件的url信息是否均為網絡地址。

在本發明實施例中,判斷單元1151可以用於執行子步驟s1051。

在本發明實施例中,如果判斷單元1151的執行結果為「是」,則轉第一子執行單元1152執行子步驟s1052,如果判斷單元1151的執行結果為「否」,則轉第二子執行單元1153執行子步驟s1053。

第一子執行單元1152,用於判定調用者為客戶端的外部應用程式。

在本發明實施例中,第一子執行單元1152可以用於執行子步驟s1052。

第二子執行單元1153,用於判定調用者為安裝於客戶端的本地應用程式。

在本發明實施例中,第二子執行單元1153可以用於執行子步驟s1053。

請參照圖11,圖11示出了本發明第四實施例提供的第二檢測裝置210的方框示意圖。第二檢測裝置210包括swf文件獲取模塊211、第二執行模塊212及運行環境信息發送模塊213。

swf文件獲取模塊211,用於基於文件獲取請求,從服務端獲取包含有swc庫文件的swf文件。

在本發明實施例中,swf文件獲取模塊211可以用於執行步驟s201。

第二執行模塊212,用於當swf文件被客戶端的應用程式運行時,swc庫文件獲取swf文件的運行環境信息。

在本發明實施例中,第二執行模塊212可以用於執行步驟s202。

請參照圖12,圖12為圖11示出的第二檢測裝置210中第二執行模塊212的方框示意圖。第二執行模塊212包括域名信息獲取單元2121及url信息獲取單元2122。

域名信息獲取單元2121,用於依據swf文件的調用者是否有域名,確定調用者的域名信息。

在本發明實施例中,域名信息獲取單元2121可以用於執行步驟s2021。

url信息獲取單元2122,用於根據swf文件加載的舞臺對象獲取swf文件的url信息,其中,swf文件的運行環境信息包括調用者的域名信息及swf文件的url信息。

在本發明實施例中,url信息獲取單元2122可以用於執行步驟s2022。

運行環境信息發送模塊213,用於將運行環境信息發送至服務端,以使服務端根據運行環境信息檢測swf文件的調用者。

在本發明實施例中,運行環境信息發送模塊213可以用於執行步驟s203。

第五實施例

請參照圖13,圖13示出了本發明第五實施例提供的檢測swf文件調用者的系統500的方框示意圖。檢測swf文件調用者的系統500包括服務端100、以及與服務端100通信連接的客戶端200,其中:

服務端100用於獲取swc庫文件,並將swc庫文件加入swf文件中。

服務端100還用於基於客戶端200的文件獲取請求,將swf文件發送至客戶端200。

客戶端200用於獲取swf文件,當swf文件被客戶端200的應用程式運行時,通過swc庫文件來獲取swf文件的運行環境信息。

客戶端200還用於將運行環境信息發送至服務端100。

客戶端200還用於獲取運行環境信息,並根據運行環境信息檢測swf文件的調用者。

綜上所述,本發明提供的一種檢測swf文件調用者的方法、裝置、服務端及客戶端,應用於服務端的方法包括:獲取swc庫文件,並將swc庫文件加入swf文件中;基於客戶端的文件獲取請求,將swf文件發送至客戶端;獲取客戶端發送的swf文件的運行環境信息,其中,運行環境信息通過swc庫文件在swf文件被客戶端的應用程式運行時獲取;根據運行環境信息檢測swf文件的調用者。應用於客戶端的方法包括:基於文件獲取請求,從服務端獲取包含有swc庫文件的swf文件;當swf文件被客戶端的應用程式運行時,swc庫文件獲取swf文件的運行環境信息;將運行環境信息發送至服務端,以使服務端根據運行環境信息檢測swf文件的調用者。當swf文件被客戶端的應用程式非法調用時,服務端可以第一時間獲知,從而採取相應的措施,另外,通過將獲取swf運行環境信息的swc文件加入swf文件,提高了swf文件被反編譯的難度,從而能夠有效避免現有技術中swf文件被反編譯的問題。

在本申請所提供的幾個實施例中,應該理解到,所揭露的裝置和方法,也可以通過其它的方式實現。以上所描述的裝置實施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據本發明的多個實施例的裝置、方法和電腦程式產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用於實現規定的邏輯功能的可執行指令。也應當注意,在有些作為替換的實現方式中,方框中所標註的功能也可以以不同於附圖中所標註的順序發生。例如,兩個連續的方框實際上可以基本並行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執行規定的功能或動作的專用的基於硬體的系統來實現,或者可以用專用硬體與計算機指令的組合來實現。

另外,在本發明各個實施例中的各功能模塊可以集成在一起形成一個獨立的部分,也可以是各個模塊單獨存在,也可以兩個或兩個以上模塊集成形成一個獨立的部分。

所述功能如果以軟體功能模塊的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬碟、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光碟等各種可以存儲程序代碼的介質。需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。

以上所述僅為本發明的優選實施例而已,並不用於限制本發明,對於本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨後的附圖中不需要對其進行進一步定義和解釋。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀