国产精品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>

      一種動態(tài)脫殼方法、裝置和設(shè)備的制造方法

      文檔序號:9810937閱讀:444來源:國知局
      一種動態(tài)脫殼方法、裝置和設(shè)備的制造方法【
      技術(shù)領(lǐng)域
      】[0001]本發(fā)明涉及計算機(jī)
      技術(shù)領(lǐng)域
      ,特別是涉及一種動態(tài)脫殼方法、一種動態(tài)脫殼裝置和一種動態(tài)脫殼設(shè)備。【
      背景技術(shù)
      】[0002]隨著智能技術(shù)的發(fā)展,出現(xiàn)了多種支持智能手機(jī)的系統(tǒng)。比如Android(安卓)系統(tǒng)。Android是一種以Linux為基礎(chǔ)的開放源碼操作系統(tǒng),主要使用于手機(jī)等移動終端。Android平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。[0003]隨著Android系統(tǒng)的市場占有率的增加,越來越多的開發(fā)者基于Android系統(tǒng)開發(fā)APP(Application,應(yīng)用),使用戶使用Android手機(jī)更方便。[0004]而且,出于安全或保密等因素的原因,越來越多的應(yīng)用會被加殼,其中的加殼可以理解為,利用特殊的算法,對應(yīng)用的dex文件(DalvikExecutable文件,Dalvik虛擬機(jī)可執(zhí)行文件)里的資源進(jìn)行壓縮,改變其原來的特征碼,隱藏一些字符串等等,使一些資源編輯軟件不能正常打開或者修改。對于加殼后的應(yīng)用,其中dex文件中包含的代碼不能全部可見。[0005]但是在實際應(yīng)用中,可能在應(yīng)用的dex文件中存在病毒等對系統(tǒng)有危害的代碼,若該應(yīng)用被加殼,則其dex文件被隱藏,從而其中的病毒可能很難被辨識?!?br/>發(fā)明內(nèi)容】[0006]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種動態(tài)脫殼方法和相應(yīng)的一種動態(tài)脫殼裝置。[0007]依據(jù)本發(fā)明的一個方面,提供了一種動態(tài)脫殼方法,包括:[0008]反射調(diào)用與宿主應(yīng)用程序具有相同包名或不同包名的作為宿主應(yīng)用程序附帶資源的安裝包,以加載該安裝包所實現(xiàn)的目標(biāo)應(yīng)用程序;[0009]由宿主應(yīng)用程序調(diào)用監(jiān)控模塊,對目標(biāo)應(yīng)用程序的活動進(jìn)行監(jiān)控;[0010]當(dāng)監(jiān)控到目標(biāo)應(yīng)用程序調(diào)用加載dex文件的函數(shù),則鉤取所述加載dex文件的函數(shù)以獲取dex文件彳目息;[00?1]根據(jù)所述dex文件信息對所述dex文件進(jìn)行修復(fù)。[0012]優(yōu)選地,所述當(dāng)監(jiān)控到目標(biāo)應(yīng)用程序調(diào)用加載dex文件的函數(shù),則鉤取所述加載dex文件的函數(shù)以獲取dex文件信息包括:[0013]當(dāng)監(jiān)控到目標(biāo)應(yīng)用程序調(diào)用OnAttach函數(shù),則鉤取所述OnAttach函數(shù)以獲取dex文件信息;和/或當(dāng)監(jiān)控到目標(biāo)應(yīng)用程序調(diào)用openDEXfile函數(shù),則鉤取所述openDEXfile函數(shù)以獲取dex文件彳目息。[0014]優(yōu)選地,所述鉤取所述OnAttach函數(shù)以獲取dex文件信息包括:[0015]鉤取OnAttach函數(shù),根據(jù)目標(biāo)應(yīng)用進(jìn)程傳輸給所述OnAttach函數(shù)的參數(shù),獲取類加載器;[0016]從所述類加載器獲取cookie信息;所述cookie信息包括dex緩存信息。[0017]優(yōu)選地,所述鉤取所述openDEXfile函數(shù)以獲取dex文件信息包括:[0018]鉤取openDEXfile函數(shù),根據(jù)目標(biāo)應(yīng)用進(jìn)程傳輸給所述openDEXfile函數(shù)的參數(shù)將dex文件信息加載到緩存中,并從所述緩存中獲取dex緩存信息。[0019]優(yōu)選地,根據(jù)所述dex文件信息對所述dex文件進(jìn)行修復(fù)包括:[0020]分析dex的破壞方式,并根據(jù)所述破壞方式采用相應(yīng)的修復(fù)方式對所述dex文件進(jìn)行修復(fù)。[0021]優(yōu)選地,所述破壞方式包括:損壞dex偏移值、破壞header、抽取code、打散結(jié)構(gòu)、添加亂碼。[0022]優(yōu)選地,當(dāng)所述破壞方式為損壞dex偏移值和/或破壞header時,根據(jù)所述破壞方式采用相應(yīng)的修復(fù)方式對所述dex文件進(jìn)行修復(fù)包括:[0023]根據(jù)所述header里面size信息重新計算偏移,并根據(jù)所述偏移獲取真實的數(shù)據(jù)。[0024]優(yōu)選地,當(dāng)所述破壞方式為抽取code時,根據(jù)所述破壞方式采用相應(yīng)的修復(fù)方式對所述dex文件進(jìn)行修復(fù)包括:[0025]遍歷每個類并在DVM虛擬機(jī)中實例化,并從所述DVM虛擬機(jī)中獲取真實的code數(shù)據(jù)。[0026]優(yōu)選地,當(dāng)所述破壞方式為添加亂碼時,根據(jù)所述破壞方式采用相應(yīng)的修復(fù)方式對所述dex文件進(jìn)行修復(fù)包括:[0027]刪除所述亂碼。[0028]優(yōu)選地,當(dāng)所述破壞方式為打散結(jié)構(gòu)時,根據(jù)所述破壞方式采用相應(yīng)的修復(fù)方式對所述dex文件進(jìn)行修復(fù)包括:[0029]根據(jù)指向不同內(nèi)存指向dex文件塊的指針,從各內(nèi)存中獲取dex文件塊;[0030]在同一個內(nèi)存中,將各dex文件塊拼接為一個dex文件。[0031]根據(jù)本發(fā)明的另一方面,提供了一種動態(tài)脫殼裝置,包括:[0032]反射調(diào)用模塊,適于反射調(diào)用與宿主應(yīng)用程序具有相同包名或不同包名的作為宿主應(yīng)用程序附帶資源的安裝包,以加載該安裝包所實現(xiàn)的目標(biāo)應(yīng)用程序;[0033]監(jiān)控模塊,適于由宿主應(yīng)用程序調(diào)用監(jiān)控模塊,對目標(biāo)應(yīng)用程序的活動進(jìn)行監(jiān)控;[0034]鉤取模塊,適于當(dāng)監(jiān)控到目標(biāo)應(yīng)用程序調(diào)用加載dex文件的函數(shù),則鉤取所述加載dex文件的函數(shù)以獲取dex文件信息;[0035]修復(fù)模塊,適于根據(jù)所述dex文件信息對所述dex文件進(jìn)行修復(fù)。[0036]優(yōu)選地,所述鉤取模塊,包括:[0037]第一鉤取子模塊,適于當(dāng)監(jiān)控到目標(biāo)應(yīng)用程序調(diào)用OnAttach函數(shù),則鉤取所述OnAttach函數(shù)以獲取dex文件信息;[0038]和/或,第二鉤取子模塊,適于當(dāng)監(jiān)控到目標(biāo)應(yīng)用程序調(diào)用openDEXfile函數(shù),則鉤取所述openDEXfi1e函數(shù)以獲取dex文件信息。[0039]優(yōu)選地,所述第一鉤取模塊,包括:[0040]類加載器獲取子模塊,適于鉤取OnAttach函數(shù),根據(jù)目標(biāo)應(yīng)用進(jìn)程傳輸給所述OnAttach函數(shù)的參數(shù),獲取類加載器;[0041]第一dex信息獲取子模塊,適于從所述類加載器獲取cookie信息;所述cookie信息包括dex緩存信息。[0042]優(yōu)選地,所述第二鉤取子模塊包括:[0043]第二dex信息獲取子模塊,適于鉤取openDEXfile函數(shù),根據(jù)目標(biāo)應(yīng)用進(jìn)程傳輸給所述openDEXfile函數(shù)的參數(shù)將dex文件信息加載到緩存中,并從所述緩存中獲取dex緩存信息。[0044]優(yōu)選地,所述修復(fù)模塊包括:[0045]修復(fù)子模塊,適于分析dex的破壞方式,并根據(jù)所述破壞方式采用相應(yīng)的修復(fù)方式對所述dex文件進(jìn)行修復(fù)。[0046]優(yōu)選地,所述破壞方式包括:損壞dex偏移值、破壞header、抽取code、打散結(jié)構(gòu)、添加亂碼。[0047]優(yōu)選地,當(dāng)所述破壞方式為損壞dex偏移值和/或破壞header時,所述修復(fù)子模塊包括:[0048]第一數(shù)據(jù)獲取子模塊,適于根據(jù)所述header里面size信息重新計算偏移,并根據(jù)所述偏移獲取真實的數(shù)據(jù)。[0049]優(yōu)選地,當(dāng)所述破壞方式為抽取code時,所述修復(fù)子模塊包括:[0050]第二數(shù)據(jù)獲取子模塊,適于遍歷每個類并在DVM虛擬機(jī)中實例化,并從所述DVM虛擬機(jī)中獲取真實的code數(shù)據(jù)。[0051]優(yōu)選地,當(dāng)所述破壞方式為添加亂碼時,所述修復(fù)子模塊包括:[0052]刪除子模塊,適于刪除所述亂碼。[0053]優(yōu)選地,當(dāng)所述破壞方式為打散結(jié)構(gòu)時,所述修復(fù)子模塊包括:[0054]dex文件塊獲取子模塊,適于根據(jù)指向不同內(nèi)存指向dex文件塊的指針,從各內(nèi)存中獲取dex文件塊;[0055]dex文件塊拼接子模塊,適于在同一個內(nèi)存中,將各dex文件塊拼接為一個dex文件。[0056]根據(jù)本發(fā)明的另一方面,提供了一種動態(tài)脫殼設(shè)備,包括:[0057]存儲器,加載有多條可執(zhí)行指令;[0058]處理器,執(zhí)行所述多條可執(zhí)行指令;所述多條可執(zhí)行指令包括執(zhí)行以下步驟的方法:[0059]反射調(diào)用與宿主應(yīng)用程序具有相同包名或不同包名的作為宿主應(yīng)用程序附帶資源的安裝包,以加載該安裝包所實現(xiàn)的目標(biāo)應(yīng)用程序;[0060]由宿主應(yīng)用程序調(diào)用監(jiān)控模塊,對目標(biāo)應(yīng)用程序的活動進(jìn)行監(jiān)控;[0061]當(dāng)監(jiān)控到目標(biāo)應(yīng)用程序調(diào)用加載dex文件的函數(shù),則鉤取所述加載dex文件的函數(shù)以獲取dex文件彳目息;[0062]根據(jù)所述dex文件信息對所述dex文件進(jìn)行修復(fù)。[0063]根據(jù)本發(fā)明的一種動態(tài)脫殼方法和裝置,可以反射調(diào)用與宿主應(yīng)用程序具有相同包名或不同包名的作為宿主應(yīng)用程序附帶資源的安裝包,以加載該安裝包所實現(xiàn)的目標(biāo)應(yīng)用程序;由宿主應(yīng)用程序調(diào)用監(jiān)控模塊,對目標(biāo)應(yīng)用程序的活動進(jìn)行監(jiān)控;當(dāng)監(jiān)控到目標(biāo)應(yīng)用程序調(diào)用加載dex文件的函數(shù),則鉤取所述加載dex文件的函數(shù)以獲取dex文件信息;根據(jù)所述dex文件信息對所述dex文件進(jìn)行修復(fù)。由此解決了帶病毒的應(yīng)用被加殼后,由于dex文件被隱藏,而導(dǎo)致很難解析dex文件,從而很難辨析病毒的問題,取得了可以在免Root的情況下對加殼的應(yīng)用進(jìn)行脫殼,從而可以還原隱藏的dex文件,為辨識病毒提供可操作的條件的有益效果。[0064]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】?!靖綀D說明】[0065]通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:[0066]圖1示出了根據(jù)本發(fā)明一個實施例的一種動態(tài)脫殼方法實施例的步驟流程圖;[0067]圖2示出了根據(jù)本發(fā)明一個實施例的一種動態(tài)脫殼方法實施例的步驟流程圖;[0068]圖3示出了根據(jù)本發(fā)明一個實施例的一種動態(tài)脫殼裝置實施例的結(jié)構(gòu)框圖;[0069]圖4示出了根據(jù)本發(fā)明一個實施例的一種動態(tài)脫殼裝置實施例的結(jié)構(gòu)框圖;[0070]圖5示出了根據(jù)本發(fā)明一個實施例的一種設(shè)備實施例的結(jié)構(gòu)框圖?!揪唧w實施方式】[0071]下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。[0072]實施例一[0073]參照圖1,示出了根據(jù)本發(fā)明一個實施例的一種動態(tài)脫殼方法實施例的步驟流程圖,具體可以包括如下步驟:[0074]本領(lǐng)域技術(shù)人員應(yīng)當(dāng)知曉,本發(fā)明實施例是基于免Root提權(quán)而提出的,然而,提權(quán)操作只是Android系統(tǒng)所實施的權(quán)限管理控制,本發(fā)明也當(dāng)然地適用于已經(jīng)Root提權(quán)的Android操作系統(tǒng)中。[0075]本發(fā)明實施例是基于沙箱原理而提出的,故而,本領(lǐng)域技術(shù)人員得以結(jié)合公知的沙箱實現(xiàn)原理來理解本發(fā)明的實施。沙箱的作用是為目標(biāo)應(yīng)用程序的提供相對封閉的運(yùn)行環(huán)境,使應(yīng)用程序?qū)ο到y(tǒng)的資源訪問,借助沙箱安全策略的應(yīng)用,而被限制在規(guī)定的范圍之內(nèi)。因而,本發(fā)明的實質(zhì)在于提供一種沙箱實例,從兩個方面來實現(xiàn),第一方面是提供構(gòu)造目標(biāo)應(yīng)用程序的解決方案,第二方面是提供與前者相應(yīng)的運(yùn)行控制方案。這兩個方面可以被集成到一個沙箱實現(xiàn)軟件中,利用其第一方面的實現(xiàn)對目標(biāo)應(yīng)用程序進(jìn)行加工,進(jìn)而利用其第二方面的實現(xiàn),為目標(biāo)應(yīng)用程序提供安全的沙箱運(yùn)行環(huán)境。
      當(dāng)前第1頁1 2 3 4 5 6 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1