亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于提高應(yīng)用仿真加速的效率的系統(tǒng)和方法

文檔序號(hào):6522457閱讀:233來(lái)源:國(guó)知局
用于提高應(yīng)用仿真加速的效率的系統(tǒng)和方法
【專(zhuān)利摘要】用于提高應(yīng)用仿真加速的效率的系統(tǒng)和方法。用于分析軟件代碼的經(jīng)改進(jìn)的仿真器以及相關(guān)聯(lián)的方法。仿真器包括虛擬執(zhí)行環(huán)境和硬件加速器,在虛擬執(zhí)行環(huán)境中在軟件代碼的第一部分的仿真期間表示一系列虛擬處理狀態(tài),硬件加速器實(shí)施計(jì)算硬件的初始化以在虛擬執(zhí)行環(huán)境中直接執(zhí)行處于調(diào)查之下的軟件代碼的第二部分而不用對(duì)其進(jìn)行仿真。效率評(píng)估模塊確定對(duì)處于調(diào)查之下的軟件代碼的第二部分的不用對(duì)其進(jìn)行仿真的執(zhí)行加以實(shí)施的效率的測(cè)度,并且加速?zèng)Q策模塊基于所確定的效率的測(cè)度來(lái)實(shí)施對(duì)要由硬件加速器模塊直接執(zhí)行的處于調(diào)查之下的軟件代碼的第二部分的選擇。
【專(zhuān)利說(shuō)明】用于提高應(yīng)用仿真加速的效率的系統(tǒng)和方法
[0001]優(yōu)先權(quán)聲明
[0002]本申請(qǐng)要求于2012年12月25日提交的2012156445號(hào)俄羅斯聯(lián)邦專(zhuān)利申請(qǐng)的優(yōu)先權(quán),通過(guò)援弓I的方式并入本文。
【技術(shù)領(lǐng)域】
[0003]本發(fā)明總地涉及信息處理和安全技術(shù),并且,更具體地,涉及受到功能分析的軟件代碼的自動(dòng)的選擇性仿真。
【背景技術(shù)】
[0004]如今的程序,包括惡意程序,其結(jié)構(gòu)是以下指令的復(fù)雜集合:遷移、過(guò)程調(diào)用、循環(huán)等。應(yīng)注意的是由于高級(jí)編程語(yǔ)言的日益普及以及計(jì)算機(jī)設(shè)備和操作系統(tǒng)的復(fù)雜,可執(zhí)行文件的復(fù)雜性持續(xù)增加。惡意應(yīng)用可實(shí)施若干具體動(dòng)作,諸如:盜竊密碼和其他機(jī)密用戶數(shù)據(jù)、連接計(jì)算機(jī)到機(jī)器人網(wǎng)絡(luò)(bot network)以實(shí)行拒絕服務(wù)(DoS)攻擊或發(fā)送垃圾郵件、干擾系統(tǒng)的正常運(yùn)行以通過(guò)許諾恢復(fù)可操作性來(lái)從用戶敲詐錢(qián)財(cái)(例如勒索軟件)、以及從用戶的觀點(diǎn)看來(lái)是負(fù)面的和不良的其他動(dòng)作。
[0005]用于核查潛在惡意程序的已知方法之一是基于作為反病毒應(yīng)用的一部分所應(yīng)用的仿真器的使用來(lái)分析程序行為。存在各種程序仿真的方法。在一個(gè)方法中,仿真器經(jīng)編程以通過(guò)創(chuàng)建處理器的寄存器、存儲(chǔ)器和處理器指令集的虛擬拷貝來(lái)模仿實(shí)際處理器、存儲(chǔ)器和其他設(shè)備。這樣,程序指令不在實(shí)際處理器上、而是在其虛擬表示上執(zhí)行,其中系統(tǒng)API函數(shù)調(diào)用被攔截在仿真器中并被模仿,例如,所期望的回復(fù)被發(fā)送回所仿真的應(yīng)用。
[0006]在仿真期間,處理器指令的執(zhí)行一般由指令的動(dòng)態(tài)轉(zhuǎn)譯所實(shí)行。動(dòng)態(tài)轉(zhuǎn)譯涉及將指令從初始集合(即要被仿真的原始指令)轉(zhuǎn)譯成要使用仿真器來(lái)執(zhí)行的指令的專(zhuān)用集合。下文使用一個(gè)指令的轉(zhuǎn)譯作為示例來(lái)討論動(dòng)態(tài)轉(zhuǎn)譯:
[0007]初始指令:
[0008]mov eax, [edi]
[0009]所轉(zhuǎn)譯的偽代碼涉及下列步驟的集合:
[0010]1.讀取 edi
[0011]2.以在第一操作中所接收的地址讀取存儲(chǔ)器
[0012]3.在第二操作中將從存儲(chǔ)器所讀取的值寫(xiě)到eax
[0013]另外,這種偽代碼的每個(gè)步驟將包含一定數(shù)目的機(jī)器指令;結(jié)果,一個(gè)初始指令當(dāng)被轉(zhuǎn)譯時(shí),造成處理器中的數(shù)十個(gè)或甚至數(shù)百個(gè)指令的執(zhí)行。應(yīng)注意的是,一旦被轉(zhuǎn)譯,則代碼不需要在另一個(gè)執(zhí)行處再次被轉(zhuǎn)譯,這是因?yàn)榇a轉(zhuǎn)譯操作已經(jīng)執(zhí)行過(guò)。考慮到多數(shù)代碼在循環(huán)內(nèi)執(zhí)行,動(dòng)態(tài)二進(jìn)制轉(zhuǎn)譯是公知的和普遍存在的技術(shù)。
[0014]為反制程序代碼仿真,惡意程序的創(chuàng)造者使用各種方法,其傾向于利用仿真進(jìn)程的限制以及對(duì)反病毒解決方案中的仿真器的設(shè)計(jì)的限制。這些方法之一涉及添加大量指令到程序代碼,其不承載惡意組件但需要過(guò)多的時(shí)間用于仿真。考慮到為程序代碼仿真所分配的時(shí)間受到限制以避免用戶不滿(該時(shí)間通??梢允菙?shù)秒)的事實(shí),在惡意代碼的執(zhí)行之前仿真進(jìn)程可能停止。
[0015]用于反制這種方法的技術(shù)之一在7,603,713號(hào)美國(guó)專(zhuān)利中描述,其公開(kāi)通過(guò)援引的方式并入本文。其操作包括在實(shí)際處理器上、而不是在利用動(dòng)態(tài)二進(jìn)制轉(zhuǎn)譯的仿真器中執(zhí)行若干指令,從而顯著加速未知應(yīng)用的仿真。
[0016]雖然該方法對(duì)降低執(zhí)行大量指令所需的時(shí)間可以相當(dāng)有益,但仍有某些缺點(diǎn)。一個(gè)這種缺點(diǎn)與以下的事實(shí)有關(guān),即例如當(dāng)異常時(shí),例如不得不響應(yīng)API函數(shù)調(diào)用,則使用實(shí)際處理器的指令的所加速的執(zhí)行停止??紤]到仿真加速器需要初始化,其傾向于是消耗資源的進(jìn)程,因此在某些在不得不將執(zhí)行返回到通常的仿真器之前加速器僅執(zhí)行幾個(gè)指令的情況下,加速器可能僅得到邊際收益,或甚至產(chǎn)生相反效果。
[0017]因此,存在著對(duì)提高仿真加速的效率的有效解決方案的需求。

