国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      可執(zhí)行文件的加固方法和裝置與流程

      文檔序號(hào):12365190閱讀:225來源:國(guó)知局
      可執(zhí)行文件的加固方法和裝置與流程

      本發(fā)明涉及信息安全領(lǐng)域,特別是涉及一種可執(zhí)行文件的加固方法和裝置。



      背景技術(shù):

      隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,提供各種服務(wù)的應(yīng)用程序應(yīng)運(yùn)而生。將應(yīng)用程序安裝在移動(dòng)終端上,使用應(yīng)用程序即可享受相應(yīng)的服務(wù),例如打車軟件,將打車軟件安裝在移動(dòng)終端上,啟動(dòng)運(yùn)行打車軟件,輸入出發(fā)點(diǎn)和目的地生成叫車信息,發(fā)送該叫車信息,接收到該叫車信息的的士司機(jī)即可響應(yīng),進(jìn)行服務(wù)。

      然而,應(yīng)用程序安裝在移動(dòng)終端上,容易被反編譯工具直接讀取應(yīng)用程序安裝包里保存在libs目錄下的可執(zhí)行文件(如so文件),將其修改,重新打包,構(gòu)建出大量的山寨應(yīng)用,在修改時(shí)會(huì)植入惡意指令、廣告插件等,導(dǎo)致用戶的數(shù)據(jù)被竊取,用戶數(shù)據(jù)的安全性低。



      技術(shù)實(shí)現(xiàn)要素:

      基于此,有必要針對(duì)傳統(tǒng)的應(yīng)用程序易被修改植入惡意指令而導(dǎo)致用戶數(shù)據(jù)被竊取的問題,提供一種可執(zhí)行文件的加固方法,能防止應(yīng)用程序被植入惡意指令,防止用戶數(shù)據(jù)被竊取,提高用戶數(shù)據(jù)的安全性。

      此外,還有必要提供一種可執(zhí)行文件的加固裝置,能防止應(yīng)用程序被植入惡意指令,防止用戶數(shù)據(jù)被竊取,提高用戶數(shù)據(jù)的安全性。

      一種可執(zhí)行文件的加固方法,包括以下步驟:

      獲取應(yīng)用程序的可執(zhí)行文件代碼;

      將應(yīng)用程序的可執(zhí)行文件代碼編譯為匯編文件;

      從所述匯編文件中獲取預(yù)先設(shè)定的需要保護(hù)的代碼所對(duì)應(yīng)的匯編代碼;

      將防止反編譯代碼插入到所述匯編代碼之前。

      一種可執(zhí)行文件的加固裝置,包括:

      第一獲取模塊,用于獲取應(yīng)用程序的可執(zhí)行文件代碼;

      編譯模塊,用于將應(yīng)用程序的可執(zhí)行文件代碼編譯為匯編文件;

      第二獲取模塊,用于從所述匯編文件中獲取預(yù)先設(shè)定的需要保護(hù)的代碼所對(duì)應(yīng)的匯編代碼;

      插入模塊,用于將防止反編譯代碼插入到所述匯編代碼之前。

      上述可執(zhí)行文件的加固方法和裝置,通過將應(yīng)用程序的可執(zhí)行文件代碼編譯為匯編文件,將匯編文件中所需保護(hù)的代碼所對(duì)應(yīng)的匯編代碼,并將防止反編譯代碼插入到該匯編代碼前,反編譯器對(duì)應(yīng)用程序的可執(zhí)行文件進(jìn)行反編譯時(shí),使得反編譯器難以反編譯欲保護(hù)的代碼,提高應(yīng)用程序的安全性,防止應(yīng)用程序被植入惡意指令,以及防止惡意指令竊取用戶數(shù)據(jù),提高了用戶數(shù)據(jù)的安全性。

      此外,識(shí)別到模式切換指令后,對(duì)模式切換指令后的匯編代碼識(shí)別為垃圾指令,從而誤導(dǎo)反編譯器,提高了應(yīng)用程序的安全性,防止應(yīng)用程序被植入惡意指令,以及防止惡意指令竊取用戶數(shù)據(jù),提高了用戶數(shù)據(jù)的安全性,同時(shí)也不影響保護(hù)代碼的正常執(zhí)行。

      通過反編譯器識(shí)別模式切換指令后,將模式切換指令后的正常代碼識(shí)別為垃圾指令,能解決運(yùn)行時(shí)解密后內(nèi)存中存在原始的代碼,反編譯者從內(nèi)存中把代碼拷貝出來達(dá)到反編譯的目的的問題,以及在正常執(zhí)行代碼的過程中,不需解密大量數(shù)據(jù),降低了解密消耗,提高了運(yùn)行效率。

      附圖說明

      圖1A為一個(gè)實(shí)施例中終端的內(nèi)部結(jié)構(gòu)示意圖;

      圖1B為一個(gè)實(shí)施例中服務(wù)器的內(nèi)部結(jié)構(gòu)示意圖;

      圖2為一個(gè)實(shí)施例中可執(zhí)行文件的加固方法的流程圖;

      圖3為一個(gè)實(shí)施例中可執(zhí)行文件的加固方法的運(yùn)行原理示意圖;

      圖4為一個(gè)實(shí)施例中可執(zhí)行文件的加固裝置的內(nèi)部結(jié)構(gòu)框圖;

      圖5為另一個(gè)實(shí)施例中可執(zhí)行文件的加固裝置的內(nèi)部結(jié)構(gòu)框圖。

      具體實(shí)施方式

      為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

      可以理解,本發(fā)明所使用的術(shù)語“第一”、“第二”等可在本文中用于描述各種元件,但這些元件不受這些術(shù)語限制。這些術(shù)語僅用于將第一個(gè)元件與另一個(gè)元件區(qū)分。舉例來說,在不脫離本發(fā)明的范圍的情況下,可以將第一客戶端稱為第二客戶端,且類似地,可將第二客戶端稱為第一客戶端。第一客戶端和第二客戶端兩者都是客戶端,但其不是同一客戶端。

      圖1A為一個(gè)實(shí)施例中終端的內(nèi)部結(jié)構(gòu)示意圖。如圖1A所示,該終端包括通過系統(tǒng)總線連接的處理器、存儲(chǔ)介質(zhì)、內(nèi)存和網(wǎng)絡(luò)接口。其中,終端的存儲(chǔ)介質(zhì)存儲(chǔ)有操作系統(tǒng),還包括一種可執(zhí)行文件的加固裝置,該可執(zhí)行文件的加固裝置用于實(shí)現(xiàn)一種可執(zhí)行文件的加固方法。該處理器用于提供計(jì)算和控制能力,支撐整個(gè)終端的運(yùn)行。終端中的內(nèi)存為存儲(chǔ)介質(zhì)中的可執(zhí)行文件的加固裝置的運(yùn)行提供環(huán)境,網(wǎng)絡(luò)接口用于與服務(wù)器進(jìn)行網(wǎng)絡(luò)通信,如發(fā)送應(yīng)用程序安裝包的下載請(qǐng)求至服務(wù)器,接收服務(wù)器返回的應(yīng)用程序安裝包等。該終端可以是手機(jī)、平板電腦或者個(gè)人數(shù)字助理。本領(lǐng)域技術(shù)人員可以理解,圖1A中示出的結(jié)構(gòu),僅僅是與本申請(qǐng)方案相關(guān)的部分結(jié)構(gòu)的框圖,并不構(gòu)成對(duì)本申請(qǐng)方案所應(yīng)用于其上的終端的限定,具體的終端可以包括比圖中所示更多或更少的部件,或者組合某些部件,或者具有不同的部件布置。

      圖1B為一個(gè)實(shí)施例中服務(wù)器的內(nèi)部結(jié)構(gòu)示意圖。如圖1B所示,該服務(wù)器包括通過系統(tǒng)總線連接的處理器、存儲(chǔ)介質(zhì)、內(nèi)存和網(wǎng)絡(luò)接口。其中,該服務(wù)器的存儲(chǔ)介質(zhì)存儲(chǔ)有操作系統(tǒng)、數(shù)據(jù)庫(kù)和可執(zhí)行文件的加固裝置,數(shù)據(jù)庫(kù)中存儲(chǔ)有應(yīng)用程序的安裝包,該可執(zhí)行文件的加固裝置用于實(shí)現(xiàn)適用于服務(wù)器的一種可執(zhí)行文件的加固方法。該服務(wù)器的處理器用于提供計(jì)算和控制能力,支撐整個(gè)服務(wù)器的運(yùn)行。該服務(wù)器的內(nèi)存為存儲(chǔ)介質(zhì)中的可執(zhí)行文件的加固裝置的運(yùn)行提供環(huán)境。該服務(wù)器的網(wǎng)絡(luò)接口用于據(jù)以與外部的終端通過網(wǎng)絡(luò)連接通信, 比如接收終端發(fā)送的應(yīng)用程序安裝包的下載請(qǐng)求以及向終端返回應(yīng)用程序的安裝包等。服務(wù)器可以用獨(dú)立的服務(wù)器或者是多個(gè)服務(wù)器組成的服務(wù)器集群來實(shí)現(xiàn)。本領(lǐng)域技術(shù)人員可以理解,圖1B中示出的結(jié)構(gòu),僅僅是與本申請(qǐng)方案相關(guān)的部分結(jié)構(gòu)的框圖,并不構(gòu)成對(duì)本申請(qǐng)方案所應(yīng)用于其上的服務(wù)器的限定,具體的服務(wù)器可以包括比圖中所示更多或更少的部件,或者組合某些部件,或者具有不同的部件布置。

      因反編譯器對(duì)應(yīng)用程序的安裝包中的代碼按照代碼順序依次進(jìn)行識(shí)別后,從而將應(yīng)用程序的可執(zhí)行文件轉(zhuǎn)換成可閱讀代碼,然后再將反編譯生成的可閱讀代碼加入惡意指令或進(jìn)行篡改等得到新的代碼,通過對(duì)新的代碼重新進(jìn)行打包生成新的應(yīng)用程序的安裝包,該新的應(yīng)用程序的安裝包被下載在移動(dòng)終端上,并安裝在移動(dòng)終端上后,新的應(yīng)用程序的安裝包運(yùn)行于移動(dòng)終端上,將竊取用戶的數(shù)據(jù),導(dǎo)致應(yīng)用程序的安裝包不安全和用戶數(shù)據(jù)也不安全。為此,通過在可執(zhí)行文件的匯編代碼之前插入防止反編譯的代碼(如插入跳轉(zhuǎn)指令和模式切換指令),如此反編譯器將無法對(duì)應(yīng)用程序的可執(zhí)行文件的代碼進(jìn)行反編譯,提高了應(yīng)用程序代碼的安全性,防止竊取用戶數(shù)據(jù),提高了用戶數(shù)據(jù)的安全性。

      加固是指對(duì)應(yīng)用程序的安裝包進(jìn)行一系列的保護(hù)工作,輸出另一個(gè)安裝包,防止應(yīng)用程序被反編譯、惡意篡改、保護(hù)應(yīng)用數(shù)據(jù)不被竊取及其它重打包可造成的惡意攻擊等。

      圖2為一個(gè)實(shí)施例中可執(zhí)行文件的加固方法的流程圖。圖2中的可執(zhí)行文件的加固方法運(yùn)行于移動(dòng)終端上。如圖2所示,一種可執(zhí)行文件的加固方法,包括以下步驟:

      步驟202,獲取應(yīng)用程序的可執(zhí)行文件代碼。

      具體地,應(yīng)用程序是指運(yùn)行于移動(dòng)終端上的應(yīng)用軟件。該移動(dòng)終端可為智能手機(jī)、平板電腦、個(gè)人數(shù)字助理等。應(yīng)用程序的核心算法代碼幾乎都保存在可執(zhí)行文件SO里,因此,獲取應(yīng)用程序的可執(zhí)行文件代碼。SO(Shared Object)文件為用戶層的動(dòng)態(tài)鏈接庫(kù)。

      在移動(dòng)終端上可安裝Android系統(tǒng)或IOS系統(tǒng)等。應(yīng)用程序安裝在移動(dòng)終端上,并運(yùn)行于Android系統(tǒng)或IOS系統(tǒng)下。

      步驟204,將應(yīng)用程序的可執(zhí)行文件代碼編譯為匯編文件。

      具體地,將應(yīng)用程序的可執(zhí)行文件SO的C++代碼編譯為S匯編文件。

      步驟206,從該匯編文件中獲取預(yù)先設(shè)定的需要保護(hù)的代碼所對(duì)應(yīng)的匯編代碼。

      具體地,該預(yù)先設(shè)定的需要保護(hù)的代碼為全部的代碼或預(yù)先指定的部分代碼。

      在通常情況下,默認(rèn)要保護(hù)的代碼為應(yīng)用程序的可執(zhí)行文件中的全部代碼。也可由用戶預(yù)先指定保護(hù)那部分代碼。

      若要保護(hù)的代碼為應(yīng)用程序的可執(zhí)行文件中的全部代碼,則將匯編文件中所有的匯編代碼作為要保護(hù)的匯編代碼。

      若要保護(hù)的代碼為應(yīng)用程序的可執(zhí)行文件中的部分代碼,則需從匯編文件中選取預(yù)先設(shè)定的需要保護(hù)的代碼所對(duì)應(yīng)的匯編代碼。

      步驟208,將防止反編譯代碼插入到該匯編代碼之前。

      本實(shí)施例中,步驟208包括:將模式切換指令插入到該匯編代碼之前,以及將跳轉(zhuǎn)指令插入到該模式切換指令之前。

      具體地,在需要保護(hù)的匯編代碼的上一句代碼插入模式切換指令BX、BLX等,在模式切換指令上一句代碼再插入跳轉(zhuǎn)指令。

      上述可執(zhí)行文件的加固方法,通過將應(yīng)用程序的可執(zhí)行文件代碼編譯為匯編文件,將匯編文件中所需保護(hù)的代碼所對(duì)應(yīng)的匯編代碼,并將防止反編譯代碼插入到該匯編代碼前,反編譯器對(duì)應(yīng)用程序的可執(zhí)行文件進(jìn)行反編譯時(shí),使得反編譯器難以反編譯欲保護(hù)的代碼,提高應(yīng)用程序的安全性,防止應(yīng)用程序被植入惡意指令,以及防止惡意指令竊取用戶數(shù)據(jù),提高了用戶數(shù)據(jù)的安全性。識(shí)別到模式切換指令后,對(duì)模式切換指令后的匯編代碼識(shí)別為垃圾指令,從而誤導(dǎo)反編譯器,提高了應(yīng)用程序的安全性,防止應(yīng)用程序被植入惡意指令,以及防止惡意指令竊取用戶數(shù)據(jù),提高了用戶數(shù)據(jù)的安全性,同時(shí)也不影響保護(hù)代碼的正常執(zhí)行。

      此外,上述可執(zhí)行文件的加固方法將反編譯器識(shí)別模式切換指令后,將模式切換指令后的正常代碼識(shí)別為垃圾指令,能解決運(yùn)行時(shí)解密后內(nèi)存中存在原 始的代碼,反編譯者從內(nèi)存中把代碼拷貝出來達(dá)到反編譯的目的的問題,以及在正常執(zhí)行代碼的過程中,不需解密大量數(shù)據(jù),降低了解密消耗,提高了運(yùn)行效率。

      在一個(gè)實(shí)施例中,上述可執(zhí)行文件的加固方法還包括:獲取可執(zhí)行文件的運(yùn)行指令;根據(jù)該運(yùn)行指令運(yùn)行后,當(dāng)運(yùn)行到該跳轉(zhuǎn)指令時(shí)跳過該模式切換指令,直接運(yùn)行模式切換指令后的匯編代碼。

      具體地,獲取用戶點(diǎn)擊應(yīng)用程序,并運(yùn)行該應(yīng)用程序。應(yīng)用程序運(yùn)行后,依次讀取應(yīng)用程序的代碼進(jìn)行執(zhí)行,當(dāng)運(yùn)行到跳轉(zhuǎn)指令時(shí),跳過后面的模式切換指令,直接讀取模式切換指令后的匯編代碼,執(zhí)行該匯編代碼。

      應(yīng)用程序運(yùn)行時(shí)通過跳轉(zhuǎn)指令直接跳轉(zhuǎn)執(zhí)行模式切換后的匯編代碼,保證了應(yīng)用程序的正常運(yùn)行。

      在一個(gè)實(shí)施例中,上述可執(zhí)行文件的加固方法還包括:獲取反編譯指令;根據(jù)該反編譯指令依次反編譯該跳轉(zhuǎn)指令、模式切換指令,并將該模式切換指令后的匯編代碼識(shí)別為垃圾指令。

      具體地,反編譯器對(duì)應(yīng)用程序的代碼進(jìn)行反編譯時(shí),是依次對(duì)所有的代碼一條一條的讀取并進(jìn)行反編譯,反編譯器不會(huì)對(duì)跳轉(zhuǎn)指令做出反應(yīng),遇到模式切換指令就會(huì)把接下來的代碼作為模式切換后的指令識(shí)別,從而導(dǎo)致把正常代碼識(shí)別(即匯編代碼)為垃圾指令。

      反編譯器識(shí)別到模式切換指令后,對(duì)模式切換指令后的匯編代碼識(shí)別為垃圾指令,從而誤導(dǎo)反編譯器,提高了應(yīng)用程序的安全性,防止應(yīng)用程序被植入惡意指令,以及防止惡意指令竊取用戶數(shù)據(jù),提高了用戶數(shù)據(jù)的安全性。

      圖3為一個(gè)實(shí)施例中可執(zhí)行文件的加固方法的運(yùn)行原理示意圖。如圖3所示,可執(zhí)行文件運(yùn)行,當(dāng)執(zhí)行到跳轉(zhuǎn)指令時(shí)跳過模式切換指令,直接讀取模式切換指令后的正常代碼,IDA Pro反編譯識(shí)別可執(zhí)行文件代碼,識(shí)別到模式切換指令后,將正常代碼被識(shí)別為模式切換后的代碼,成為垃圾指令。IDA Pro是一款反匯編軟件,通過IDA視圖和交叉引用,可以理解程序邏輯和快速定位代碼片斷,以方便修改。

      需要說明的是,對(duì)于Android系統(tǒng),可利用可執(zhí)行文件SO的匯編arm的 thumb模式切換,以及不可執(zhí)行到的代碼片段,欺騙反編譯器對(duì)要保護(hù)代碼進(jìn)行模式識(shí)別,從而達(dá)到反編譯器難以反編譯要保護(hù)代碼的目的。

      圖4為一個(gè)實(shí)施例中可執(zhí)行文件的加固裝置的內(nèi)部結(jié)構(gòu)框圖。圖4中的可執(zhí)行文件的加固裝置運(yùn)行于移動(dòng)終端上。如圖4所示,一種可執(zhí)行文件的加固裝置,包括第一獲取模塊410、編譯模塊420、第二獲取模塊430和插入模塊440。

      第一獲取模塊410用于獲取應(yīng)用程序的可執(zhí)行文件代碼。

      具體地,應(yīng)用程序是指運(yùn)行于移動(dòng)終端上的應(yīng)用軟件。該移動(dòng)終端可為智能手機(jī)、平板電腦、個(gè)人數(shù)字助理等。應(yīng)用程序的核心算法代碼幾乎都保存在可執(zhí)行文件SO里,因此,獲取應(yīng)用程序的可執(zhí)行文件代碼。

      在移動(dòng)終端上可安裝Android系統(tǒng)或IOS系統(tǒng)等。應(yīng)用程序安裝在移動(dòng)終端上,并運(yùn)行于Android系統(tǒng)或IOS系統(tǒng)下。

      編譯模塊420用于將應(yīng)用程序的可執(zhí)行文件代碼編譯為匯編文件。

      具體地,應(yīng)用程序的可執(zhí)行文件SO的C++代碼編譯為S匯編文件。

      第二獲取模塊430用于從該匯編文件中獲取預(yù)先設(shè)定的需要保護(hù)的代碼所對(duì)應(yīng)的匯編代碼。

      具體地,該預(yù)先設(shè)定的需要保護(hù)的代碼為全部的代碼或預(yù)先指定的部分代碼。

      在通常情況下,默認(rèn)要保護(hù)的代碼為應(yīng)用程序的可執(zhí)行文件中的全部代碼。也可由用戶預(yù)先指定保護(hù)那部分代碼。

      若要保護(hù)的代碼為應(yīng)用程序的可執(zhí)行文件中的全部代碼,則將匯編文件中所有的匯編代碼作為要保護(hù)的匯編代碼。

      若要保護(hù)的代碼為應(yīng)用程序的可執(zhí)行文件中的部分代碼,則需從匯編文件中選取預(yù)先設(shè)定的需要保護(hù)的代碼所對(duì)應(yīng)的匯編代碼。

      插入模塊440用于將防止反編譯代碼插入到該匯編代碼之前。

      本實(shí)施例中,插入模塊440還用于將模式切換指令插入到該匯編代碼之前,以及將跳轉(zhuǎn)指令插入到該模式切換指令之前。

      具體地,在需要保護(hù)的匯編代碼的上一句代碼插入模式切換指令BX、BLX 等,在模式切換指令上一句代碼再插入跳轉(zhuǎn)指令。

      上述可執(zhí)行文件的加固裝置,通過將應(yīng)用程序的可執(zhí)行文件代碼編譯為匯編文件,將匯編文件中所需保護(hù)的代碼所對(duì)應(yīng)的匯編代碼,并將防止反編譯代碼插入到該匯編代碼前,反編譯器對(duì)應(yīng)用程序的可執(zhí)行文件進(jìn)行反編譯時(shí),使得反編譯器難以反編譯欲保護(hù)的代碼,提高應(yīng)用程序的安全性,防止應(yīng)用程序被植入惡意指令,以及防止惡意指令竊取用戶數(shù)據(jù),提高了用戶數(shù)據(jù)的安全性。

      識(shí)別到模式切換指令后,對(duì)模式切換指令后的匯編代碼識(shí)別為垃圾指令,從而誤導(dǎo)反編譯器,提高了應(yīng)用程序的安全性,防止應(yīng)用程序被植入惡意指令,以及防止惡意指令竊取用戶數(shù)據(jù),提高了用戶數(shù)據(jù)的安全性,同時(shí)也不影響保護(hù)代碼的正常執(zhí)行。

      此外,上述可執(zhí)行文件的加固裝置將反編譯器識(shí)別模式切換指令后,將模式切換指令后的正常代碼識(shí)別為垃圾指令,能解決運(yùn)行時(shí)解密后內(nèi)存中存在原始的代碼,反編譯者從內(nèi)存中把代碼拷貝出來達(dá)到反編譯的目的的問題,以及在正常執(zhí)行代碼的過程中,不需解密大量數(shù)據(jù),降低了解密消耗,提高了運(yùn)行效率。

      圖5為另一個(gè)實(shí)施例中可執(zhí)行文件的加固裝置的內(nèi)部結(jié)構(gòu)框圖。圖5中的可執(zhí)行文件的加固裝置運(yùn)行于移動(dòng)終端上。如圖5所示,一種可執(zhí)行文件的加固裝置,除了包括第一獲取模塊410、編譯模塊420、第二獲取模塊430和插入模塊440,還包括運(yùn)行指令獲取模塊450、執(zhí)行模塊460、反編譯指令獲取模塊470和反編譯模塊480。

      運(yùn)行指令獲取模塊450用于獲取可執(zhí)行文件的運(yùn)行指令。

      執(zhí)行模塊460用于根據(jù)該運(yùn)行指令運(yùn)行后,當(dāng)運(yùn)行到該跳轉(zhuǎn)指令時(shí)跳過該模式切換指令,直接運(yùn)行模式切換指令后的匯編代碼。

      具體地,獲取用戶點(diǎn)擊應(yīng)用程序,并運(yùn)行該應(yīng)用程序。應(yīng)用程序運(yùn)行后,依次讀取應(yīng)用程序的代碼進(jìn)行執(zhí)行,當(dāng)運(yùn)行到跳轉(zhuǎn)指令時(shí),跳過后面的模式切換指令,直接讀取模式切換指令后的匯編代碼,執(zhí)行該匯編代碼。

      應(yīng)用程序運(yùn)行時(shí)通過跳轉(zhuǎn)指令直接跳轉(zhuǎn)執(zhí)行模式切換后的匯編代碼,保證 了應(yīng)用程序的正常運(yùn)行。

      反編譯指令獲取模塊470用于獲取反編譯指令。

      反編譯模塊480用于根據(jù)該反編譯指令依次反編譯該跳轉(zhuǎn)指令、模式切換指令,并將該模式切換指令后的匯編代碼識(shí)別為垃圾指令。

      具體地,反編譯器對(duì)應(yīng)用程序的代碼進(jìn)行反編譯時(shí),是依次對(duì)所有的代碼一條一條的讀取并進(jìn)行反編譯,反編譯器不會(huì)對(duì)跳轉(zhuǎn)指令做出反應(yīng),遇到模式切換指令就會(huì)把接下來的代碼作為模式切換后的指令識(shí)別,從而導(dǎo)致把正常代碼識(shí)別(即匯編代碼)為垃圾指令。

      反編譯器識(shí)別到模式切換指令后,對(duì)模式切換指令后的匯編代碼識(shí)別為垃圾指令,從而誤導(dǎo)反編譯器,提高了應(yīng)用程序的安全性,防止應(yīng)用程序被植入惡意指令,以及防止惡意指令竊取用戶數(shù)據(jù),提高了用戶數(shù)據(jù)的安全性。

      本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一非易失性計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)等。

      以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。

      當(dāng)前第1頁(yè)1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1