日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

用于惡意軟件檢測(cè)的對(duì)應(yīng)用的通用拆包的制作方法

文檔序號(hào):9291694閱讀:561來源:國(guó)知局
用于惡意軟件檢測(cè)的對(duì)應(yīng)用的通用拆包的制作方法
【技術(shù)領(lǐng)域】
[0001] 本公開一般涉及用于拆包可執(zhí)行二進(jìn)制文件以使較少地依賴多個(gè)簽名(例如,針 對(duì)每一個(gè)打包方法的一個(gè)簽名)來標(biāo)識(shí)潛在的惡意軟件被保持在病毒簽名DAT文件中的系 統(tǒng)和方法。更具體而言,但不作為限制,本公開涉及:在對(duì)經(jīng)打包的可執(zhí)行文件進(jìn)行拆包時(shí) 使用硬件輔助的虛擬化來確定其原始的入口點(diǎn),并且在執(zhí)行該原始的入口點(diǎn)之前,一旦可 執(zhí)行文件到達(dá)其完全擴(kuò)展的形式就執(zhí)行對(duì)其的正式掃描。
【背景技術(shù)】
[0002] 當(dāng)代的應(yīng)用代碼的遞送通常涉及其通過打包(pack)過程進(jìn)行的壓縮。通過使用 打包過程,二進(jìn)制文件尺寸可以減小,并且多個(gè)文件可以被合并成一個(gè)文件。現(xiàn)代的打包過 程創(chuàng)建"自解壓(self-extracting)可執(zhí)行文件",可執(zhí)行其來對(duì)經(jīng)打包的代碼的內(nèi)容進(jìn)行 拆包(unpack)。也就是說,經(jīng)打包的代碼本身伴隨著可執(zhí)行代碼段,當(dāng)執(zhí)行該可執(zhí)行代碼段 時(shí),其導(dǎo)致使經(jīng)打包的代碼膨脹或解壓縮。相應(yīng)地,運(yùn)行自解壓可執(zhí)行文件會(huì)導(dǎo)致經(jīng)打包的 代碼可執(zhí)行文件被擴(kuò)展在磁盤上、存儲(chǔ)器中,或兩者中。
[0003] 當(dāng)對(duì)文件打包以創(chuàng)建自解壓可執(zhí)行文件時(shí),可以采用許多不同類型的壓縮算法以 及打包技術(shù)。這些技術(shù)中的某些是已知的并有文檔記載的,而其他技術(shù)不是這樣。對(duì)相同 文件采用不同的技術(shù)來創(chuàng)建自解壓可執(zhí)行文件將產(chǎn)生不同的文件一一由于不同的打包器 (packer)以及不同的壓縮算法所產(chǎn)生的不同結(jié)果,打包代碼(packing code)和經(jīng)打包的 代碼(packed code)兩者都可能不同。此外,如果使用未知的或文檔未記載的技術(shù)來將文 件打包為自解壓可執(zhí)行文件,則可能甚至難以確定打包代碼和經(jīng)打包的代碼之間的區(qū)別。
[0004] 自解壓可執(zhí)行文件的這些特性常常被惡意軟件開發(fā)者利用以對(duì)反病毒程序或惡 意軟件檢測(cè)程序隱藏惡意軟件。檢測(cè)惡意軟件的一種常見的方法是簽名掃描。利用簽名 掃描,對(duì)文件進(jìn)行掃描以發(fā)現(xiàn)已知或被懷疑與惡意軟件相關(guān)聯(lián)的位模式或簽名。當(dāng)文件中 的位模式匹配已知惡意軟件的簽名時(shí),則可將該文件標(biāo)識(shí)為惡意軟件或標(biāo)識(shí)為包含惡意軟 件。然而,惡意可執(zhí)行文件的簽名可以被輕松地更改以力圖誤導(dǎo)可執(zhí)行文件。當(dāng)惡意軟件 被打包時(shí),可能避開檢測(cè),因?yàn)榻?jīng)拆包的惡意軟件的已知簽名將不會(huì)匹配經(jīng)打包的惡意軟 件文件的任何位模式。
[0005] 為了嘗試克服隱藏惡意軟件的這些企圖,反病毒程序和惡意軟件檢測(cè)程序可以采 用多項(xiàng)技術(shù)。一項(xiàng)技術(shù)是在存儲(chǔ)器中提取經(jīng)打包的代碼而不執(zhí)行它,然后,嘗試對(duì)經(jīng)解壓縮 的二進(jìn)制文件掃描惡意軟件簽名。可以通過仿真經(jīng)打包代碼的執(zhí)行來提取該經(jīng)打包的代 碼,或者如果打包算法是已知的,則由反病毒程序來執(zhí)行提取。如果打包技術(shù)不是公知的或 未經(jīng)文檔記載,則在反病毒程序的控制下來提取經(jīng)打包的代碼可能無法是可能的。此外,許 多打包算法在檢測(cè)到正在由調(diào)試器或通過執(zhí)行仿真來執(zhí)行拆包之后,使用反仿真和反調(diào)試 技術(shù)來簡(jiǎn)單地終止拆包過程。對(duì)代碼流的諸部分標(biāo)記時(shí)間戳是可用于判斷代碼正在被仿真 的標(biāo)準(zhǔn)方法。類似地,標(biāo)識(shí)代碼正在被調(diào)試可以通過查詢操作系統(tǒng)來容易地確定。
[0006] 即使自解壓可執(zhí)行文件被允許執(zhí)行或被仿真,反病毒程序也可能在確定執(zhí)行的拆 包部分何時(shí)完成以及原始?jí)嚎s的可執(zhí)行文件何時(shí)開始執(zhí)行時(shí)存在困難。在自解壓可執(zhí)行文 件中,拆包代碼和經(jīng)打包的可執(zhí)行文件是相同的二進(jìn)制文件的部分,并且在存儲(chǔ)器中確定 這兩者之間的區(qū)別可能是困難的。
[0007] 克服隱藏惡意軟件的企圖的另一技術(shù)是一旦標(biāo)識(shí)了經(jīng)打包的惡意軟件的新簽名, 就將包含惡意軟件的已知的自解壓可執(zhí)行文件的簽名添加到反病毒簽名數(shù)據(jù)庫中。此技術(shù) 的弱點(diǎn)在于,可以通過稍微更改打包器代碼或打包技術(shù)從而產(chǎn)生不同的自解壓可執(zhí)行文件 并由此產(chǎn)生不同的簽名來輕易地避開該技術(shù)。將導(dǎo)致打包技術(shù)中的這些變化的簽名添加到 反病毒簽名數(shù)據(jù)庫中會(huì)導(dǎo)致增加簽名數(shù)據(jù)庫的尺寸。這導(dǎo)致簽名的數(shù)量以及維持簽名文件 的難度會(huì)相應(yīng)地增大的問題。此外,由于可按不同的順序,使用不同的打包算法來重復(fù)任意 次數(shù)的打包過程,從而創(chuàng)建將標(biāo)識(shí)并維持的更大數(shù)量的簽名,因此可能進(jìn)一步挫敗這些努 力。
【附圖說明】
[0008] 圖1是示出現(xiàn)有技術(shù)中已知的可執(zhí)行文件101和經(jīng)壓縮的自解壓可執(zhí)行文件 102 (可能具有更小的尺寸)的簡(jiǎn)化結(jié)構(gòu)的框圖100。
[0009] 圖2是示出能夠被配置成促進(jìn)一個(gè)或多個(gè)所公開的實(shí)施例的網(wǎng)絡(luò)架構(gòu)300的框 圖。
[0010] 圖3是示出具有可根據(jù)一個(gè)或多個(gè)所公開的實(shí)施例而配置的處理單元的計(jì)算機(jī) 的框圖。
[0011] 圖4是示出具有虛擬機(jī)監(jiān)視器、訪客操作系統(tǒng)和應(yīng)用的計(jì)算機(jī)系統(tǒng)的軟件棧的框 圖。
[0012] 圖5是示出根據(jù)一個(gè)或多個(gè)所公開的實(shí)施例的用于通用對(duì)可執(zhí)行文件拆包直到 不要求進(jìn)一步的拆包的技術(shù)的流程圖。
[0013] 圖6A是示出根據(jù)一個(gè)或多個(gè)所公開的實(shí)施例的用于在可執(zhí)行文件的通用拆包以 及執(zhí)行階段期間設(shè)置存儲(chǔ)器頁面許可并解決存儲(chǔ)器頁面許可違規(guī)以控制對(duì)存儲(chǔ)器的頁面 的存儲(chǔ)器訪問的技術(shù)的流程圖。
[0014] 圖6B示出狀態(tài)圖650,其示出了可執(zhí)行文件從其二進(jìn)制加載時(shí)刻到其執(zhí)行的終止 的受控執(zhí)行的狀態(tài)轉(zhuǎn)換。
[0015] 圖7是示出根據(jù)一個(gè)或多個(gè)所公開的實(shí)施例的在可執(zhí)行文件的通用拆包和執(zhí)行 階段期間所看到的頁面存儲(chǔ)器許可的各階段的框圖。
【具體實(shí)施方式】
[0016] 如上文所解釋的那樣,不同的打包器的可用性以及可對(duì)可執(zhí)行文件打包多次的事 實(shí)導(dǎo)致通過將經(jīng)打包的惡意可執(zhí)行文件與簽名進(jìn)行比較來標(biāo)識(shí)它是困難的。經(jīng)打包的惡意 可執(zhí)行文件的每一個(gè)經(jīng)標(biāo)識(shí)的變體都可能需要在反病毒程序的病毒簽名數(shù)據(jù)庫中的其自 身的簽名。這導(dǎo)致病毒簽名數(shù)據(jù)庫增長(zhǎng)并增加了維護(hù)成本和精力一一簽名文件更新必須被 傳遞到使用反病毒程序的最終用戶計(jì)算機(jī)并由其下載。此外,這些相同的因素也使確定何 時(shí)應(yīng)用簽名檢測(cè)算法復(fù)雜化。
[0017] 同樣如上文所解釋的那樣,嘗試對(duì)經(jīng)打包的文件拆包以暴露原始的可執(zhí)行文件也 呈現(xiàn)了諸多挑戰(zhàn)。由于拆包代碼與經(jīng)打包的可執(zhí)行文件組合,因此,標(biāo)識(shí)拆包代碼完成執(zhí)行 且原始的二進(jìn)制文件開始執(zhí)行的時(shí)刻可能是困難的。為了避免對(duì)原始的可執(zhí)行文件的執(zhí) 行,反病毒程序可嘗試對(duì)經(jīng)打包的可執(zhí)行文件拆包,而不是讓拆包器代碼執(zhí)行。為了做到這 一點(diǎn),反病毒程序必須配備有用于對(duì)可執(zhí)行文件打包的拆包算法。然而,當(dāng)使用了未知的或 未經(jīng)文檔記載的打包技術(shù)時(shí),反病毒程序可能不能對(duì)該軟件拆包。在這些類型的實(shí)例中,必 須通過包括拆包器算法來更新反病毒軟件。由于拆包器算法可能時(shí)復(fù)雜的,因此,反病毒軟 件開發(fā)者可能需要花費(fèi)相當(dāng)長(zhǎng)的時(shí)間(數(shù)月或數(shù)年)來包括用于新發(fā)現(xiàn)的打包算法的解決 方案。此外,甚至通過對(duì)打包器算法的輕微的更改就會(huì)規(guī)避這些努力或使這些努力更費(fèi)力。
[0018] 如下文中進(jìn)一步解釋的那樣,公開了通過使用用于以受控方式來通用對(duì)經(jīng)單次或 多次打包的應(yīng)用拆包以檢測(cè)惡意軟件的系統(tǒng)和方法來解決這些及其他問題的技術(shù)。對(duì)經(jīng)打 包的應(yīng)用通用地拆包允許獨(dú)立于對(duì)拆包算法的知曉并獨(dú)立于對(duì)拆包存根(Stub)的實(shí)現(xiàn)的 知曉就可對(duì)應(yīng)用拆包??梢允褂门c硬件輔助的虛擬化相關(guān)聯(lián)的功能來幫助以受控方式通用 地對(duì)經(jīng)打包的應(yīng)用拆包。這些技術(shù)可以減少或消除為單個(gè)類型的惡意軟件維持多個(gè)簽名的 需求。
[0019] 參考圖1,框圖100示出兩個(gè)文件(根據(jù)現(xiàn)有技術(shù)的可執(zhí)行文件以及該文件的經(jīng)打 包版本)之內(nèi)的內(nèi)部區(qū)段。通用可執(zhí)行文件101表示擴(kuò)展(即,運(yùn)行時(shí))形式的可執(zhí)行二 進(jìn)制文件。還示出了經(jīng)打包的可執(zhí)行文件102,其是通用可執(zhí)行文件101通過打包過程被 修改的結(jié)果。通過由開發(fā)者對(duì)源代碼、對(duì)象文件以及庫執(zhí)行編譯以及鏈接過程已創(chuàng)建了可 執(zhí)行文件101??蓤?zhí)行文件101可被組織成三個(gè)不同的區(qū)段。二進(jìn)制頭部105保存有關(guān)該 可執(zhí)行二進(jìn)制文件的其余部分(包括代碼段110和數(shù)據(jù)段115)的組織的信息。二進(jìn)制頭 部105還包括對(duì)于文件中所包括的所有區(qū)段的存儲(chǔ)器許可,當(dāng)將可執(zhí)行文件101加載到存 儲(chǔ)器中時(shí),由操作系統(tǒng)加載器實(shí)施這些存儲(chǔ)器許可。當(dāng)被加載到存儲(chǔ)器中時(shí),每一個(gè)區(qū)段都 開始于由操作系統(tǒng)定義的存儲(chǔ)器頁面的邊界處。來自文件的區(qū)段并不必須僅包含一個(gè)存儲(chǔ) 器頁面一一相反,每一個(gè)區(qū)段都可以橫跨整數(shù)數(shù)量的頁面。
[0020] 程序執(zhí)行從可執(zhí)行二進(jìn)制文件101中的代碼段中的一個(gè)區(qū)段的某位置開始(即, 運(yùn)行時(shí)),該位置通常被稱為程序的"入口點(diǎn)"。取決于編譯器/匯編器將"主"函數(shù)放在二 進(jìn)制文件中的什么位置,該入口點(diǎn)可在代碼段中的任何地方。入口點(diǎn)不需要在任何特定的 代碼段的開始處開始,這還意味著入口點(diǎn)不一定開始于任何特定的存儲(chǔ)器頁面的開始處。
[0021] 打包器可以經(jīng)由在本文中被稱為打包過程的過程來對(duì)可執(zhí)行文件101打包并壓 縮以創(chuàng)建經(jīng)打包的可執(zhí)行文件102。典型的打包器可以執(zhí)行復(fù)雜且唯一的操作,但是,如在 此所描述的那樣,當(dāng)從高層級(jí)來看時(shí),幾乎所有的打包器都執(zhí)行相對(duì)簡(jiǎn)單操作集。在創(chuàng)建經(jīng) 打包的可執(zhí)行文件102時(shí),打包器過程在這些區(qū)段上使用壓縮算法來壓縮可執(zhí)行文件101 的代碼段110和數(shù)據(jù)端115。這通常是主要為了減小可執(zhí)行文件的文件尺寸而執(zhí)行的,但 是,正如惡意軟件的情況那樣,它可以主要為了改變惡意軟件的簽名而執(zhí)行。一旦壓縮了這 些區(qū)段,可將它們置于經(jīng)打包的可執(zhí)行文件102中的新區(qū)段(經(jīng)打包的代碼和數(shù)據(jù)135)。 或者,打包器還可以將代碼和數(shù)據(jù)打包到其中包含了拆包代碼的相同區(qū)段中。如此,打包器 代碼段130和經(jīng)打包的代碼和數(shù)據(jù)135可以在分開的區(qū)段中或在一個(gè)區(qū)段中。
[0022] 打包過程通常還創(chuàng)建具有當(dāng)被執(zhí)行時(shí)在存儲(chǔ)器中將獲取的預(yù)定尺寸的虛擬代碼 段125。該尺寸通常被計(jì)算為大于或等于將在原始的可執(zhí)行文件101中發(fā)現(xiàn)的經(jīng)解壓縮的 經(jīng)打包代碼和數(shù)據(jù)135的尺寸。由于虛擬代碼段125是計(jì)劃用于存儲(chǔ)器中經(jīng)解壓縮的數(shù)據(jù) 的區(qū)段,因此,它不一定占據(jù)經(jīng)打包的可執(zhí)行文件102本身中的任何空間。相反,可將包含 經(jīng)打包的可執(zhí)行文件102的文件中的其尺寸反映為在對(duì)打包器代碼的解壓縮過程的執(zhí)行 之前在存儲(chǔ)器中所需的存儲(chǔ)器頁面的數(shù)量。由打包器轉(zhuǎn)換代碼在經(jīng)更改的二進(jìn)制頭部120 中指定虛擬代碼段125的細(xì)節(jié)。當(dāng)將由操作系統(tǒng)將二進(jìn)制可執(zhí)行文件加載到存儲(chǔ)器中時(shí), 通常還在二進(jìn)制頭部(例如,105或120)中指定特定區(qū)段將在存儲(chǔ)器中獲取的存儲(chǔ)器頁面 的數(shù)量。因此,即使盤上可執(zhí)行文件上的區(qū)段尺寸為零,該區(qū)段也可在由操作系統(tǒng)加載時(shí)在 存儲(chǔ)器中獲取一些空間。如此,打包過程通過壓縮代碼和數(shù)據(jù)已減小了整個(gè)二進(jìn)制文件的 尺寸(即,盤尺寸和下載尺寸),但是準(zhǔn)備了足夠的存儲(chǔ)器以便當(dāng)在執(zhí)行時(shí)拆包到存儲(chǔ)器時(shí) 保存經(jīng)解壓縮的代碼和數(shù)據(jù)。
當(dāng)前第1頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1