【發(fā)明內(nèi)容】

[0018]本發(fā)明的一個(gè)方面針對(duì)用于利用包括計(jì)算硬件和數(shù)據(jù)存儲(chǔ)的計(jì)算機(jī)系統(tǒng)來(lái)仿真處于調(diào)查之下的軟件代碼的方法,所述計(jì)算硬件包括至少一個(gè)處理器。根據(jù)該方法,執(zhí)行虛擬執(zhí)行環(huán)境,在虛擬執(zhí)行環(huán)境中處于調(diào)查之下的軟件代碼的第一部分被仿真并且其中在該第一部分的仿真期間表示一系列虛擬處理狀態(tài)。作為示例,虛擬執(zhí)行環(huán)境可利用動(dòng)態(tài)二進(jìn)制轉(zhuǎn)譯。
[0019]執(zhí)行軟件代碼的第二部分而不用對(duì)其進(jìn)行仿真。例如,可在至少一個(gè)處理器上執(zhí)行第二部分而不用動(dòng)態(tài)二進(jìn)制轉(zhuǎn)譯。
[0020]在不用進(jìn)行仿真地執(zhí)行軟件代碼的第二部分之前,根據(jù)在軟件代碼的第二部分前的系列虛擬處理狀態(tài)之一來(lái)初始化計(jì)算硬件。針對(duì)軟件代碼的第二部分的不用進(jìn)行仿真的執(zhí)行來(lái)確定效率的測(cè)度?;谛实臏y(cè)度與效率標(biāo)準(zhǔn)的比較來(lái)確定軟件代碼的第二部分的不用進(jìn)行仿真的執(zhí)行的適宜性。這些動(dòng)作由處于程序控制之下操作的計(jì)算硬件所實(shí)行。
[0021]在本發(fā)明的另一方面中,用于檢測(cè)處于調(diào)查之下的軟件代碼中的惡意軟件的安全布置包括計(jì)算硬件和數(shù)據(jù)存儲(chǔ),該計(jì)算硬件包括至少一個(gè)處理器,該數(shù)據(jù)存儲(chǔ)包含當(dāng)執(zhí)行時(shí)使計(jì)算硬件建立仿真器系統(tǒng)的指令。仿真器系統(tǒng)包括虛擬執(zhí)行環(huán)境以及硬件加速器模塊,在虛擬執(zhí)行環(huán)境中在軟件代碼的第一部分的仿真期間表示一系列虛擬處理狀態(tài),所述硬件加速器模塊實(shí)施計(jì)算硬件的初始化以在虛擬執(zhí)行環(huán)境中直接執(zhí)行處于調(diào)查之下的軟件代碼的第二部分而不用對(duì)其進(jìn)行仿真。系統(tǒng)進(jìn)一步包括效率評(píng)估模塊以及加速?zèng)Q策模塊,所述效率評(píng)估模塊確定對(duì)處于調(diào)查之下的軟件代碼的第二部分的不用對(duì)其進(jìn)行仿真的執(zhí)行加以實(shí)施的效率的測(cè)度,所述加速?zèng)Q策模塊基于所確定的效率的測(cè)度來(lái)實(shí)施對(duì)要由硬件加速器模塊直接執(zhí)行的處于調(diào)查之下的軟件代碼的第二部分的選擇。
【專(zhuān)利附圖】

