本發明專利技術涉及一種可執行文件的加固方法和裝置。所述方法包括以下步驟:獲取應用程序的可執行文件代碼;將應用程序的可執行文件代碼編譯為匯編文件;從所述匯編文件中獲取預先設定的需要保護的代碼所對應的匯編代碼;將防止反編譯代碼插入到所述匯編代碼之前。上述可執行文件的加固方法和裝置,通過將應用程序的可執行文件代碼編譯為匯編文件,將匯編文件中所需保護的代碼所對應的匯編代碼,并將防止反編譯代碼插入到該匯編代碼前,反編譯器對應用程序的可執行文件進行反編譯時,使得反編譯器難以反編譯欲保護的代碼,提高應用程序的安全性,防止應用程序被植入惡意指令,提高了用戶數據的安全性,同時也不影響保護代碼的正常執行。
【技術實現步驟摘要】
本專利技術涉及信息安全領域,特別是涉及一種可執行文件的加固方法和裝置。
技術介紹
隨著網絡技術的發展,提供各種服務的應用程序應運而生。將應用程序安裝在移動終端上,使用應用程序即可享受相應的服務,例如打車軟件,將打車軟件安裝在移動終端上,啟動運行打車軟件,輸入出發點和目的地生成叫車信息,發送該叫車信息,接收到該叫車信息的的士司機即可響應,進行服務。然而,應用程序安裝在移動終端上,容易被反編譯工具直接讀取應用程序安裝包里保存在libs目錄下的可執行文件(如so文件),將其修改,重新打包,構建出大量的山寨應用,在修改時會植入惡意指令、廣告插件等,導致用戶的數據被竊取,用戶數據的安全性低。
技術實現思路
基于此,有必要針對傳統的應用程序易被修改植入惡意指令而導致用戶數據被竊取的問題,提供一種可執行文件的加固方法,能防止應用程序被植入惡意指令,防止用戶數據被竊取,提高用戶數據的安全性。此外,還有必要提供一種可執行文件的加固裝置,能防止應用程序被植入惡意指令,防止用戶數據被竊取,提高用戶數據的安全性。一種可執行文件的加固方法,包括以下步驟:獲取應用程序的可執行文件代碼;將應用程序的可執行文件代碼編譯為匯編文件;從所述匯編文件中獲取預先設定的需要保護的代碼所對應的匯編代碼;將防止反編譯代碼插入到所述匯編代碼之前。一種可執行文件的加固裝置,包括:第一獲取模塊,用于獲取應用程序的可執行文件代碼;編譯模塊,用于將應用程序的可執行文件代碼編譯為匯編文件;第二獲取模塊,用于從所述匯編文件中獲取預先設定的需要保護的代碼所對應的匯編代碼;插入模塊,用于將防止反編譯代碼插入到所述匯編代碼之前。上述可執行文件的加固方法和裝置,通過將應用程序的可執行文件代碼編譯為匯編文件,將匯編文件中所需保護的代碼所對應的匯編代碼,并將防止反編譯代碼插入到該匯編代碼前,反編譯器對應用程序的可執行文件進行反編譯時,使得反編譯器難以反編譯欲保護的代碼,提高應用程序的安全性,防止應用程序被植入惡意指令,以及防止惡意指令竊取用戶數據,提高了用戶數據的安全性。此外,識別到模式切換指令后,對模式切換指令后的匯編代碼識別為垃圾指令,從而誤導反編譯器,提高了應用程序的安全性,防止應用程序被植入惡意指令,以及防止惡意指令竊取用戶數據,提高了用戶數據的安全性,同時也不影響保護代碼的正常執行。通過反編譯器識別模式切換指令后,將模式切換指令后的正常代碼識別為垃圾指令,能解決運行時解密后內存中存在原始的代碼,反編譯者從內存中把代碼拷貝出來達到反編譯的目的的問題,以及在正常執行代碼的過程中,不需解密大量數據,降低了解密消耗,提高了運行效率。附圖說明圖1A為一個實施例中終端的內部結構示意圖;圖1B為一個實施例中服務器的內部結構示意圖;圖2為一個實施例中可執行文件的加固方法的流程圖;圖3為一個實施例中可執行文件的加固方法的運行原理示意圖;圖4為一個實施例中可執行文件的加固裝置的內部結構框圖;圖5為另一個實施例中可執行文件的加固裝置的內部結構框圖。具體實施方式為了使本專利技術的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本專利技術進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本專利技術,并不用于限定本專利技術。可以理解,本專利技術所使用的術語“第一”、“第二”等可在本文中用于描述各種元件,但這些元件不受這些術語限制。這些術語僅用于將第一個元件與另一個元件區分。舉例來說,在不脫離本專利技術的范圍的情況下,可以將第一客戶端稱為第二客戶端,且類似地,可將第二客戶端稱為第一客戶端。第一客戶端和第二客戶端兩者都是客戶端,但其不是同一客戶端。圖1A為一個實施例中終端的內部結構示意圖。如圖1A所示,該終端包括通過系統總線連接的處理器、存儲介質、內存和網絡接口。其中,終端的存儲介質存儲有操作系統,還包括一種可執行文件的加固裝置,該可執行文件的加固裝置用于實現一種可執行文件的加固方法。該處理器用于提供計算和控制能力,支撐整個終端的運行。終端中的內存為存儲介質中的可執行文件的加固裝置的運行提供環境,網絡接口用于與服務器進行網絡通信,如發送應用程序安裝包的下載請求至服務器,接收服務器返回的應用程序安裝包等。該終端可以是手機、平板電腦或者個人數字助理。本領域技術人員可以理解,圖1A中示出的結構,僅僅是與本申請方案相關的部分結構的框圖,并不構成對本申請方案所應用于其上的終端的限定,具體的終端可以包括比圖中所示更多或更少的部件,或者組合某些部件,或者具有不同的部件布置。圖1B為一個實施例中服務器的內部結構示意圖。如圖1B所示,該服務器包括通過系統總線連接的處理器、存儲介質、內存和網絡接口。其中,該服務器的存儲介質存儲有操作系統、數據庫和可執行文件的加固裝置,數據庫中存儲有應用程序的安裝包,該可執行文件的加固裝置用于實現適用于服務器的一種可執行文件的加固方法。該服務器的處理器用于提供計算和控制能力,支撐整個服務器的運行。該服務器的內存為存儲介質中的可執行文件的加固裝置的運行提供環境。該服務器的網絡接口用于據以與外部的終端通過網絡連接通信,比如接收終端發送的應用程序安裝包的下載請求以及向終端返回應用程序的安裝包等。服務器可以用獨立的服務器或者是多個服務器組成的服務器集群來實現。本領域技術人員可以理解,圖1B中示出的結構,僅僅是與本申請方案相關的部分結構的框圖,并不構成對本申請方案所應用于其上的服務器的限定,具體的服務器可以包括比圖中所示更多或更少的部件,或者組合某些部件,或者具有不同的部件布置。因反編譯器對應用程序的安裝包中的代碼按照代碼順序依次進行識別后,從而將應用程序的可執行文件轉換成可閱讀代碼,然后再將反編譯生成的可閱讀代碼加入惡意指令或進行篡改等得到新的代碼,通過對新的代碼重新進行打包生成新的應用程序的安裝包,該新的應用程序的安裝包被下載在移動終端上,并安裝在移動終端上后,新的應用程序的安裝包運行于移動終端上,將竊取用戶的數據,導致應用程序的安裝包不安全和用戶數據也不安全。為此,通過在可執行文件的匯編代碼之前插入防止反編譯的代碼(如插入跳轉指令和模式切換指令),如此反編譯器將無法對應用程序的可執行文件的代碼進行反編譯,提高了應用程序代碼的安全性,防止竊取用戶數據,提高了用戶數據的安全性。加固是指對應用程序的安裝包進行一系列的保護工作,輸出另一個安裝包,防止應用程序被反編譯、惡意篡改、保護應用數據不被竊取及其它重打包可造成的惡意攻擊等。圖2為一個實施例中可執行文件的加固方法的流程圖。圖2中的可執行文件的加固方法運行于移動終端上。如圖2所示,一種可執行文件的加固方法,包括以下步驟:步驟202,獲取應用程序的可執行文件代碼。具體地,應用程序是指運行于移動終端上的應用軟件。該移動終端可為智能手機、平板電腦、個人數字助理等。應用程序的核心算法代碼幾乎都保存在可執行文件SO里,因此,獲取應用程序的可執行文件代碼。SO(SharedObject)文件為用戶層的動態鏈接庫。在移動終端上可安裝Android系統或IOS系統等。應用程序安裝在移動終端上,并運行于Android系統或IOS系統下。步驟204,將應用程序的可執行文件代碼編譯為匯編文件。具體地,將應用程序的可執行文件SO的C++代碼編本文檔來自技高網...

