• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種復(fù)用代碼庫(kù)構(gòu)建方法、復(fù)用代碼快速溯源方法及系統(tǒng)技術(shù)方案

    技術(shù)編號(hào):14014743 閱讀:116 留言:0更新日期:2016-11-17 20:32
    本發(fā)明專利技術(shù)公開(kāi)了一種復(fù)用代碼庫(kù)構(gòu)建方法、復(fù)用代碼快速溯源方法及系統(tǒng)。本系統(tǒng)包括預(yù)處理模塊、代碼庫(kù)構(gòu)建模塊與函數(shù)溯源模塊;預(yù)處理模塊,獲取每一樣本的匯編代碼,并提取每一匯編代碼中的函數(shù);以及依據(jù)每一函數(shù)中的跳轉(zhuǎn)指令與跳轉(zhuǎn)地址將該函數(shù)拆分為若干代碼塊并計(jì)算每一代碼塊的simhash值;代碼庫(kù)構(gòu)建模塊,構(gòu)建simhash值索引對(duì)應(yīng)的代碼塊,代碼塊索引包含該代碼塊的函數(shù),函數(shù)索引包含該函數(shù)的樣本的三級(jí)倒排索引;函數(shù)溯源模塊,用于代碼庫(kù)中檢索該待溯源函數(shù)的相似代碼塊,每一相似代碼塊對(duì)應(yīng)的潛在相似函數(shù),然后根據(jù)相似代碼塊間的跳轉(zhuǎn)關(guān)系與確定相似函數(shù)是否與待溯源函數(shù)相似。本發(fā)明專利技術(shù)提升了同源判定工作的自動(dòng)化程度。

    【技術(shù)實(shí)現(xiàn)步驟摘要】

    本專利技術(shù)涉及逆向分析與惡意代碼分析領(lǐng)域,具體涉及一種基于simhash與倒排索引的復(fù)用代碼庫(kù)構(gòu)建方法、快速溯源方法及系統(tǒng)。
    技術(shù)介紹
    代碼復(fù)用通常以函數(shù)為基本單位,即使被編譯器高度優(yōu)化仍然保留大量函數(shù)整體,所以本文以函數(shù)為單位進(jìn)行溯源與相似判定更加符合復(fù)用場(chǎng)景。惡意代碼同源判定的主要依據(jù)是惡意代碼作者在不同惡意代碼中對(duì)個(gè)人編寫(xiě)代碼的復(fù)用,如Sasser與Netsky、Flame與Gauss等的同源判定均依據(jù)它們共享的特殊函數(shù)。但是,為提高開(kāi)發(fā)速度,惡意代碼作者經(jīng)常復(fù)用他人編寫(xiě)的公開(kāi)或半公開(kāi)代碼,如Chthonic是一款在Zeus源碼基礎(chǔ)上修改開(kāi)發(fā)的惡意代碼。同時(shí)據(jù)報(bào)告,Equation APT(Advanced Persistent Threat,高級(jí)持續(xù)性威脅)攻擊中使用的一個(gè)樣本,被判定屬于Zlob家族,說(shuō)明APT攻擊組織也會(huì)復(fù)用開(kāi)源代碼。為執(zhí)行需要,編譯器在編譯時(shí)通常插入大量代碼。經(jīng)測(cè)試,當(dāng)編譯僅有一個(gè)函數(shù)的C語(yǔ)言代碼時(shí),Windows下的VC6.0編譯器插入了103個(gè)函數(shù),Linux下的GCC4.7.2編譯器插入了18個(gè)函數(shù)。不同的編譯器插入的函數(shù)與函數(shù)的插入位置均不同,需要大量經(jīng)驗(yàn)與技巧才能識(shí)別這些函數(shù)。復(fù)用函數(shù)對(duì)惡意代碼分析與同源判定工作造成了很大干擾,目前主要依靠惡意代碼分析人員的經(jīng)驗(yàn)識(shí)別,導(dǎo)致同源判定效率不高??焖僮R(shí)復(fù)用函數(shù)將大大提高效率,并提升同源判定結(jié)論的可信度。復(fù)用函數(shù)溯源的基礎(chǔ)是相似函數(shù)判定,若在某二進(jìn)制樣本中存在一個(gè)函數(shù)的相似函數(shù),則說(shuō)明該函數(shù)為復(fù)用函數(shù)。目前相似函數(shù)判定技術(shù),具有很高的準(zhǔn)確率與召回率,但是判定效率較低,不適應(yīng)海量代碼的復(fù)用函數(shù)溯源。一個(gè)函數(shù)源碼的少量修改,編譯選項(xiàng)、所在位置的不同都會(huì)造成逆向后匯編代碼中指令順序、寄存器、跳轉(zhuǎn)位置等的差異,因此若使用哈希等方法進(jìn)行溯源將導(dǎo)致非常低的召回率。函數(shù)中,代碼塊的跳轉(zhuǎn)結(jié)構(gòu)是相似判定的重要特征,而跳轉(zhuǎn)關(guān)系提取、結(jié)構(gòu)圖的比對(duì)要耗費(fèi)大量時(shí)間,是導(dǎo)致目前相似判定準(zhǔn)確率、召回率與速度難以兼得的一個(gè)重要原因。
    技術(shù)實(shí)現(xiàn)思路
    針對(duì)現(xiàn)有技術(shù)存在的技術(shù)問(wèn)題,為了實(shí)現(xiàn)復(fù)用代碼的快速溯源與判定,本專利技術(shù)公開(kāi)了一種基于simhash與倒排索引的復(fù)用代碼庫(kù)構(gòu)建方法、快速溯源方法及系統(tǒng)。本專利技術(shù)以函數(shù)為單位,基于simhash與倒排索引技術(shù),能在海量代碼中快速溯源相似函數(shù)。首先逆向已有未加殼與已脫殼樣本獲取匯編代碼,將其中的函數(shù)依據(jù)跳轉(zhuǎn)指令劃分為多個(gè)代碼塊并計(jì)算代碼塊的simhash值,構(gòu)建simhash值與代碼塊、代碼塊與函數(shù)、函數(shù)與樣本間的三級(jí)倒排索引。溯源函數(shù),依據(jù)代碼塊的simhash值快速發(fā)現(xiàn)相似代碼塊,繼而倒排索引潛在相似函數(shù),并溯源至所在樣本。本專利技術(shù)公開(kāi)了一種基于simhash與倒排索引的用于復(fù)用代碼溯源的代碼庫(kù)構(gòu)建方法,基于該代碼庫(kù),使用本專利技術(shù)公開(kāi)的溯源方法能快速溯源定位相似函數(shù)及其所在的樣本。具體包括4個(gè)步驟:(1)逆向獲取每一可執(zhí)行程序樣本的匯編代碼;(2)依據(jù)調(diào)用指令call與調(diào)用地址,提取匯編代碼中的函數(shù),并依據(jù)每一函數(shù)中的跳轉(zhuǎn)指令與跳轉(zhuǎn)地址將該函數(shù)拆分為多個(gè)代碼塊;(3)使用simhash算法(2002年提出《Similarity estimation techniques from rounding algorithms》)計(jì)算每個(gè)代碼塊的simhash值;(4)構(gòu)建三級(jí)倒排索引:simhash值索引對(duì)應(yīng)的代碼塊,代碼塊索引包含該代碼塊的函數(shù),函數(shù)索引包含該函數(shù)的樣本。本專利技術(shù)公開(kāi)了一種基于simhash與倒排索引的復(fù)用代碼快速溯源方法,對(duì)于待溯源函數(shù),使用該方法能快速在海量代碼庫(kù)中溯源到與該函數(shù)相似的函數(shù)及其所在樣本,若未溯源到相似函數(shù),在代碼庫(kù)基礎(chǔ)上可認(rèn)為該函數(shù)為非復(fù)用函數(shù)。具體包括5個(gè)步驟:(1)將待溯源函數(shù)依據(jù)跳轉(zhuǎn)指令與跳轉(zhuǎn)地址拆分為多個(gè)代碼塊,并計(jì)算代碼塊的simhash值;(2)在代碼庫(kù)中搜索與代碼塊simhash值的漢明距離在3以內(nèi)的simhash值,繼而通過(guò)倒排索引搜索出漢明距離在3以內(nèi)的每一simhash值對(duì)應(yīng)的代碼塊作為相似代碼塊;(3)通過(guò)相似代碼塊與倒排索引搜索出潛在相似函數(shù),然后依據(jù)潛在相似函數(shù)與該待溯源函數(shù)的相似代碼塊的數(shù)量為每個(gè)潛在相似函數(shù)賦予一個(gè)權(quán)值,篩選出權(quán)值超過(guò)一定閾值的函數(shù);比如通過(guò)函數(shù)A的3個(gè)相似代碼塊,檢索出了兩個(gè)與函數(shù)A相似的潛在相似函數(shù)B、C,假如函數(shù)B與函數(shù)A有一個(gè)代碼塊相似,那么函數(shù)B的權(quán)值就是1/3,函數(shù)C與函數(shù)A有兩個(gè)代碼塊相似,那么函數(shù)C的權(quán)值是2/3;假如閾值是1/2,那么只會(huì)認(rèn)為函數(shù)C與函數(shù)A相似;(4)通過(guò)比對(duì)(3)中篩選出的相似函數(shù)的相似代碼塊間的跳轉(zhuǎn)關(guān)系最終確定是否相似;本專利技術(shù)中設(shè)定只有當(dāng)代碼塊間的跳轉(zhuǎn)關(guān)系完全相似時(shí),才認(rèn)為函數(shù)相似。比如函數(shù)A與函數(shù)B有2個(gè)代碼塊(1、2)相似,假如在函數(shù)A中兩代碼塊間跳轉(zhuǎn)關(guān)系是1跳轉(zhuǎn)到2,但是在函數(shù)B中是2跳轉(zhuǎn)到1,那么函數(shù)A、B是不相似的,只有代碼塊間的跳轉(zhuǎn)關(guān)系相同時(shí),才認(rèn)為函數(shù)A、B相似。(5)通過(guò)倒排索引溯源定位到相似函數(shù)所在的樣本。本專利技術(shù)同時(shí)公開(kāi)了一種基于simhash與倒排索引的復(fù)用代碼快速溯源系統(tǒng),主要由預(yù)處理模塊、代碼庫(kù)構(gòu)建模塊、函數(shù)溯源模塊3個(gè)模塊組成。與現(xiàn)有技術(shù)相比,本專利技術(shù)的積極效果為:本專利技術(shù)能在大量樣本中快速溯源與某函數(shù)相似的函數(shù)代碼及其所在樣本,且具有較高的準(zhǔn)確率與召回率?;谠摲椒梢蚤_(kāi)發(fā)代碼搜索引擎等工具,幫助逆向分析人員提高效率,提升同源判定工作的自動(dòng)化程度。通過(guò)實(shí)驗(yàn)表明,本專利技術(shù)具有很高的準(zhǔn)確率、召回率與很快的溯源速度:(1)使用32位WinXP系統(tǒng)中“Program Files”與“Windows”文件夾下的所有PE文件構(gòu)建了一個(gè)代碼庫(kù);(2)使用VC6.0編譯僅包含一個(gè)main函數(shù),且僅有一條printf語(yǔ)句的C語(yǔ)言源代碼,編譯為Release版可執(zhí)行文件,逆向獲取該文件的匯編代碼,IDA Pro能自動(dòng)識(shí)別并剔除庫(kù)函數(shù),所以最終會(huì)被代碼中除main函數(shù)外還有19個(gè)編譯器插入函數(shù);(3)由于WinXP系統(tǒng)中存在大量VC6.0編譯的文件,據(jù)此推測(cè)19個(gè)編譯器插入函數(shù)有一定概率在WinXP文件構(gòu)建的代碼庫(kù)中溯源到相似函數(shù),因此對(duì)19個(gè)編譯器插入函數(shù)進(jìn)行溯源,發(fā)現(xiàn)其中16個(gè)存在相似函數(shù),另外三個(gè)sub_401010、sub_4057BC與sub_402AD1未溯源到相似函數(shù),在配有16核Intel(R)Xeon(R)CPU E562與16G內(nèi)存的DellPower Edge R410服務(wù)器上進(jìn)行該實(shí)驗(yàn),每個(gè)函數(shù)的平均溯源時(shí)間約為0.149秒。下表列出了部分溯源到的相似函數(shù):附圖說(shuō)明圖1為基于simhash與倒排索引的代碼庫(kù)構(gòu)建方法流程圖;圖2為三級(jí)倒排索引結(jié)構(gòu)圖;圖3為函數(shù)溯源流程圖;圖4為基于simhash與倒排索引的復(fù)用代碼快速溯源系統(tǒng)架構(gòu)圖.具體實(shí)施方式下面,結(jié)合具體的實(shí)施實(shí)例對(duì)本專利技術(shù)進(jìn)行詳細(xì)說(shuō)明。圖1給出了本專利技術(shù)提供的代碼庫(kù)構(gòu)建方法的流程,具體實(shí)施步驟如下:(1)對(duì)加殼的樣本進(jìn)行脫殼處理1)使用PeiD查殼工具判定樣本所使用的殼;2)針對(duì)不同的殼使用不同的脫殼工具進(jìn)行脫殼處理;3)舍棄其他使用特殊殼導(dǎo)致無(wú)法脫殼的樣本。最終的樣本均為已脫殼樣本。(2)使用逆向工具獲取各樣本的匯編本文檔來(lái)自技高網(wǎng)
    ...
    一種<a  title="一種復(fù)用代碼庫(kù)構(gòu)建方法、復(fù)用代碼快速溯源方法及系統(tǒng)原文來(lái)自X技術(shù)">復(fù)用代碼庫(kù)構(gòu)建方法、復(fù)用代碼快速溯源方法及系統(tǒng)</a>

    【技術(shù)保護(hù)點(diǎn)】
    一種復(fù)用代碼庫(kù)構(gòu)建方法,其步驟為:1)獲取每一可執(zhí)行程序樣本的匯編代碼;2)提取每一匯編代碼中的函數(shù),并依據(jù)每一函數(shù)中的跳轉(zhuǎn)指令與跳轉(zhuǎn)地址將該函數(shù)拆分為若干代碼塊并保存到代碼庫(kù)中;3)計(jì)算每一代碼塊的simhash值;4)構(gòu)建simhash值與代碼塊、代碼塊與函數(shù)、函數(shù)與樣本間的三級(jí)倒排索引。

    【技術(shù)特征摘要】
    1.一種復(fù)用代碼庫(kù)構(gòu)建方法,其步驟為:1)獲取每一可執(zhí)行程序樣本的匯編代碼;2)提取每一匯編代碼中的函數(shù),并依據(jù)每一函數(shù)中的跳轉(zhuǎn)指令與跳轉(zhuǎn)地址將該函數(shù)拆分為若干代碼塊并保存到代碼庫(kù)中;3)計(jì)算每一代碼塊的simhash值;4)構(gòu)建simhash值與代碼塊、代碼塊與函數(shù)、函數(shù)與樣本間的三級(jí)倒排索引。2.如權(quán)利要求1所述的方法,其特征在于,所述三級(jí)倒排索引為:simhash值索引對(duì)應(yīng)的代碼塊,代碼塊索引包含該代碼塊的函數(shù),函數(shù)索引包含該函數(shù)的樣本。3.如權(quán)利要求1或2所述的方法,其特征在于,依據(jù)調(diào)用指令與調(diào)用地址提取匯編代碼中的函數(shù)。4.一種復(fù)用代碼快速溯源方法,其步驟為:1)依據(jù)跳轉(zhuǎn)指令與跳轉(zhuǎn)地址將待溯源函數(shù)拆分為若干代碼塊,并計(jì)算每一代碼塊的simhash值;2)對(duì)于每一代碼塊,在代碼庫(kù)中搜索與該代碼塊的simhash值的漢明距離在設(shè)定距離內(nèi)的代碼塊作為該代碼塊的相似代碼塊;3)在代碼庫(kù)中搜索每一相似代碼塊對(duì)應(yīng)的潛在相似函數(shù),然后依據(jù)潛在相似函數(shù)與該待溯源函數(shù)的相似代碼塊數(shù)量為對(duì)應(yīng)潛在相似函數(shù)賦予一權(quán)值;然后篩選出權(quán)值超過(guò)設(shè)定閾值的潛在相似函數(shù)作為相似函數(shù);4)根據(jù)相似代碼塊間的跳轉(zhuǎn)關(guān)系與確定該相似函數(shù)是否與待溯源函數(shù)相似;如果相似,則該相似函數(shù)為復(fù)用代碼。5.如權(quán)利要求4所述的方法,其特征在于,在代碼庫(kù)中搜索步驟4)確定的相似函數(shù)所在的樣本,返回該相似函數(shù)及其所在的樣本。6.如權(quán)利要求4所述的方法,其特征在于,所述代碼庫(kù)包括多個(gè)代碼塊及其simhash值,并構(gòu)建simhash值索引對(duì)應(yīng)的代碼塊,代碼塊索引包含該代碼塊的函數(shù),函數(shù)索引包含該函數(shù)的樣本的三級(jí)倒排索引。7.如權(quán)利要求4或5或6所述的方法,其特征在于,計(jì)算該simhash值的方法為:71)創(chuàng)建一個(gè)N位的向量,并初始化為0;72)對(duì)標(biāo)準(zhǔn)化的代碼塊進(jìn)行分詞處理,分詞為2-gram標(biāo)準(zhǔn)化的指令序列;73)為每個(gè)分詞賦予一權(quán)值,將分詞的頻率做為基礎(chǔ)權(quán)值,對(duì)包含調(diào)用指令分詞的權(quán)值加倍;74)...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:張永錚喬延臣,云曉春,
    申請(qǐng)(專利權(quán))人:中國(guó)科學(xué)院信息工程研究所,
    類型:發(fā)明
    國(guó)別省市:北京;11

    網(wǎng)友詢問(wèn)留言 已有0條評(píng)論
    • 還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。

    1
    主站蜘蛛池模板: 99精品国产在热久久无码| 亚洲精品无码永久在线观看你懂的 | 久久成人无码国产免费播放| 夜夜精品无码一区二区三区| 久久久久无码精品亚洲日韩| 无码高潮爽到爆的喷水视频app | 精品无码国产污污污免费网站国产| 亚洲AV中文无码字幕色三 | 久久久精品人妻无码专区不卡 | 精品久久久久久无码专区 | 国产成人午夜无码电影在线观看| 99久久国产热无码精品免费| 中国少妇无码专区| 无码人妻丰满熟妇片毛片| 久久99久久无码毛片一区二区| 亚洲日韩乱码中文无码蜜桃| 国产在线无码视频一区二区三区| 无码专区一va亚洲v专区在线| 精品欧洲AV无码一区二区男男 | 免费无码精品黄AV电影| 无码乱人伦一区二区亚洲| 国产aⅴ激情无码久久久无码| 亚洲另类无码专区首页| 亚洲一区二区三区无码国产 | 国产精品无码久久久久| 亚洲AV色无码乱码在线观看| 久久精品无码一区二区WWW| 亚洲AV无码一区二区二三区入口| 日本无码色情三级播放| 亚洲午夜国产精品无码老牛影视 | 精品人妻无码一区二区三区蜜桃一 | 久久人妻少妇嫩草AV无码蜜桃| 无码中文字幕乱码一区| 亚洲中文无码永久免| 中文字幕无码成人免费视频| 亚洲人成人伊人成综合网无码| 无码Aⅴ在线观看| 日韩人妻无码免费视频一区二区三区 | 无码喷水一区二区浪潮AV| 国产精品无码一区二区在线| 久久久久亚洲精品无码网址色欲|