【附圖說(shuō)明】
[0022]結(jié)合附圖參考本發(fā)明的各種實(shí)施例的以下詳細(xì)描述可更完整地理解本發(fā)明,其中:
[0023]圖1是示出由基本塊所表示的典型的應(yīng)用執(zhí)行序列的示例的圖。
[0024]圖2是示出對(duì)程序仿真的基于硬件的加速的已知系統(tǒng)的框圖。[0025]圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、示出用于加速仿真的改進(jìn)系統(tǒng)的框圖。
[0026]圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、示出用于加速仿真的方法的流程圖。
[0027]圖5是示出通用計(jì)算機(jī)系統(tǒng)的示例的框圖,在該計(jì)算機(jī)系統(tǒng)上可實(shí)行本發(fā)明的各方面。
[0028]雖然本發(fā)明可修正為各種修改和替代形式,但其細(xì)節(jié)已在圖中通過(guò)示例的方式示出,并將進(jìn)行詳細(xì)描述。然而,應(yīng)予以理解的是,不旨在將本發(fā)明限于所描述的特定實(shí)施例。相反,旨在覆蓋落入由附加權(quán)利要求所定義的本發(fā)明的精神和范圍內(nèi)的所有修改、等同物以及替代物。
【具體實(shí)施方式】
[0029]圖1是示出由基本塊所表示的典型的應(yīng)用執(zhí)行序列的示例的圖,即所連續(xù)執(zhí)行直到遭遇控制的轉(zhuǎn)移為止的機(jī)器指令的序列。在該示例中,基本塊描繪為包含指令的矩形,并由有條件和無(wú)條件兩種遷移所鏈接。在匯編語(yǔ)言中,指令可由命令所表示,如M0V、ADD、LEA以及其他;指令JZ或JNA可以視為有條件遷移的示例;相反,JMP可以視為無(wú)條件遷移指令的示例。重要的是注意多數(shù)代碼不止執(zhí)行一次而是數(shù)次;這是由于代碼的執(zhí)行大多涉及循環(huán)和子例程的執(zhí)行的事實(shí)。這尤其與時(shí)常使用代碼壓縮技術(shù)的惡意應(yīng)用有關(guān),該代碼壓縮技術(shù)諸如例如在 SaumyaDebray 等人的 “Compiler Techniques for Code Compaction” 中所描述的那些技術(shù),其通過(guò)援引的方式并入本文。這種經(jīng)壓縮的代碼在可被執(zhí)行之前被解包,這要求大量的循環(huán)操作。
[0030]圖2示出用于加速可執(zhí)行程序的指令的執(zhí)行的已知系統(tǒng),諸如在7,603, 713號(hào)美國(guó)專(zhuān)利中所描述的系統(tǒng),其公開(kāi)通過(guò)援引的方式并入本文。為達(dá)到進(jìn)程230(其在對(duì)未知的可執(zhí)行文件205的仿真期間從該未知的可執(zhí)行文件205被創(chuàng)建)在加速器220中的加速,仿真器270里的處理器的虛擬拷貝的所有寄存器的條件被直接發(fā)送到計(jì)算機(jī)系統(tǒng)210的主機(jī)。加速器220自身是隔離的環(huán)境,其中放置進(jìn)程230的上下文(例如進(jìn)程的虛擬地址空間、執(zhí)行流、諸如文件或信號(hào)量的資源的開(kāi)放描述符等)用于主機(jī)210內(nèi)的后續(xù)執(zhí)行,以正確地表示在實(shí)際進(jìn)程的執(zhí)行中發(fā)生了什么。在一段時(shí)間里,進(jìn)程230的指令在實(shí)際處理器上執(zhí)行直到發(fā)生異常為止,在該處控制被返回到仿真器270。這種異常的示例包括RDTSC (返回時(shí)間戳計(jì)數(shù)器值)指令的執(zhí)行、或重新調(diào)頁(yè)(repaging)。當(dāng)這種異常中的任何一個(gè)發(fā)生時(shí),控制被轉(zhuǎn)移回到仿真器270。一些指令,諸如特許指令或RDTSC,以通常的方式來(lái)仿真即不使用加速器220。特許指令是對(duì)外圍設(shè)備的輸入/輸出、控制寄存器的加載和保存、任務(wù)切換標(biāo)記的清理等的操作。
[0031]合法性或進(jìn)程的分析在仿真器270中開(kāi)始,其中前N個(gè)指令被處理。N是由專(zhuān)家所挑選的驗(yàn)證參數(shù)。該數(shù)可近似表示從100到10000個(gè)指令。在該情況下,啟發(fā)式分析器檢查正在執(zhí)行的進(jìn)程代碼與已知惡意應(yīng)用的行為模式的類(lèi)似性。這通常在每個(gè)指令、指令組之后進(jìn)行,或一旦完成執(zhí)行便進(jìn)行。該比較響應(yīng)于對(duì)由仿真器所創(chuàng)建的進(jìn)程的執(zhí)行(或更精確地,執(zhí)行的仿真)的執(zhí)行報(bào)告而發(fā)生。基于執(zhí)行報(bào)告,進(jìn)程根據(jù)其已做出的動(dòng)作被分類(lèi),其中它被視為或者是安全的或者是惡意的。
[0032]如果前N個(gè)指令未檢測(cè)到任何危險(xiǎn)跡象,則仿真器發(fā)送進(jìn)程到加速器220。為了讓加速器正確地實(shí)行其功能,所仿真的系統(tǒng)的虛擬處理狀態(tài)(例如寄存器中的數(shù)據(jù)、關(guān)鍵存儲(chǔ)器位置等)被加載到加速器中使得執(zhí)行可繼續(xù)進(jìn)行而不丟失上下文。此后,進(jìn)程的執(zhí)行以實(shí)際處理器的操作速度繼續(xù)進(jìn)行。
[0033]然而,如上所述,在下面的情況中,加速器的效率可能是低的:在其消耗資源的初始化之后,其在實(shí)際處理器上僅執(zhí)行幾個(gè)指令,接著發(fā)生異常一例如API函數(shù)的排除(exclusion)或調(diào)用,其將使所加速的指令處理被返回到標(biāo)準(zhǔn)仿真器。因此,對(duì)于仿真的后續(xù)加速,仿真器將需要重新初始化,其消耗相當(dāng)多的處理器循環(huán)并表現(xiàn)出仿真中的時(shí)間延遲,在其期間沒(méi)有實(shí)際仿真發(fā)生。
[0034]根據(jù)本發(fā)明的一類(lèi)實(shí)施例,上述仿真和加速進(jìn)程得到改進(jìn)。圖3是示出根據(jù)一個(gè)實(shí)施例的仿真和仿真加速系統(tǒng)的框圖。在該示例性系統(tǒng)中,改進(jìn)的仿真器370包括動(dòng)態(tài)轉(zhuǎn)譯模塊310和效率評(píng)估模塊320。
[0035]本文所使用的術(shù)語(yǔ)“模塊”意思是使用硬件或作為硬件和軟件的組合所實(shí)現(xiàn)的現(xiàn)實(shí)中的設(shè)備、部件或部件的組合體,所述硬件諸如例如通過(guò)專(zhuān)用集成電路(ASIC)或現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA),所述硬件和軟件的組合諸如通過(guò)微處理器系統(tǒng)和使模塊適合實(shí)現(xiàn)特定功能性的程序指令集,該程序指令集(當(dāng)正被執(zhí)行時(shí))將微處理器系統(tǒng)轉(zhuǎn)變?yōu)閷?zhuān)用設(shè)備。模塊還可實(shí)現(xiàn)為兩者的組合,某些功能單獨(dú)由硬件所促進(jìn),以及其他功能由軟件和硬件的組合所促進(jìn)。在某些實(shí)現(xiàn)方案中,模塊的至少一部分,以及在一些情況下模塊的全部,可在執(zhí)行操作系統(tǒng)、系統(tǒng)程序、以及應(yīng)用程序的一個(gè)或多個(gè)計(jì)算機(jī)(例如集群節(jié)點(diǎn))的處理器上執(zhí)行,同時(shí)在適當(dāng)情況下還使用多任務(wù)、多線程、分布式(例如云)處理、或其他這種技術(shù)來(lái)實(shí)現(xiàn)模塊。因此,每個(gè)模塊可以以多種適宜的配置實(shí)現(xiàn),并且一般不應(yīng)限于本文所例示的任何特定實(shí)現(xiàn)方案,除非特別指出這種限制。
[0036]在一個(gè)實(shí)施例中,動(dòng)態(tài)轉(zhuǎn)譯模塊310被編程或另外配置為實(shí)施未知文件205的代碼的動(dòng)態(tài)二進(jìn)制轉(zhuǎn)譯,這之后所轉(zhuǎn)譯的代碼將保存在存儲(chǔ)器中用于后續(xù)調(diào)用。效率評(píng)估模塊320被編程或另外配置為評(píng)估加速器220已在工作的效率如何。在一個(gè)實(shí)施例中,根據(jù)公式E=N/K評(píng)估效率E,其中N表示為使用加速器220處理指令所花費(fèi)的處理器循環(huán)數(shù),并且K表示將仿真進(jìn)程從仿真器370轉(zhuǎn)移到加速器220所需的已知的或預(yù)定的處理器循環(huán)數(shù)。
[0037]根據(jù)該實(shí)施例,由效率評(píng)估模塊320基于E的值做出決策。例如,如果E小于1或僅稍大于1,那么加速器220的操作視為低效率。在一個(gè)示例中,依照E顯著大于1而定義為足夠高效率,即加速器220的使用由其已處理過(guò)的大量指令證明為合理的。
[0038]在各種這樣的實(shí)施例中,與值E相比較的閾值被定義。例如,閾值可以設(shè)置為1.5、
2、3、5、10等。根據(jù)一個(gè)實(shí)施例該閾值值可以是固定量。例如,其可基于與直接執(zhí)行未轉(zhuǎn)譯的指令所需的處理器循環(huán)數(shù)相比較的、實(shí)施指令的動(dòng)態(tài)二進(jìn)制轉(zhuǎn)譯以及實(shí)施那些所翻譯的指令的執(zhí)行所需的處理器循環(huán)的相對(duì)量。
[0039]在相關(guān)實(shí)施例中,閾值是動(dòng)態(tài)可調(diào)整的。例如,在一個(gè)方法中,閾值基于某些所定義的操作條件或系統(tǒng)配置而被自動(dòng)地調(diào)整。例如,可考慮附加的處理器核心的可用性、處理器速度、前端總線速度、當(dāng)前工作量、正被實(shí)行的其他進(jìn)程的性質(zhì)及其相對(duì)優(yōu)先級(jí)、或其任何組合。
[0040]在其他實(shí)施例中,效率的測(cè)度可根據(jù)不同的公式或關(guān)系來(lái)定義。更一般地,效率的測(cè)度可適宜地基于喚起(invoke)加速器所要求的處理程度或時(shí)間、并將該時(shí)間或處理程度與和對(duì)正在討論的代碼的一部分進(jìn)行加速相關(guān)聯(lián)的時(shí)間或處理工作加以關(guān)聯(lián)。因此,在一個(gè)實(shí)施例中,根據(jù)基于對(duì)代碼的一部分的執(zhí)行加以實(shí)施的計(jì)算負(fù)載與對(duì)加速器的初始化加以實(shí)施的計(jì)算負(fù)載相比較所定義的效率標(biāo)準(zhǔn),來(lái)確定代碼的該部分的不用進(jìn)行仿真(即使用加速器)的執(zhí)行的適宜性。
[0041]在一個(gè)實(shí)施例中,效率評(píng)估模塊320存儲(chǔ)達(dá)到足夠的加速器效率、即E的值超過(guò)閾值的基本塊和/或所轉(zhuǎn)譯的指令。同樣,在相關(guān)實(shí)施例中,存儲(chǔ)與低E值相對(duì)應(yīng)的基本塊。
[0042]動(dòng)態(tài)轉(zhuǎn)譯模塊310被編程或另外配置為實(shí)施與效率E不足夠高并因此不值得使用加速器的基本塊相對(duì)應(yīng)的未知文件205的那些代碼指令的動(dòng)態(tài)轉(zhuǎn)譯。
[0043]圖4是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的、用于選擇性地應(yīng)用仿真的加速的方法的流程圖。在410,提供未知文件用于仿真,并且在420,使用動(dòng)態(tài)轉(zhuǎn)譯模塊310開(kāi)始文件指令的動(dòng)態(tài)轉(zhuǎn)譯。隨著指令(在420已被轉(zhuǎn)譯)的仿真在430繼續(xù)進(jìn)行,在某個(gè)階段(例如在440)加速器啟動(dòng)條件得到滿足。在第一實(shí)例中,這種啟動(dòng)條件可以是某個(gè)數(shù)目的指令(例如,數(shù)目可以從100到10000個(gè)指令變化)的仿真的完成,并且如果對(duì)應(yīng)于那些指令未檢測(cè)到可疑活動(dòng),那么在450喚起加速器220以加速仿真進(jìn)程。指令由加速器220執(zhí)行直到發(fā)生異常為止,例如API函數(shù)調(diào)用,其將導(dǎo)致返回到仿真器370中的指令的處理。
[0044]其后,在460,加速器220的操作的效率由效率評(píng)估模塊320所評(píng)估,并且在470改變用于喚起加速器220的其啟動(dòng)的標(biāo)準(zhǔn)。在各種實(shí)施例中,用于加速器220的喚起的標(biāo)準(zhǔn)的改變涉及例如:
[0045].指定可使用加速器220來(lái)執(zhí)行的某些基本塊;或者
[0046].指定仿真進(jìn)程必須從其開(kāi)始的某些指令。
[0047]有利地,本發(fā)明的實(shí)施例在加速器的利用中提供選擇性。在根據(jù)本發(fā)明的實(shí)施例的良好設(shè)計(jì)的系統(tǒng)中,考慮到用于加速器的每次喚起所要求的設(shè)立時(shí)間,針對(duì)未知程序的代碼可使用加速器被有效率地執(zhí)行的那些部分,有選擇地喚起加速器。
[0048]圖5是以更詳細(xì)細(xì)節(jié)示出計(jì)算機(jī)系統(tǒng)1的示圖,在該計(jì)算機(jī)系統(tǒng)1上可根據(jù)各種實(shí)施例實(shí)現(xiàn)本文所描述的本發(fā)明的各方面。計(jì)算機(jī)系統(tǒng)1可包括諸如個(gè)人計(jì)算機(jī)2的計(jì)算設(shè)備。個(gè)人計(jì)算機(jī)2包括一個(gè)或多個(gè)處理單元4、系統(tǒng)存儲(chǔ)器6、視頻接口 8、輸出外圍接口10、網(wǎng)絡(luò)接口 12、用戶輸入接口 14、可移動(dòng)存儲(chǔ)器接口 16和不可移動(dòng)存儲(chǔ)器接口 18以及耦連各種部件的系統(tǒng)總線或高速通信信道20。在各種實(shí)施例中,處理單元4可具有能夠處理信息的多個(gè)邏輯核心,該信息存儲(chǔ)在諸如系統(tǒng)存儲(chǔ)器6或接附于可移動(dòng)存儲(chǔ)器接口 16或不可移動(dòng)存儲(chǔ)器接口 18的存儲(chǔ)器的計(jì)算機(jī)可讀介質(zhì)上。計(jì)算機(jī)2系統(tǒng)存儲(chǔ)器6可包括諸如只讀存儲(chǔ)器(ROM) 22的非易失性存儲(chǔ)器或諸如隨機(jī)存儲(chǔ)存儲(chǔ)器(RAM) 24的易失性存儲(chǔ)器。R0M22可包括基本輸入/輸出系統(tǒng)(B10S)26以幫助與計(jì)算機(jī)2的其他部分進(jìn)行通信。RAM24可存儲(chǔ)諸如操作系統(tǒng)28、應(yīng)用程序30以及其他程序模塊32的各種軟件應(yīng)用的各部分。進(jìn)一步地,RAM24可存儲(chǔ)諸如程序或應(yīng)用數(shù)據(jù)34的其他信息。在各種實(shí)施例中,RAM24存儲(chǔ)要求低時(shí)延和有效率訪問(wèn)的信息,諸如正在被操縱或操作的程序和數(shù)據(jù)。在各種實(shí)施例中,RAM24包括雙倍數(shù)據(jù)速率(DDR)存儲(chǔ)器、錯(cuò)誤糾正存儲(chǔ)器(ECC)或具有變化的時(shí)延和配置的其他存儲(chǔ)器技術(shù),諸如RAMBUS或DDR2或DDR3。這樣,在各種實(shí)施例中,系統(tǒng)存儲(chǔ)器6可存儲(chǔ)輸入數(shù)據(jù)存儲(chǔ)、訪問(wèn)證書(shū)(credential)數(shù)據(jù)存儲(chǔ)、操作存儲(chǔ)器數(shù)據(jù)存儲(chǔ)、指令集數(shù)據(jù)存儲(chǔ)、分析結(jié)果數(shù)據(jù)存儲(chǔ)以及操作存儲(chǔ)器數(shù)據(jù)存儲(chǔ)。進(jìn)一步地,在各種實(shí)施例中,處理單元4可配置為執(zhí)行指令,該指令通過(guò)在授予對(duì)信息的訪問(wèn)權(quán)限之前要求訪問(wèn)證書(shū)來(lái)限制對(duì)前述數(shù)據(jù)存儲(chǔ)的訪問(wèn)權(quán)限。
[0049]可移動(dòng)存儲(chǔ)器接口 16和不可移動(dòng)存儲(chǔ)器接口 18可將計(jì)算機(jī)2耦連到諸如SSD或轉(zhuǎn)動(dòng)式磁盤(pán)驅(qū)動(dòng)器的磁盤(pán)驅(qū)動(dòng)器36。這些磁盤(pán)驅(qū)動(dòng)器36可為諸如操作系統(tǒng)38、應(yīng)用程序40和其他程序模塊42的各種軟件應(yīng)用提供進(jìn)一步存儲(chǔ)。進(jìn)一步地,磁盤(pán)驅(qū)動(dòng)器36可存儲(chǔ)諸如程序或應(yīng)用數(shù)據(jù)44的其他信息。在各種實(shí)施例中,磁盤(pán)驅(qū)動(dòng)器36存儲(chǔ)不要求與在其他存儲(chǔ)介質(zhì)中相同的低時(shí)延的信息。進(jìn)一步地,操作系統(tǒng)38、應(yīng)用程序40數(shù)據(jù)、程序模塊42以及程序或應(yīng)用數(shù)據(jù)44可以是與存儲(chǔ)在上文所提及的各種實(shí)施例中的RAM24中的信息相同的信息,或其可以是RAM24所存儲(chǔ)的數(shù)據(jù)潛在派生出的不同數(shù)據(jù)。
[0050]進(jìn)一步地,可移動(dòng)非易失性存儲(chǔ)器接口 16可將計(jì)算機(jī)2耦連到利用諸如軟盤(pán)48、1mega? Zip或Jazz的磁性介質(zhì)的磁性便攜式磁盤(pán)驅(qū)動(dòng)器46,或耦連到利用用于諸如
Blu-Ray_?,DVD-R/RW,⑶-R/RW和其他類(lèi)似格式的的計(jì)算機(jī)可讀介質(zhì)的存儲(chǔ)的光學(xué)介質(zhì)
52的光盤(pán)驅(qū)動(dòng)器50。還有其他實(shí)施例利用SSD或封裝在便攜式外殼中的轉(zhuǎn)動(dòng)式磁盤(pán)以增加可移動(dòng)存儲(chǔ)器的能力。
[0051]計(jì)算機(jī)2可利用網(wǎng)絡(luò)接口 12以通過(guò)局域網(wǎng)(LAN) 58或廣域網(wǎng)(WAN) 60與一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)56進(jìn)行通信。網(wǎng)絡(luò)接口 12可利用網(wǎng)絡(luò)接口卡(NIC)或諸如調(diào)制解調(diào)器62的其他接口以使能通信。調(diào)制解調(diào)器62通過(guò)電話線、同軸電纜、光纖、電力線或無(wú)線地使能通信。遠(yuǎn)程計(jì)算機(jī)56可包含類(lèi)似的硬件和軟件配置或可具有包含可對(duì)計(jì)算機(jī)2提供附加的計(jì)算機(jī)可讀指令的遠(yuǎn)程應(yīng)用程序66的存儲(chǔ)器64。在各種實(shí)施例中,可利用遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)器64以存儲(chǔ)信息,諸如可稍后被下載到本地系統(tǒng)存儲(chǔ)器6的經(jīng)識(shí)別的文件信息。進(jìn)一步地,在各種實(shí)施例中,遠(yuǎn)程計(jì)算機(jī)56可以是應(yīng)用服務(wù)器、管理服務(wù)器、客戶端計(jì)算機(jī)、或網(wǎng)絡(luò)家電。
[0052]用戶可使用連接到用戶輸入接口 14的輸入設(shè)備諸如鼠標(biāo)68和鍵盤(pán)70來(lái)對(duì)計(jì)算機(jī)2輸入信息。此外,輸入設(shè)備可以是軌跡板、指紋掃描器、操縱桿、條形碼掃描器、介質(zhì)掃描器等等。視頻接口 8可以向諸如監(jiān)視器72的顯示器提供視覺(jué)信息。視頻接口 8可以是嵌入式接口或其可以是分立的接口。進(jìn)一步地,計(jì)算機(jī)可利用多個(gè)視頻接口 8、網(wǎng)絡(luò)接口 12以及可移動(dòng)接口 16和不可移動(dòng)接口 18以增加計(jì)算機(jī)2的操作中的靈活性。進(jìn)一步地,各種實(shí)施例利用數(shù)個(gè)監(jiān)視器72和數(shù)個(gè)視頻接口 8以改變計(jì)算機(jī)2的性能和能力。諸如輸出外圍接口 10的其他計(jì)算機(jī)接口可包括在計(jì)算機(jī)2中。該接口可耦連到打印機(jī)74或揚(yáng)聲器76或其他外圍設(shè)備以對(duì)計(jì)算機(jī)2提供附加的功能性。
[0053]計(jì)算機(jī)的各種可替代配置和實(shí)現(xiàn)方案在本發(fā)明的精神內(nèi)。這些變形可包括但不限于耦連到系統(tǒng)總線20的附加的接口諸如通用串行總線(USB)、打印機(jī)端口、游戲端口、PCI總線、PCI Express,或?qū)⑸衔乃龈鞣N部件集成到芯片集部件諸如北橋或南橋中。例如,在各種實(shí)施例中,處理單元4可包括嵌入式存儲(chǔ)器控制器(未示出)以使能比系統(tǒng)總線20可提供的更有效率的來(lái)自系統(tǒng)存儲(chǔ)器6的數(shù)據(jù)的轉(zhuǎn)移。
[0054]上文的實(shí)施例旨在是示例性的而并非限制。附加的實(shí)施例在權(quán)利要求內(nèi)。此外,雖然已參考特定實(shí)施例描述了本發(fā)明的各方面,但本領(lǐng)域的技術(shù)人員將意識(shí)到,可在形式和細(xì)節(jié)上做出改變而不脫離本發(fā)明的精神和范圍,如權(quán)利要求所定義。
[0055]相關(guān)領(lǐng)域的普通技術(shù)人員將意識(shí)到,本發(fā)明可包括比上文所描述的任何單獨(dú)實(shí)施例中所示出的更少的特征。本文所描述的實(shí)施例不意味著是其中可組合本發(fā)明的各種特征的方式的窮舉呈現(xiàn)。因此,如本領(lǐng)域的普通技術(shù)人員所理解的,實(shí)施例并非特征的互斥組合;相反,本發(fā)明可包括從不同單獨(dú)實(shí)施例中所選擇的不同單獨(dú)特征的組合。
[0056]上文文檔的通過(guò)援引方式的任何并入是有限制的,使得與本文明確的公開(kāi)相反的主題不被并入。上文文檔的通過(guò)援引方式的任何合入進(jìn)一步是有限制的,使得在文檔中所包括的權(quán)利要求不被通過(guò)援引的方式并入到本申請(qǐng)的權(quán)利要求中。然而,除非特別排除,否則文檔的任何一個(gè)的權(quán)利要求均并入本文作為公開(kāi)的部分。上文文檔的通過(guò)援引方式的任何并入還進(jìn)一步是有限制的,使得除非本文明確包括,文檔中所提供的任何定義不被通過(guò)援引的方式并入本文。
[0057]出于解釋本發(fā)明的權(quán)利要求的目的,明確意圖的是,除非在權(quán)利要求中敘述具體術(shù)語(yǔ)“用于……的裝 置”或“用于……的步驟”,否則將不援用美國(guó)法典第35篇第112節(jié)第六段的條款。
【權(quán)利要求】
1.一種用于仿真處于調(diào)查之下的軟件代碼的方法,在包括計(jì)算硬件和數(shù)據(jù)存儲(chǔ)的計(jì)算機(jī)系統(tǒng)中,所述計(jì)算硬件包括至少一個(gè)處理器,所述方法包括:由處于程序控制之下進(jìn)行操作的所述計(jì)算硬件執(zhí)行虛擬執(zhí)行環(huán)境,在所述虛擬執(zhí)行環(huán)境中處于調(diào)查之下的所述軟件代碼的第一部分被仿真,其中在所述第一部分的仿真期間表示一系列虛擬處理狀態(tài);由所述計(jì)算硬件執(zhí)行處于調(diào)查之下的所述軟件代碼的第二部分而不用對(duì)其進(jìn)行仿真;在所述軟件代碼的所述第二部分的不用進(jìn)行仿真的所述執(zhí)行之前,根據(jù)在所述軟件代碼的所述第二部分前的所述系列虛擬處理狀態(tài)之一來(lái)初始化所述計(jì)算硬件;由處于程序控制之下進(jìn)行操作的所述計(jì)算硬件針對(duì)所述軟件代碼的所述第二部分的不用進(jìn)行仿真的所述執(zhí)行來(lái)確定效率的測(cè)度;以及由處于程序控制之下操作的所述計(jì)算硬件確定所述軟件代碼的所述第二部分的不用進(jìn)行仿真的執(zhí)行的適宜性,其中所述適宜性的確定是基于所述效率的測(cè)度與效率標(biāo)準(zhǔn)的比較。
2.根據(jù)權(quán)利要求1所述的方法,其中在所述第二部分的不用進(jìn)行仿真的執(zhí)行的所述適宜性的所述確定中,基于所述第二部分的所述執(zhí)行的實(shí)施的計(jì)算負(fù)載與所述計(jì)算硬件的所述初始化的所述實(shí)施的計(jì)算負(fù)載相比較來(lái)定義所述效率標(biāo)準(zhǔn)。
3.根據(jù)權(quán)利要求2所述的方法,其中基于在對(duì)處于調(diào)查之下的所述軟件代碼的所述第二部分的不用對(duì)其進(jìn)行仿真的所述執(zhí)行的所述實(shí)施加以實(shí)行中所測(cè)量的處理器周期數(shù)和與對(duì)所述計(jì)算硬件的所述初始化的所述實(shí)施加以實(shí)行相關(guān)聯(lián)的處理器周期數(shù)的比率來(lái)定義所述效率的測(cè)度。
4.根據(jù)權(quán)利要求1所述的方法,其中所述軟件代碼的所述第一部分的仿真包括實(shí)施所述第一部分的動(dòng)態(tài)二進(jìn)制轉(zhuǎn)譯。
5.根據(jù)權(quán)利要求1所述的方法,其中處于調(diào)查之下的所述軟件代碼的所述第二部分的不用對(duì)其進(jìn)行仿真的所述執(zhí)行包括,響應(yīng)于針對(duì)所述第二部分的所確定的效率的測(cè)度低于預(yù)定義的效率閾值而實(shí)施所述第二部分的一個(gè)或多個(gè)部分的二進(jìn)制轉(zhuǎn)譯。
6.根據(jù)權(quán)利要求1所述的方法,其中處于調(diào)查之下的所述軟件代碼構(gòu)建為多個(gè)基本塊,并且其中所述效率的測(cè)度與作為處于調(diào)查之下的所述軟件代碼的所述第二部分的、由所述計(jì)算硬件執(zhí)行的相應(yīng)的基本塊相關(guān)聯(lián)。
7.根據(jù)權(quán)利要求1所述的方法,其中處于調(diào)查之下的所述軟件代碼包括多個(gè)所調(diào)查的指令并且其中所述效率的測(cè)度與作為處于調(diào)查之下的所述軟件代碼的所述第二部分、要由所述硬件加速器模塊執(zhí)行的相應(yīng)的一個(gè)或多個(gè)所述所調(diào)查的指令相關(guān)聯(lián)。
8.根據(jù)權(quán)利要求1所述的方法,其中確定所述軟件代碼的所述第二部分的不用進(jìn)行仿真的執(zhí)行的所述適宜性是基于所述效率的測(cè)度與最小效率閾值的比較,其中當(dāng)所述效率的測(cè)度在所述效率標(biāo)準(zhǔn)的最小效率閾值之下時(shí),所述第二部分在所述虛擬執(zhí)行環(huán)境中執(zhí)行。
【文檔編號(hào)】G06F11/36GK103678126SQ201310652562
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2013年12月5日 優(yōu)先權(quán)日:2012年12月25日
【發(fā)明者】謝爾蓋·Y·別洛夫 申請(qǐng)人:卡巴斯基實(shí)驗(yàn)室封閉式股份公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1