【技術保護點】
一種可執行文件的加固方法,包括以下步驟:獲取應用程序的可執行文件代碼;將應用程序的可執行文件代碼編譯為匯編文件;從所述匯編文件中獲取預先設定的需要保護的代碼所對應的匯編代碼;將防止反編譯代碼插入到所述匯編代碼之前。
【技術特征摘要】
1.一種可執行文件的加固方法,包括以下步驟:獲取應用程序的可執行文件代碼;將應用程序的可執行文件代碼編譯為匯編文件;從所述匯編文件中獲取預先設定的需要保護的代碼所對應的匯編代碼;將防止反編譯代碼插入到所述匯編代碼之前。2.根據權利要求1所述的方法,其特征在于,所述將防止反編譯代碼插入到所述匯編代碼之前的步驟包括:將模式切換指令插入到所述匯編代碼之前,以及將跳轉指令插入到所述模式切換指令之前。3.根據權利要求1或2所述的方法,其特征在于,所述預先設定的需要保護的代碼為全部的代碼或預先指定的部分代碼。4.根據權利要求2所述的方法,其特征在于,所述方法還包括:獲取可執行文件的運行指令;根據所述運行指令運行后,當運行到所述跳轉指令時跳過所述模式切換指令,直接運行模式切換指令后的匯編代碼。5.根據權利要求2所述的方法,其特征在于,所述方法還包括:獲取反編譯指令;根據所述反編譯指令依次反編譯所述跳轉指令、模式切換指令,并將所述模式切換指令后的匯編代碼識別為垃圾指令。6.一種可執行文件的加固裝置,其特征在于,包括:第一獲取模塊...
【專利技術屬性】
技術研發人員:蔣鑫,蔣寧波,王正,
申請(專利權)人:騰訊科技深圳有限公司,
類型:發明
國別省市:廣東;44
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。