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