本發(fā)明涉及數(shù)據(jù)安全領(lǐng)域,尤其涉及一種防劫持方法、系統(tǒng)、電子設(shè)備及可讀存儲(chǔ)介質(zhì)。
背景技術(shù):
隨著電子設(shè)備的性能提升,電子設(shè)備可以安裝不同應(yīng)用程序的安裝包,以通過(guò)安裝應(yīng)用程序來(lái)實(shí)現(xiàn)電子設(shè)備的功能的多樣化。當(dāng)打開(kāi)應(yīng)用程序時(shí),用戶無(wú)法準(zhǔn)備判斷電子設(shè)備所顯示的界面是應(yīng)用程序的界面還是仿冒的界面。如果在仿冒界面上進(jìn)行操作時(shí),用戶可能會(huì)被釣魚欺騙,用戶在輸入的用戶賬號(hào)、信用卡號(hào)、身份證號(hào)碼、郵箱地址、家庭成員信息、商業(yè)機(jī)密信息、登錄密碼、銀行卡號(hào)、手機(jī)號(hào)碼、短信驗(yàn)證碼、家庭住址信息、公司地址信息等信息很有可能被竊取。然而,現(xiàn)有的應(yīng)用程序安裝包并沒(méi)有提供如何對(duì)可能存在釣魚欺騙進(jìn)行識(shí)別,因而,降低了安裝包的安全性,進(jìn)而給電子設(shè)備的安全造成了一定不便。
技術(shù)實(shí)現(xiàn)要素:
鑒于以上內(nèi)容,有必要提供一種可有利于提高應(yīng)用安裝包安全的防劫持方法、裝置、電子設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
一種防劫持方法,包括:
獲取反編譯操作后中間文件所包含的頂層活動(dòng)類名;
獲取所述頂層活動(dòng)類名包含的切換函數(shù)位置;
判斷所述切換函數(shù)位置處是否包含標(biāo)識(shí)內(nèi)容;
當(dāng)所述切換函數(shù)位置處不包含標(biāo)識(shí)內(nèi)容時(shí),輸出警示信息。
進(jìn)一步地,所述防劫持方法中,所述當(dāng)所述切換函數(shù)位置處不包含標(biāo)識(shí)內(nèi)容時(shí),還包括:
在所述切換函數(shù)位置處添加標(biāo)識(shí)內(nèi)容;及
對(duì)添加標(biāo)識(shí)內(nèi)容后的中間文件進(jìn)行編譯操作。
進(jìn)一步地,所述防劫持方法中,所述獲取反編譯操作后中間文件所包含的頂層活動(dòng)類名包括:
對(duì)應(yīng)用安裝包進(jìn)行拆包操作,以提取所述應(yīng)用安裝包所包含的應(yīng)用文件及清單文件;
對(duì)所述應(yīng)用文件進(jìn)行反編譯操作后生成所述中間文件。
進(jìn)一步地,所述防劫持方法中,所述對(duì)所述應(yīng)用文件進(jìn)行反編譯操作后生成所述中間文件后包括:
對(duì)所述清單文件進(jìn)行解析操作,以獲取所述清單文件注冊(cè)的活動(dòng)項(xiàng)名;
從所述中間文件中獲取對(duì)應(yīng)所述活動(dòng)項(xiàng)名的頂層活動(dòng)類名。
進(jìn)一步地,所述防劫持方法中,所述獲取反編譯操作后中間文件所包含的頂層活動(dòng)類名后還包括:
判斷所述頂層活動(dòng)類名是否與已添加標(biāo)識(shí)內(nèi)容的頂層活動(dòng)類名相同;
當(dāng)所述頂層活動(dòng)類名與已添加標(biāo)識(shí)內(nèi)容的頂層活動(dòng)類名相同時(shí),獲取所述頂層活動(dòng)類名包含的切換函數(shù)位置;
當(dāng)所述頂層活動(dòng)類名與已添加標(biāo)識(shí)內(nèi)容的頂層活動(dòng)類名不相同時(shí),獲取下一頂層活動(dòng)類名。
進(jìn)一步地,所述防劫持方法中,所述防劫持方法還包括:
執(zhí)行所述標(biāo)識(shí)內(nèi)容,包括:
獲取當(dāng)前活動(dòng)界面的狀態(tài);
判斷當(dāng)前活動(dòng)界面是否處于被覆蓋前的狀態(tài);
當(dāng)所述當(dāng)前活動(dòng)界面處于被覆蓋前的狀態(tài)時(shí),判斷當(dāng)前活動(dòng)界面與覆蓋后活動(dòng)界面的頂層活動(dòng)類名是否一致;
當(dāng)所述當(dāng)前活動(dòng)界面與覆蓋后活動(dòng)界面的頂層活動(dòng)類名不一致時(shí),輸出提示信息。
進(jìn)一步地,所述防劫持方法中,所述判斷當(dāng)前活動(dòng)界面是否處于被覆蓋前的狀態(tài)包括:
判斷當(dāng)前活動(dòng)界面的頂層活動(dòng)類名所包含的切換函數(shù)是否被執(zhí)行;
當(dāng)所述當(dāng)前活動(dòng)界面的頂層活動(dòng)類名所包含的切換函數(shù)被執(zhí)行時(shí),確定所述當(dāng)前活動(dòng)界面處于被覆蓋前的狀態(tài)。
一種電子設(shè)備,包括存儲(chǔ)器及處理器,所述存儲(chǔ)器存儲(chǔ)若干被所述處理器執(zhí)行的程序,其特征在于,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)步驟:
獲取反編譯操作后中間文件所包含的頂層活動(dòng)類名;
獲取所述頂層活動(dòng)類名包含的切換函數(shù)位置;
判斷所述切換函數(shù)位置處是否包含標(biāo)識(shí)內(nèi)容;
當(dāng)所述切換函數(shù)位置處不包含標(biāo)識(shí)內(nèi)容時(shí),輸出警示信息。
一種可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)步驟:
獲取反編譯操作后中間文件所包含的頂層活動(dòng)類名;
獲取所述頂層活動(dòng)類名包含的切換函數(shù)位置;
判斷所述切換函數(shù)位置處是否包含標(biāo)識(shí)內(nèi)容;
當(dāng)所述切換函數(shù)位置處不包含標(biāo)識(shí)內(nèi)容時(shí),輸出警示信息。
一種防劫持系統(tǒng),其特征在于,所述防劫持系統(tǒng)包括:
控制單元,用于獲取反編譯操作后中間文件所包含的頂層活動(dòng)類名;
所述控制單元,還用于獲取所述頂層活動(dòng)類名包含的切換函數(shù)位置;并在所述切換函數(shù)位置處添加標(biāo)識(shí)內(nèi)容;及
編譯單元,用于對(duì)添加標(biāo)識(shí)內(nèi)容后的中間文件進(jìn)行編譯操作。
上述防劫持方法、裝置、電子設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)通過(guò)檢測(cè)所述頂層活動(dòng)類名的切換函數(shù)位置處是否有標(biāo)識(shí)內(nèi)容來(lái)判斷所述應(yīng)用安裝包是否運(yùn)行防劫持功能,并在所述應(yīng)用安裝包不支持防劫持功能時(shí)提示用戶,有利于用戶方便進(jìn)行安全的辨識(shí)。另外,通過(guò)在所述切換函數(shù)位置處添加所述標(biāo)識(shí)內(nèi)容,以將防劫持的功能集成到現(xiàn)在的應(yīng)用安裝包內(nèi),方便、快捷;還可通過(guò)對(duì)所述應(yīng)用安裝包的防劫持功能進(jìn)行測(cè)試,可有效降低由用戶自己判斷應(yīng)用安裝包是否具有防劫持功能的不確定性。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明防劫持方法的第一較佳實(shí)施方式的流程圖。
圖2是圖1中步驟s100的較佳實(shí)施方式的流程圖。
圖3是本發(fā)明防劫持方法的第二較佳實(shí)施方式的流程圖。
圖4是圖3中步驟s312的較佳實(shí)施方式的流程圖。
圖5是本發(fā)明電子設(shè)備的較佳實(shí)施方式的方框圖。
圖6是本發(fā)明防劫持系統(tǒng)的較佳實(shí)施方式的方框圖。
主要元件符號(hào)說(shuō)明
電子設(shè)備50
處理器501
顯示屏503
存儲(chǔ)器505
輸入輸出接口507
網(wǎng)絡(luò)接口509
防劫持系統(tǒng)517
總線511
反編譯單元600
提取單元602
執(zhí)行單元604
控制單元606
權(quán)限單元608
編譯單元610
警示單元612
活動(dòng)管理單元614
如下具體實(shí)施例將結(jié)合上述附圖進(jìn)一步說(shuō)明本發(fā)明。
具體實(shí)施方式
為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)的實(shí)施例及實(shí)施例中的特征可以相互組合。
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
除非另有定義,本文所使用的所有的技術(shù)和科學(xué)術(shù)語(yǔ)與屬于本發(fā)明的技術(shù)領(lǐng)域的技術(shù)人員通常理解的含義相同。本文中在本發(fā)明的說(shuō)明書中所使用的術(shù)語(yǔ)只是為了描述具體的實(shí)施例的目的,不是旨在于限制本發(fā)明。
實(shí)施例一
請(qǐng)參閱圖1,本發(fā)明實(shí)施例一提供的防劫持方法的示意流程圖。所述方法應(yīng)用于電子設(shè)備中,所述電子設(shè)備可以為手機(jī)、平板電腦等具有數(shù)據(jù)處理功能的終端。如圖1所示,所述防劫持方法可包括以下步驟:
步驟s100,獲取反編譯操作后中間文件所包含的頂層活動(dòng)類名。
本實(shí)施方式中,所述電子設(shè)備可安裝有若干應(yīng)用程序,所述若干應(yīng)用程序可對(duì)應(yīng)不同的功能。所述若干應(yīng)用程序可通過(guò)對(duì)應(yīng)的應(yīng)用安裝包來(lái)進(jìn)行安裝,如當(dāng)點(diǎn)擊一應(yīng)用安裝包時(shí),所述電子設(shè)備可對(duì)所述安裝包執(zhí)行安裝操作。
本實(shí)施方式中,所述電子設(shè)備可對(duì)所述應(yīng)用安裝包進(jìn)行反編譯操作以生成中間文件,所述電子設(shè)備還用于獲取所述中間文件中包含的頂層活動(dòng)類名。
可以理解地,所述應(yīng)用安裝包可為apk包,當(dāng)對(duì)所述安裝包的反編譯操作后可生成smali文件。所述smali文件可包含若干頂層活動(dòng)類名,其中所述頂層活動(dòng)類名為非系統(tǒng)活動(dòng)類名。例如,在一般的程序開(kāi)發(fā)中,活動(dòng)類名(如用戶自定義的活動(dòng)類型exampleactivity)會(huì)通過(guò)繼承(extends)系統(tǒng)活動(dòng)類名(activity)來(lái)實(shí)現(xiàn)程序之間的耦合性。而活動(dòng)類名的繼承可通過(guò)直接繼承或間接繼承系統(tǒng)活動(dòng)類名,即活動(dòng)類名可通過(guò)多重繼承。
對(duì)于頂層活動(dòng)類名而言,其包含了定義用戶界面的生命周期的函數(shù),如onstart、onresume、oncreate、onpause、onstop、onrestart及ondestroy等函數(shù)。所述電子設(shè)備可通過(guò)活動(dòng)管理器來(lái)管理各活動(dòng)類名所對(duì)應(yīng)的實(shí)例的運(yùn)行,其中,所述活動(dòng)管理器通過(guò)棧的方式來(lái)管理各活動(dòng)類名所對(duì)應(yīng)的實(shí)例,較佳地,所述??蔀楹筮M(jìn)先出的棧,一個(gè)活動(dòng)類名的實(shí)例的狀態(tài)決定它在棧中的位置。處于前臺(tái)的活動(dòng)類名的實(shí)例(當(dāng)前用戶界面)總是在棧的頂端,當(dāng)前臺(tái)的活動(dòng)類名的實(shí)例因?yàn)楫惓;蚱渌虮讳N毀時(shí),處于棧第二層的活動(dòng)類名的實(shí)例將被激活,并移動(dòng)到棧的頂部。當(dāng)新的活動(dòng)類名的實(shí)例啟動(dòng)入棧時(shí),當(dāng)前用戶界面對(duì)應(yīng)的活動(dòng)類名的實(shí)例會(huì)被壓入到棧的第二層。一個(gè)活動(dòng)類名的實(shí)例在棧中的位置變化反映了它在不同狀態(tài)間的轉(zhuǎn)換。onpause函數(shù)表示當(dāng)前用戶界面向另一用戶界面切換時(shí)的切換函數(shù)。例如,當(dāng)用戶打開(kāi)第一應(yīng)用程序的第一用戶界面時(shí),若用戶想要切換至第一應(yīng)用程序的第二界面時(shí),此時(shí),當(dāng)前用戶界面所對(duì)應(yīng)的活動(dòng)類名會(huì)執(zhí)行onpause函數(shù),以指示電子設(shè)備會(huì)進(jìn)行界面切換。
步驟s102,獲取所述頂層活動(dòng)類名包含的切換函數(shù)位置。
所述電子設(shè)備獲取所述頂層活動(dòng)類名包含的切換函數(shù)位置,即獲取onpause函數(shù)所在的位置。本實(shí)施方式中,所述電子設(shè)備可通過(guò)查找onpause函數(shù)名來(lái)獲得所述切換函數(shù)的位置。
步驟s104,判斷所述切換函數(shù)位置是否包含標(biāo)識(shí)內(nèi)容;當(dāng)所述切換函數(shù)位置包含所述標(biāo)識(shí)內(nèi)容時(shí),執(zhí)行步驟s110;當(dāng)所述切換函數(shù)位置不包含所述標(biāo)識(shí)內(nèi)容時(shí),執(zhí)行步驟s106。
本實(shí)施方式中,所述標(biāo)識(shí)內(nèi)容為檢測(cè)所述安裝包是否包含防劫持功能。所述標(biāo)識(shí)內(nèi)容可對(duì)應(yīng)防劫持功能的應(yīng)用程序或是用于調(diào)用防劫持功能的函數(shù)。如此,在執(zhí)行所述切換函數(shù)時(shí)可執(zhí)行所述防劫持功能。
步驟s106,輸出警示信息,并在所述切換函數(shù)位置處添加所述標(biāo)識(shí)所述。
本實(shí)施方式中,當(dāng)所述切換函數(shù)位置處沒(méi)有所述標(biāo)識(shí)內(nèi)容時(shí),即表示所述應(yīng)用安裝包不支持防劫持功能,此時(shí),所述電子設(shè)備可輸出警示信息,所述電子設(shè)備可在所述切換函數(shù)位置處添加劫持所述防劫持功能的標(biāo)識(shí)內(nèi)容。
本實(shí)施方式中,所述標(biāo)識(shí)內(nèi)容可為函數(shù)的調(diào)用接口或文件的調(diào)用接口,如在所述函數(shù)的調(diào)用接口被執(zhí)行時(shí),所述電子設(shè)備可執(zhí)行所述防劫持功能;當(dāng)所述文件的調(diào)用接口被執(zhí)行時(shí),所述電子設(shè)備可加載包含防劫持功能的文件,如所述文件中可包含防劫持功能的程序代碼等。
在其他實(shí)施方式中,所述電子設(shè)備亦可只輸出所述警示信息。
步驟s108,對(duì)添加標(biāo)識(shí)內(nèi)容后的中間文件進(jìn)行編譯操作。
當(dāng)所述電子設(shè)備在所述中間文件的切換函數(shù)處添加標(biāo)識(shí)內(nèi)容時(shí),所述電子設(shè)備可重新對(duì)所述中間文件進(jìn)行編譯操作,如將中間文件smali文件編譯為dex文件,以方便用戶進(jìn)行安裝。
當(dāng)所述標(biāo)識(shí)內(nèi)容位于包含防劫持功能的文件內(nèi)時(shí),所述電子設(shè)備可將包含防劫持功能的文件添加到smali文件夾中對(duì)應(yīng)的位置,以進(jìn)行編譯操作。
在其他實(shí)施方式中,當(dāng)所述電子設(shè)備對(duì)中間文件進(jìn)行編譯操作時(shí),可對(duì)所述中間文件進(jìn)行權(quán)限設(shè)置,以保證編譯操作后的應(yīng)用安裝包的安全性。
步驟s110,輸出應(yīng)用安裝包安全的信息。
當(dāng)所述切換函數(shù)的位置處包含所述標(biāo)識(shí)內(nèi)容時(shí),所述電子設(shè)備可輸出所述安全信息。
通過(guò)檢測(cè)所述頂層活動(dòng)類名的切換函數(shù)位置處是否有標(biāo)識(shí)內(nèi)容來(lái)判斷所述應(yīng)用安裝包是否運(yùn)行防劫持功能,并在所述應(yīng)用安裝包不支持防劫持功能時(shí)提示用戶,有利于用戶方便進(jìn)行安全的辨識(shí)。
在另一實(shí)施方式中,步驟s104及步驟s110可以省略,即當(dāng)步驟s102執(zhí)行完后,執(zhí)行步驟s106的在切換函數(shù)位置處添加所述標(biāo)識(shí)內(nèi)容。本實(shí)施方式中,通過(guò)在所述切換函數(shù)位置處添加所述標(biāo)識(shí)內(nèi)容,以將防劫持的功能集成到現(xiàn)在的應(yīng)用安裝包內(nèi),方便、快捷。
請(qǐng)參閱圖2,步驟s100的較佳實(shí)施方式包括:
步驟s200,對(duì)應(yīng)用安裝包進(jìn)行拆包操作,以提取所述應(yīng)用安裝包所包含的應(yīng)用文件及清單文件。
本實(shí)施方式中,所述電子設(shè)備可對(duì)apk應(yīng)用安裝包進(jìn)行拆包操作,以提取所述應(yīng)用安裝包中包含的應(yīng)用文件(dex文件)及清單文件(androidmanifest.xml)。在其他類型的安裝包中,所述應(yīng)用文件與清單文件的名稱可能是其他的名稱。
步驟s202,對(duì)所述應(yīng)用文件進(jìn)行反編譯操作,生成中間文件。
所述電子設(shè)備對(duì)所述應(yīng)用文件dex文件執(zhí)行反編譯操作后可得到所述中間文件samli文件。
步驟s204,對(duì)清單文件進(jìn)行解析操作,以獲取注冊(cè)的若干活動(dòng)項(xiàng)名。
本實(shí)施方式中,所述清單文件中可包含注冊(cè)的若干活動(dòng)項(xiàng)名。
步驟s206,從所述中間文件中獲取對(duì)應(yīng)活動(dòng)項(xiàng)名的頂層活動(dòng)類名。
本實(shí)施方式中,所述中間文件中的頂層活動(dòng)類名可對(duì)應(yīng)于注冊(cè)在所述清單文件的活動(dòng)項(xiàng)名。通過(guò)注冊(cè)的若干活動(dòng)項(xiàng)名來(lái)查找所述中間文件包含的頂層活動(dòng)類名,有利于提高查找的效率。
步驟s208,判斷所述頂層活動(dòng)類名是否與已添加標(biāo)識(shí)內(nèi)容的頂層活動(dòng)類名相同;當(dāng)所述頂層活動(dòng)類名與已添加標(biāo)識(shí)內(nèi)容的頂層活動(dòng)類名相同時(shí),執(zhí)行步驟s212;當(dāng)所述頂層活動(dòng)類名與已添加標(biāo)識(shí)內(nèi)容的頂層活動(dòng)類名不相同時(shí),執(zhí)行步驟s210。
本實(shí)施方式中,當(dāng)所述頂層活動(dòng)類名與已添加標(biāo)識(shí)內(nèi)容的頂層活動(dòng)類名相同時(shí),表示所述頂層活動(dòng)類名已添加了標(biāo)識(shí)內(nèi)容,因此,為提高執(zhí)行效率,所述電子設(shè)備在所述頂層活動(dòng)類名與已添加標(biāo)識(shí)內(nèi)容的頂層活動(dòng)類名相同,執(zhí)行步驟s212,以繼續(xù)查找下一頂層活動(dòng)類名。
步驟s210,獲取所述頂層活動(dòng)類名包含的調(diào)用函數(shù)位置。
所述步驟s210與所述步驟102相同,故在此不再贅述。
步驟s212,獲取下一頂層活動(dòng)類名。
通過(guò)獲取下一頂層活動(dòng)類名以實(shí)現(xiàn)注冊(cè)至xml清單文件中的所有活動(dòng)類名的遍歷操作,以確保所述xml清單文件中所有活動(dòng)類名均包含防劫持功能。
實(shí)施例二
請(qǐng)參閱圖3,本發(fā)明實(shí)施例二提供的防劫持方法的示意流程圖。所述方法應(yīng)用于電子設(shè)備中,所述電子設(shè)備可以為手機(jī)、平板電腦等具有數(shù)據(jù)處理功能的電子設(shè)備。需要說(shuō)明的是,在本發(fā)明的精神或基本特征的范圍內(nèi),適用于第一實(shí)施例的各具體方案也可以相應(yīng)的適用于第二實(shí)施例中,為節(jié)省篇幅及避免重復(fù)起見(jiàn),在此就不再贅述。
如圖3所示,所述消息通知處理可包括以下步驟:
步驟s300,獲取反編譯操作后中間文件所包含的頂層活動(dòng)類名。
本實(shí)施例中步驟s300與實(shí)施例一中步驟s100一致,具體請(qǐng)參閱實(shí)施例一中步驟s100的相關(guān)描述,在此不進(jìn)行贅述。
步驟s302,獲取所述頂層活動(dòng)類名包含的切換函數(shù)位置。
本實(shí)施例中步驟s302與實(shí)施例一中步驟s102一致,具體請(qǐng)參閱實(shí)施例一中步驟s102的相關(guān)描述,在此不進(jìn)行贅述。
步驟s304,判斷所述切換函數(shù)位置是否包含標(biāo)識(shí)內(nèi)容。
本實(shí)施例中步驟s304與實(shí)施例一中步驟s104一致,具體請(qǐng)參閱實(shí)施例一中步驟s104的相關(guān)描述,在此不進(jìn)行贅述。
步驟s306,在所述切換函數(shù)位置處添加標(biāo)識(shí)內(nèi)容。
本實(shí)施例中步驟s306與實(shí)施例一中步驟s106一致,具體請(qǐng)參閱實(shí)施例一中步驟s106的相關(guān)描述,在此不進(jìn)行贅述。
步驟s308,對(duì)添加標(biāo)識(shí)內(nèi)容后的中間文件進(jìn)行編譯操作。
本實(shí)施例中步驟s308與實(shí)施例一中步驟s108一致,具體請(qǐng)參閱實(shí)施例一中步驟s108的相關(guān)描述,在此不進(jìn)行贅述。
步驟312,執(zhí)行所述標(biāo)識(shí)內(nèi)容。
所述電子設(shè)備可執(zhí)行標(biāo)識(shí)內(nèi)容,以判斷所述標(biāo)識(shí)內(nèi)容是否可支持防劫持功能。
步驟s310,輸出應(yīng)用安裝包安全的信息。
本實(shí)施例中步驟s310與實(shí)施例一中步驟s110一致,具體請(qǐng)參閱實(shí)施例一中步驟s110的相關(guān)描述,在此不進(jìn)行贅述。
本實(shí)施方式中通過(guò)執(zhí)行所述標(biāo)識(shí)內(nèi)容,以對(duì)所述應(yīng)用安裝包的防劫持功能進(jìn)行測(cè)試,可有效降低由用戶自己判斷應(yīng)用安裝包是否具有防劫持功能的不確定性。
請(qǐng)參閱圖4,步驟s312的較佳實(shí)施方式包括:
步驟s400,獲取當(dāng)前活動(dòng)界面的狀態(tài)。
所述電子設(shè)備的活動(dòng)管理器獲取所述棧的最上層的活動(dòng)類名,所述最上層的活動(dòng)類名對(duì)應(yīng)于當(dāng)前活動(dòng)界面。
步驟s402,判斷當(dāng)前活動(dòng)界面是否處于被覆蓋前的狀態(tài);當(dāng)所述當(dāng)前活動(dòng)界面處于被覆蓋前的狀態(tài)時(shí),執(zhí)行步驟s404;當(dāng)所述當(dāng)前活動(dòng)界面沒(méi)有處于被覆蓋前的狀態(tài)時(shí),返回步驟s400。
所述電子設(shè)備可判斷所述最上層的活動(dòng)類名所包含的調(diào)用函數(shù)是否被執(zhí)行;當(dāng)所述最上層的活動(dòng)類名所包含的調(diào)用函數(shù)被執(zhí)行時(shí),所述電子設(shè)備即可判定所述當(dāng)前活動(dòng)界面處于被覆蓋前的狀態(tài)。
步驟s404,判斷當(dāng)前活動(dòng)界面與覆蓋后活動(dòng)界面的頂層活動(dòng)類名是否一致;當(dāng)所述當(dāng)前活動(dòng)界面與覆蓋后活動(dòng)界面的頂層活動(dòng)類名不一致時(shí),執(zhí)行步驟s406;當(dāng)所述當(dāng)前活動(dòng)界面與覆蓋后活動(dòng)界面的頂層活動(dòng)類名一致時(shí),執(zhí)行步驟s408。
本實(shí)施方式中,當(dāng)所述棧中最上層的活動(dòng)類名中的調(diào)用函數(shù)被執(zhí)行時(shí),所述電子設(shè)備會(huì)將覆蓋后活動(dòng)界面所對(duì)應(yīng)的活動(dòng)類名加入所述棧;此時(shí),所述棧中的頂層活動(dòng)類名(位于所述棧的第一層)則變?yōu)楦采w后活動(dòng)界面所對(duì)應(yīng)的活動(dòng)類名,而所述棧中原來(lái)的頂層活動(dòng)類名則被壓入所述棧的第二層。因此,所述電子設(shè)備可判斷所述棧中第一層的活動(dòng)類名是否與所述第二層的活動(dòng)類名相同。當(dāng)所述棧中第一層的活動(dòng)類名與所述第二層的活動(dòng)類名相同時(shí),則表示當(dāng)前活動(dòng)界面與覆蓋后活動(dòng)界面是位于相同的應(yīng)用程序,覆蓋后的活動(dòng)界面是安全的。當(dāng)所述棧中第一層的活動(dòng)類名與所述第二層的活動(dòng)類名不相同時(shí),則表示當(dāng)前活動(dòng)界面與覆蓋后活動(dòng)界面是位于不同的應(yīng)用程序,覆蓋后的活動(dòng)界面存在被釣魚的可能。
步驟s406,輸出提示信息。
當(dāng)覆蓋后的活動(dòng)界面存在被釣魚的可能時(shí),所述電子設(shè)備可輸出提示信息,以警示用戶。
步驟s408,切換至覆蓋后的活動(dòng)界面。
當(dāng)覆蓋后的活動(dòng)界面是安全時(shí),所述電子設(shè)備可切換至覆蓋后的活動(dòng)界面。
通過(guò)判斷棧中的第一層的活動(dòng)類名是否與第二層的活動(dòng)類名是否相同來(lái)判斷所述應(yīng)用安裝包是否支持防劫持功能。
實(shí)施例三
請(qǐng)參閱圖5,其為本發(fā)明一實(shí)施例中,提供的可應(yīng)用上述各實(shí)施例的電子設(shè)備的結(jié)構(gòu)示意圖。如圖5所示,電子設(shè)備50可包括防劫持系統(tǒng)517。所述電子設(shè)備40可以為手機(jī)、平板電腦、計(jì)算機(jī)等具有數(shù)據(jù)處理功能的電子設(shè)備。所示的防劫持系統(tǒng)40可以根據(jù)判斷應(yīng)用安裝包是否運(yùn)行防劫持功能,從而為所述電子設(shè)備的用戶提供更好的使用體驗(yàn)。
進(jìn)一步地,所述防劫持系統(tǒng)40通過(guò)應(yīng)用安裝包的調(diào)用函數(shù)處是否包含標(biāo)識(shí)內(nèi)容;當(dāng)調(diào)用函數(shù)處包含標(biāo)識(shí)內(nèi)容時(shí),則表示所述應(yīng)用安裝包支持防支持功能;當(dāng)調(diào)用函數(shù)處不包含標(biāo)識(shí)內(nèi)容時(shí),所述防劫持系統(tǒng)40可輸出警示信息。
所述電子設(shè)備50是一種能夠按照事先設(shè)定或存儲(chǔ)的指令,自動(dòng)進(jìn)行數(shù)值計(jì)算和/或信息處理的設(shè)備,其硬件包括但不限于微處理器、專用集成電路(applicationspecificintegratedcircuit,asic)、可編程門陣列(field-programmablegatearray,fpga)、數(shù)字處理器(digitalsignalprocessor,dsp)、嵌入式設(shè)備等。
所述電子設(shè)備50可以是,但不限于任何一種可與用戶通過(guò)鍵盤、鼠標(biāo)、遙控器、觸摸板或聲控設(shè)備等方式進(jìn)行人機(jī)交互的電子產(chǎn)品,例如,平板電腦、智能手機(jī)、個(gè)人數(shù)字助理(personaldigitalassistant,pda)、游戲機(jī)、智能式穿戴式設(shè)備等。
所述電子設(shè)備50所處的網(wǎng)絡(luò)包括,但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、虛擬專用網(wǎng)絡(luò)(virtualprivatenetwork,vpn)等,如所述電子設(shè)備50可網(wǎng)絡(luò)接口509接入互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、虛擬專用網(wǎng)絡(luò)。
所述的存儲(chǔ)器505可以是不同類型存儲(chǔ)設(shè)備或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),用于存儲(chǔ)各類數(shù)據(jù)。例如,可以是電子設(shè)備50的內(nèi)存,還可以是可外接于該電子設(shè)備50的存儲(chǔ)卡,如閃存、sm卡(smartmediacard,智能媒體卡)、sd卡(securedigitalcard,安全數(shù)字卡)等。存儲(chǔ)器505用于存儲(chǔ)各類數(shù)據(jù),例如,所述電子設(shè)備50中安裝的包括信息處理的應(yīng)用程序(applications)、應(yīng)用上述信息處理方法而設(shè)置、獲取的數(shù)據(jù)等信息。
所述處理器501用于執(zhí)行所述防劫持方法以及所述電子設(shè)備50內(nèi)安裝的各類軟件,例如操作系統(tǒng)、信息處理軟件等。所述處理器501包含但不限于處理器(centralprocessingunit,cpu)、微控制單元(microcontrollerunit,mcu)等用于解釋計(jì)算機(jī)指令以及處理計(jì)算機(jī)軟件中的數(shù)據(jù)的裝置,可以包括一個(gè)或者多個(gè)微處理器、數(shù)字處理器。所述顯示屏503可以是觸摸屏等其他用于顯示畫面的設(shè)備。
所述處理器501可以包括一個(gè)或者多個(gè)微處理器、數(shù)字處理器。
所述顯示屏503可以是觸摸屏等其他用于顯示畫面的設(shè)備。
本實(shí)施例中,所述顯示屏503為一具有觸摸功能的顯示屏,進(jìn)而為用戶的操作提供便利。所述存儲(chǔ)器505可存儲(chǔ)有若干程序代碼,以被所述處理器501執(zhí)行,進(jìn)而實(shí)現(xiàn)所述防劫持系統(tǒng)517的功能。
如圖5所示,所述電子設(shè)備50包括的防劫持系統(tǒng)517可以包括一個(gè)或多個(gè)的模塊,所述一個(gè)或多個(gè)模塊可以被存儲(chǔ)在電子設(shè)備50的存儲(chǔ)器505中并可以被配置成由一個(gè)或多個(gè)處理器(本實(shí)施例為一個(gè)處理器501)執(zhí)行,以完成本發(fā)明。例如,參閱圖5所示,所述電子設(shè)備50包括存儲(chǔ)器505、輸入輸出接口507、顯示屏503及通過(guò)總線511與所述存儲(chǔ)器505、輸入輸出接口507與顯示屏503進(jìn)行數(shù)據(jù)交換的處理器501。其中,所述輸入輸出接口507可連接于鼠標(biāo)及/或鍵盤(圖未示)。本發(fā)明所稱的模塊是完成一特定功能的程序段,比程序更適合于描述軟件在處理器中的執(zhí)行過(guò)程。
請(qǐng)一并參閱圖6,所述防劫持系統(tǒng)517的較佳實(shí)施方式包括反編譯單元600、提取單元602、執(zhí)行單元604、控制單元606、權(quán)限單元608、編譯單元610、警示單元612及活動(dòng)管理單元614。
所述提出單元602用于對(duì)應(yīng)用安裝包進(jìn)行拆包操作,以提取所述應(yīng)用安裝包所包含的應(yīng)用文件及清單文件。本實(shí)施方式中,所述電子設(shè)備可對(duì)apk應(yīng)用安裝包進(jìn)行拆包操作,以提取所述應(yīng)用安裝包中包含的應(yīng)用文件(dex文件)及清單文件(androidmanifest.xml)。在其他類型的安裝包中,所述應(yīng)用文件與清單文件的名稱可能是其他的名稱。
所述反編譯單元600用于對(duì)所述應(yīng)用文件dex文件執(zhí)行反編譯操作,以得到中間文件samli文件。
可以理解地,所述應(yīng)用安裝包可為apk包,當(dāng)對(duì)所述安裝包的反編譯操作后可生成smali文件。所述smali文件可包含若干頂層活動(dòng)類名,其中所述頂層活動(dòng)類名為非系統(tǒng)活動(dòng)類名。例如,在一般的程序開(kāi)發(fā)中,活動(dòng)類名(如用戶自定義的活動(dòng)類型exampleactivity)會(huì)通過(guò)繼承(extends)系統(tǒng)活動(dòng)類名(activity)來(lái)實(shí)現(xiàn)程序之間的耦合性。而活動(dòng)類名的繼承可通過(guò)直接繼承或間接繼承系統(tǒng)活動(dòng)類名,即活動(dòng)類名可通過(guò)多重繼承。
所述控制單元606用于從所述中間文件中獲取對(duì)應(yīng)活動(dòng)項(xiàng)名的頂層活動(dòng)類名,并判斷所述頂層活動(dòng)類名是否與已添加標(biāo)識(shí)內(nèi)容的頂層活動(dòng)類名相同;當(dāng)所述頂層活動(dòng)類名與已添加標(biāo)識(shí)內(nèi)容的頂層活動(dòng)類名相同時(shí),所述控制單元606用于獲取下一頂層活動(dòng)類名;當(dāng)所述頂層活動(dòng)類名與已添加標(biāo)識(shí)內(nèi)容的頂層活動(dòng)類名不相同時(shí),所述控制單元606用于獲取所述頂層活動(dòng)類名包含的調(diào)用函數(shù)位置。
對(duì)于頂層活動(dòng)類名而言,其包含了定義用戶界面的生命周期的函數(shù),如onstart、onresume、oncreate、onpause、onstop、onrestart及ondestroy等函數(shù)。所述電子設(shè)備可通過(guò)活動(dòng)管理單元614來(lái)管理各活動(dòng)類名所對(duì)應(yīng)的實(shí)例的運(yùn)行,其中,所述活動(dòng)管理單元614通過(guò)棧的方式來(lái)管理各活動(dòng)類名所對(duì)應(yīng)的實(shí)例,較佳地,所述棧可為后進(jìn)先出的棧,一個(gè)活動(dòng)類名的實(shí)例的狀態(tài)決定它在棧中的位置。處于前臺(tái)的活動(dòng)類名的實(shí)例(當(dāng)前用戶界面)總是在棧的頂端,當(dāng)前臺(tái)的活動(dòng)類名的實(shí)例因?yàn)楫惓;蚱渌虮讳N毀時(shí),處于棧第二層的活動(dòng)類名的實(shí)例將被激活,并移動(dòng)到棧的頂部。當(dāng)新的活動(dòng)類名的實(shí)例啟動(dòng)入棧時(shí),當(dāng)前用戶界面對(duì)應(yīng)的活動(dòng)類名的實(shí)例會(huì)被壓入到棧的第二層。一個(gè)活動(dòng)類名的實(shí)例在棧中的位置變化反映了它在不同狀態(tài)間的轉(zhuǎn)換。onpause函數(shù)表示當(dāng)前用戶界面向另一用戶界面切換時(shí)的切換函數(shù)。例如,當(dāng)用戶打開(kāi)第一應(yīng)用程序的第一用戶界面時(shí),若用戶想要切換至第一應(yīng)用程序的第二界面時(shí),此時(shí),當(dāng)前用戶界面所對(duì)應(yīng)的活動(dòng)類名會(huì)執(zhí)行onpause函數(shù),以指示電子設(shè)備會(huì)進(jìn)行界面切換。
所述控制單元606所述頂層活動(dòng)類名包含的切換函數(shù)位置,即獲取onpause函數(shù)所在的位置。本實(shí)施方式中,所述電子設(shè)備可通過(guò)查找onpause函數(shù)名來(lái)獲得所述切換函數(shù)的位置。
所述控制單元606還用于判斷所述切換函數(shù)位置是否包含標(biāo)識(shí)內(nèi)容;當(dāng)所述切換函數(shù)位置包含所述標(biāo)識(shí)內(nèi)容時(shí),所述控制單元606可控制所述警示單元612輸出應(yīng)用安裝包安全的信息;當(dāng)所述切換函數(shù)位置不包含所述標(biāo)識(shí)內(nèi)容時(shí),所述控制單元606控制所述警示單元612輸出應(yīng)用安裝包異常的警示信息。
本實(shí)施方式中,所述標(biāo)識(shí)內(nèi)容為檢測(cè)所述安裝包是否包含防劫持功能。所述標(biāo)識(shí)內(nèi)容可對(duì)應(yīng)防劫持功能的應(yīng)用程序或是用于調(diào)用防劫持功能的函數(shù)。如此,在執(zhí)行所述切換函數(shù)時(shí)可執(zhí)行所述防劫持功能。
當(dāng)所述切換函數(shù)位置處沒(méi)有所述標(biāo)識(shí)內(nèi)容時(shí),即表示所述應(yīng)用安裝包不支持防劫持功能,此時(shí),所述警示單元612可輸出警示信息,所述控制單元606可在所述切換函數(shù)位置處添加劫持所述防劫持功能的標(biāo)識(shí)內(nèi)容。
通過(guò)檢測(cè)所述頂層活動(dòng)類名的切換函數(shù)位置處是否有標(biāo)識(shí)內(nèi)容來(lái)判斷所述應(yīng)用安裝包是否運(yùn)行防劫持功能,并在所述應(yīng)用安裝包不支持防劫持功能時(shí)提示用戶,有利于用戶方便進(jìn)行安全的辨識(shí)。
本實(shí)施方式中,所述標(biāo)識(shí)內(nèi)容可為函數(shù)的調(diào)用接口或文件的調(diào)用接口,如在所述函數(shù)的調(diào)用接口被執(zhí)行時(shí),所述電子設(shè)備可執(zhí)行所述防劫持功能;當(dāng)所述文件的調(diào)用接口被執(zhí)行時(shí),所述電子設(shè)備可加載包含防劫持功能的文件,如所述文件中可包含防劫持功能的程序代碼等。
在其他實(shí)施方式中,所述警示單元612亦可只輸出所述警示信息。
當(dāng)所述電子設(shè)備在所述中間文件的切換函數(shù)處添加標(biāo)識(shí)內(nèi)容時(shí),所述編譯單元610可重新對(duì)所述中間文件進(jìn)行編譯操作,如將中間文件smali文件編譯為dex文件,以方便用戶進(jìn)行安裝。
當(dāng)所述標(biāo)識(shí)內(nèi)容位于包含防劫持功能的文件內(nèi)時(shí),所述編譯單元610可將包含防劫持功能的文件添加到smali文件夾中對(duì)應(yīng)的位置,以進(jìn)行編譯操作。
在其他實(shí)施方式中,當(dāng)所述權(quán)限單元608對(duì)中間文件進(jìn)行編譯操作時(shí),可對(duì)所述中間文件進(jìn)行權(quán)限設(shè)置,以保證編譯操作后的應(yīng)用安裝包的安全性。
所述執(zhí)行單元604還可執(zhí)行所述標(biāo)識(shí)內(nèi)容。
可以理解地,所述執(zhí)行單元604可獲取所述棧的最上層的活動(dòng)類名,所述最上層的活動(dòng)類名對(duì)應(yīng)于當(dāng)前活動(dòng)界面。
所述執(zhí)行單元604還用于判斷當(dāng)前活動(dòng)界面是否處于被覆蓋前的狀態(tài);當(dāng)所述當(dāng)前活動(dòng)界面處于被覆蓋前的狀態(tài)時(shí),所述執(zhí)行單元604還用于判斷當(dāng)前活動(dòng)界面與覆蓋后活動(dòng)界面的頂層活動(dòng)類名是否一致;當(dāng)所述當(dāng)前活動(dòng)界面與覆蓋后活動(dòng)界面的頂層活動(dòng)類名不一致時(shí);所述執(zhí)行單元604控制所述警示單元612輸出警示信息。
本實(shí)施方式中,當(dāng)所述棧中最上層的活動(dòng)類名中的調(diào)用函數(shù)被執(zhí)行時(shí),所述活動(dòng)管理單元614會(huì)將覆蓋后活動(dòng)界面所對(duì)應(yīng)的活動(dòng)類名加入所述棧;此時(shí),所述棧中的頂層活動(dòng)類名(位于所述棧的第一層)則變?yōu)楦采w后活動(dòng)界面所對(duì)應(yīng)的活動(dòng)類名,而所述棧中原來(lái)的頂層活動(dòng)類名則被壓入所述棧的第二層。因此,所述執(zhí)行單元604可判斷所述棧中第一層的活動(dòng)類名是否與所述第二層的活動(dòng)類名相同。當(dāng)所述棧中第一層的活動(dòng)類名與所述第二層的活動(dòng)類名相同時(shí),則表示當(dāng)前活動(dòng)界面與覆蓋后活動(dòng)界面是位于相同的應(yīng)用程序,覆蓋后的活動(dòng)界面是安全的。當(dāng)所述棧中第一層的活動(dòng)類名與所述第二層的活動(dòng)類名不相同時(shí),則表示當(dāng)前活動(dòng)界面與覆蓋后活動(dòng)界面是位于不同的應(yīng)用程序,覆蓋后的活動(dòng)界面存在被釣魚的可能。
通過(guò)判斷棧中的第一層的活動(dòng)類名是否與第二層的活動(dòng)類名是否相同來(lái)判斷所述應(yīng)用安裝包是否支持防劫持功能。
可以理解的是,對(duì)應(yīng)上述防劫持方法中的各實(shí)施例,防劫持系統(tǒng)517可以包括圖5中所示的各功能模塊中的一部分或全部,各模塊的功能將在以下具體介紹。需要說(shuō)明的是,以上生成報(bào)告的方法的各實(shí)施例中相同的名詞相關(guān)名詞及其具體的解釋說(shuō)明也可以適用于以下對(duì)各模塊的功能介紹。為節(jié)省篇幅及避免重復(fù)起見(jiàn),在此就不再贅述。
所述處理器501可以包括一個(gè)或者多個(gè)微處理器、數(shù)字處理器。
所述顯示屏503可以是觸摸屏等其他用于顯示畫面的設(shè)備。
本實(shí)施例中,所述顯示屏503為一具有觸摸功能的顯示屏,進(jìn)而為用戶的操作提供便利。所述存儲(chǔ)器505可存儲(chǔ)有若干程序代碼,以被所述處理器501執(zhí)行,進(jìn)而實(shí)現(xiàn)所述防劫持系統(tǒng)517的功能。
在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的防劫持方法及裝置,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的消息通知處理裝置的實(shí)施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能模塊可以集成在相同處理模塊中,也可以是各個(gè)模塊單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上模塊集成在相同模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能模塊的形式實(shí)現(xiàn)。
對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無(wú)論從哪一點(diǎn)來(lái)看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說(shuō)明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本發(fā)明內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。系統(tǒng)權(quán)利要求中陳述的多個(gè)單元或系統(tǒng)也可以由同一個(gè)單元或系統(tǒng)通過(guò)軟件或者硬件來(lái)實(shí)現(xiàn)。
最后應(yīng)說(shuō)明的是,以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍。