欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于復(fù)雜網(wǎng)絡(luò)的臟數(shù)據(jù)傳播路徑發(fā)現(xiàn)方法

文檔序號:8412451閱讀:432來源:國知局
一種基于復(fù)雜網(wǎng)絡(luò)的臟數(shù)據(jù)傳播路徑發(fā)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于復(fù)雜網(wǎng)絡(luò)的臟數(shù)據(jù)傳播路徑發(fā)現(xiàn)方法,屬于軟件安全技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]在基于復(fù)雜網(wǎng)絡(luò)的研宄方法中,有很多概念和方法可用來反映網(wǎng)絡(luò)的相關(guān)統(tǒng)計特性,其中最重要的有節(jié)點的度分布。在軟件網(wǎng)絡(luò)中,一個節(jié)點的度可以引申為該類在軟件中被其他類調(diào)用的次數(shù)。因此,從直觀上看,如果一個類被調(diào)用的次數(shù)越多,那么它的重要性就越高。但是,軟件網(wǎng)絡(luò)一般都是加權(quán)有向網(wǎng)絡(luò),單單從“度”上來衡量類的重要性并不準(zhǔn)確。例如,對于一個具有特殊功能的類,本身它的度并不大,但是若將其從軟件中去除就可能會直接導(dǎo)致該軟件不可運轉(zhuǎn)。
[0003]通過對無標(biāo)度網(wǎng)絡(luò)的研宄知道,一般節(jié)點發(fā)生缺陷的情況有兩種:一種是隨機節(jié)點設(shè)計缺陷,也就是軟件網(wǎng)絡(luò)中存在一部分隨機節(jié)點具有設(shè)計缺陷,但這部分節(jié)點的功能缺失一般并不影響軟件整體的正常運轉(zhuǎn);二是重要度節(jié)點的設(shè)計缺陷,即軟件網(wǎng)絡(luò)中節(jié)點重要度比較高的節(jié)點有設(shè)計缺陷。在軟件網(wǎng)絡(luò)中,由于度分布呈現(xiàn)冪率分布的非均勻特性,這使得這類節(jié)點被調(diào)用的次數(shù)很高,而且它們占軟件網(wǎng)絡(luò)中所有節(jié)點個數(shù)不到5%,卻實現(xiàn)了軟件最主要的功能。因此,一旦這些類的功能出現(xiàn)缺失,有可能就會直接導(dǎo)致系統(tǒng)崩潰。鑒于此,如果在軟件開發(fā)初期和軟件測試過程中對這些極少數(shù)的節(jié)點重點對待的話,那么不僅可以縮短軟件開發(fā)測試周期,而且還能使軟件的質(zhì)量有所提高。因此,如何更有效且準(zhǔn)確地找到這些重要的節(jié)點便是當(dāng)前要做的工作。
[0004]前人在IDA反匯編的基礎(chǔ)上進行反編譯的相關(guān)研宄,其本身提供了豐富的反匯編結(jié)果信息和數(shù)據(jù)表示定義,因此中間語言的實現(xiàn)可以不必像符號執(zhí)行那樣模擬匯編語義的執(zhí)行,也不需像SSL進行比較完整和復(fù)雜的指令系統(tǒng)的描述。本文中的中間語言實現(xiàn),主要根據(jù)匯編指令的語義和IDA的反匯編結(jié)果信息,通過構(gòu)建一個相對簡單的指令語義描述字典,通過相應(yīng)的查找匹配,進而實現(xiàn)匯編語言到中間語言的轉(zhuǎn)換。主要涉及的內(nèi)容有:中間語言的定義,中間語言的語義字典描述,具體的翻譯實現(xiàn)。
[0005]現(xiàn)有的臟數(shù)據(jù)發(fā)現(xiàn)技術(shù)不夠全面,沒有一套能夠貫穿軟件運行整個周期的方法。因此,一旦這些類的功能出現(xiàn)缺失,有可能就會直接導(dǎo)致系統(tǒng)崩潰。鑒于此,如果在軟件開發(fā)初期和軟件測試過程中對這些極少數(shù)的節(jié)點重點對待的話,那么不僅可以縮短軟件開發(fā)測試周期,而且還能使軟件的質(zhì)量有所提高。因此,如何更有效且準(zhǔn)確地找到這些重要的節(jié)點便是當(dāng)前要做的工作。且現(xiàn)有發(fā)現(xiàn)臟數(shù)據(jù)傳播技術(shù)全部基于源代碼,不支持對二進制程序的發(fā)現(xiàn)。

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

[0006]本發(fā)明提供一種基于復(fù)雜網(wǎng)絡(luò)的臟數(shù)據(jù)傳播路徑發(fā)現(xiàn)方法,能夠?qū)]有提供源碼的二進制程序進行翻譯,并對得到的結(jié)果進行處理,挖掘生成有用信息,以期于能夠在軟件運行中發(fā)現(xiàn)缺陷、提高軟件的可靠性。
[0007]實現(xiàn)本發(fā)明的技術(shù)方案如下:
[0008]一種基于復(fù)雜網(wǎng)絡(luò)的臟數(shù)據(jù)傳播路徑發(fā)現(xiàn)方法,包括如下步驟:
[0009]第一步:使用IDA的插件Hex-Rays對二進制文件進行反編譯,得到類似C語言的中間代碼;
[0010]第二步:使用GNU編譯器提供的工具對第一步生成的中間代碼進行數(shù)據(jù)搜集,捕獲函數(shù)調(diào)用路徑,在得到路徑后,使用Addr21ine將函數(shù)地址解析為函數(shù)名,之后對跟蹤數(shù)據(jù)進行處理和精簡,并生成矩陣格式;最后使用Graphviz生成函數(shù)調(diào)用關(guān)系圖;
[0011]第三步:解析上一步驟得到的函數(shù)調(diào)用關(guān)系圖,得到節(jié)點、邊、權(quán)重信息,并且計算得到節(jié)點度,建立帶關(guān)鍵節(jié)點的復(fù)雜網(wǎng)絡(luò)圖;
[0012]第四步:根據(jù)復(fù)雜網(wǎng)絡(luò)圖的冪率分布的非均勻特性,結(jié)合上一步生成的復(fù)雜網(wǎng)絡(luò)圖,找出與構(gòu)造臟數(shù)據(jù)相關(guān)的點以及調(diào)用頻率很高的點,關(guān)鍵節(jié)點用不同的顏色進行標(biāo)注,臟數(shù)據(jù)的路徑用特殊的顏色標(biāo)出,從而發(fā)現(xiàn)軟件缺陷隱患。
[0013]第三步建立復(fù)雜網(wǎng)絡(luò)圖采用以下方法,具體步驟如下:
[0014](I)將第二步獲得的二進制文件所有函數(shù)作為網(wǎng)絡(luò)中的節(jié)點;
[0015](2)根據(jù)節(jié)點間是否有關(guān)系建立無權(quán)網(wǎng)絡(luò)圖;
[0016](3)計算節(jié)點間的相關(guān)度;
[0017](4)根據(jù)相關(guān)度計算權(quán)值;
[0018](5)建立加權(quán)網(wǎng)絡(luò)圖。
[0019]本發(fā)明的有益效果:
[0020]本發(fā)明基于反匯編工具IDA進行研宄,在對沒有提供源碼的二進制程序進行翻譯,并對得到的結(jié)果進行處理,挖掘生成有用信息。以期于能夠在軟件運行中發(fā)現(xiàn)缺陷、提高軟件的可靠性。
[0021]本技術(shù)的重點在于分析的對象為二進制文件而非源代碼,所以前提準(zhǔn)備需要將二進制代碼轉(zhuǎn)化為源代碼的類似格式。其次,本選題創(chuàng)新點在于將復(fù)雜網(wǎng)絡(luò)的知識分析軟件函數(shù)調(diào)用等關(guān)系,極大程度上利于軟件缺陷的發(fā)現(xiàn)。
【附圖說明】
[0022]圖1為本發(fā)明一種基于復(fù)雜網(wǎng)絡(luò)的臟數(shù)據(jù)傳播路徑發(fā)現(xiàn)方法的流程圖;
[0023]圖2為本發(fā)明搜集、簡化和可視化跟蹤路徑的過程圖;
[0024]圖3為本發(fā)明實施例中應(yīng)用程序的函數(shù)調(diào)用結(jié)果示意圖。
【具體實施方式】
[0025]下面結(jié)合附圖進一步對本發(fā)明進行詳細(xì)說明。
[0026]本發(fā)明實施例大致分為三部分:一是對二進制文件進行反編譯,得到可以處理的源碼或可分析的中間語言,這部分使用IDA的插件Hex-Rays來完成;二是對反編譯結(jié)果進行分析,給出函數(shù)的調(diào)用關(guān)系圖,這部分使用GNU編譯器工具鏈、Addrfline工具、定和Graphviz工具來完成;三是根據(jù)關(guān)系圖生成帶關(guān)鍵節(jié)點的復(fù)雜網(wǎng)絡(luò)圖,利用圖論及復(fù)雜網(wǎng)絡(luò)的知識,找出臟數(shù)據(jù)的傳播路徑。
[0027]下面結(jié)合圖1詳細(xì)描述本發(fā)明的工作流程:
[0028]1.反編譯
[0029]在對比多種反編譯工具后,本發(fā)明決定使用IDA的插件Hex-Rays,對二進制文件進行反編譯,并得到類似C語言的中間代碼。
[0030]2.繪制函數(shù)調(diào)用關(guān)系圖
[0031]為了捕獲并顯示函數(shù)的調(diào)用圖,需要4個必備元素:GNU編譯器工具鏈、Addr21ine工具、上一步所得的中間代碼和Graphviz工具。Addr21ine工具可以識別函數(shù)、給定地址的源代碼行數(shù)和可執(zhí)行映像。定制的中間代碼是一個非常簡單的工具,它可以減少對圖形規(guī)范的地址跟蹤,這里可以對反編譯的代碼做簡單的處理。Graphviz工具可以生成圖形映像。整個步驟如圖2所示。
[0032]首先使用GNU編譯器提供的工具對第一步生成的中間代碼進行數(shù)據(jù)搜集,捕獲函數(shù)調(diào)用路徑。在得到路徑后,使用Addr21ine將函數(shù)地址解析為函數(shù)名。之后對跟蹤數(shù)據(jù)進行處理和精簡,并生成矩陣格式。最后使用Graphviz生成函數(shù)調(diào)用關(guān)系圖。
[0033]3.找出臟數(shù)據(jù)傳播路徑
[0034]臟數(shù)據(jù)是表示一個數(shù)據(jù)已經(jīng)被修改,但是還沒有保存或進一步的處理?;蛘弑旧碇狄呀?jīng)丟失的數(shù)據(jù)??梢酝ㄟ^構(gòu)造臟數(shù)據(jù)并記錄其節(jié)點信息得到其傳播路徑,再用復(fù)雜網(wǎng)絡(luò)中聚類的知識得到類似的節(jié)點以達到目的。
[0035]首先解析上一步驟得到的圖形文件,得到節(jié)點、邊、權(quán)重等信息,并且計算得到節(jié)點度等。
[0036]建立軟件系統(tǒng)的復(fù)雜網(wǎng)絡(luò)模型,具體步驟為:
[0037](I)將第二步獲得的二進制文件所有函數(shù)作為網(wǎng)絡(luò)中的節(jié)點;
[0038](2)根據(jù)節(jié)點間是否有關(guān)系建立無權(quán)網(wǎng)絡(luò)圖;
[0039](3)計算節(jié)點間的相關(guān)度;
[0040](4)根據(jù)相關(guān)度計算權(quán)值;
[0041](5)建立加權(quán)網(wǎng)絡(luò)圖。
[0042]根據(jù)復(fù)雜網(wǎng)絡(luò)的冪率分布的非均勻特性,結(jié)合上一步生成的復(fù)雜網(wǎng)絡(luò)模型,找出與構(gòu)造臟數(shù)據(jù)相關(guān)的點以及調(diào)用頻率很高的點,關(guān)鍵節(jié)點用不同的顏色進行標(biāo)注,臟數(shù)據(jù)的路徑用特殊的顏色標(biāo)出,從而發(fā)現(xiàn)軟件缺陷隱患。
[0043]雖然結(jié)合了附圖描述了本發(fā)明的【具體實施方式】,但是對于本領(lǐng)域技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干變形、替換和改進,這些也應(yīng)視為屬于本發(fā)明的保護范圍。
【主權(quán)項】
1.一種基于復(fù)雜網(wǎng)絡(luò)的臟數(shù)據(jù)傳播路徑發(fā)現(xiàn)方法,其特征在于,包括如下步驟: 第一步:使用IDA的插件Hex-Rays對二進制文件進行反編譯,得到類似C語言的中間代碼; 第二步:使用GNU編譯器提供的工具對第一步生成的中間代碼進行數(shù)據(jù)搜集,捕獲函數(shù)調(diào)用路徑,在得到路徑后,使用Addr21ine將函數(shù)地址解析為函數(shù)名,之后對跟蹤數(shù)據(jù)進行處理和精簡,并生成矩陣格式;最后使用Graphviz生成函數(shù)調(diào)用關(guān)系圖; 第三步:解析上一步驟得到的函數(shù)調(diào)用關(guān)系圖,得到節(jié)點、邊、權(quán)重信息,并且計算得到節(jié)點度,建立帶關(guān)鍵節(jié)點的復(fù)雜網(wǎng)絡(luò)圖; 第四步:根據(jù)復(fù)雜網(wǎng)絡(luò)圖的冪率分布的非均勻特性,結(jié)合上一步生成的復(fù)雜網(wǎng)絡(luò)圖,找出與構(gòu)造臟數(shù)據(jù)相關(guān)的點以及調(diào)用頻率高的點,關(guān)鍵節(jié)點用不同的顏色進行標(biāo)注,臟數(shù)據(jù)的路徑用特殊的顏色標(biāo)出,從而發(fā)現(xiàn)軟件缺陷隱患。
2.如權(quán)利要求1所述的一種基于復(fù)雜網(wǎng)絡(luò)的臟數(shù)據(jù)傳播路徑發(fā)現(xiàn)方法,其特征在于,第三步建立復(fù)雜網(wǎng)絡(luò)圖采用以下方法,具體步驟如下: (1)將第二步獲得的二進制文件所有函數(shù)作為網(wǎng)絡(luò)中的節(jié)點; (2)根據(jù)節(jié)點間是否有關(guān)系建立無權(quán)網(wǎng)絡(luò)圖; (3)計算節(jié)點間的相關(guān)度; (4)根據(jù)相關(guān)度計算權(quán)值; (5)建立加權(quán)網(wǎng)絡(luò)圖。
【專利摘要】本發(fā)明提供一種基于復(fù)雜網(wǎng)絡(luò)的臟數(shù)據(jù)傳播路徑發(fā)現(xiàn)方法,能夠?qū)]有提供源碼的二進制程序進行翻譯,并對得到的結(jié)果進行處理,挖掘生成有用信息。第一步:對二進制文件進行反編譯,并得到C語言的中間代碼,在對一個簡單C語言程序進行測試后,得到中間語言代碼;第二步:捕獲函數(shù)調(diào)用路徑,將函數(shù)地址解析為函數(shù)名,并進行處理和精簡,并生成矩陣格式;最后生成函數(shù)調(diào)用關(guān)系圖;第三步:解析函數(shù)調(diào)用關(guān)系圖,得到節(jié)點、邊、權(quán)重信息,計算得到節(jié)點度,建立帶關(guān)鍵節(jié)點的復(fù)雜網(wǎng)絡(luò)圖;第四步:根據(jù)復(fù)雜網(wǎng)絡(luò)圖的冪率分布的非均勻特性,找出與構(gòu)造臟數(shù)據(jù)相關(guān)的點以及調(diào)用頻率高的點。
【IPC分類】G06F11-36
【公開號】CN104731705
【申請?zhí)枴緾N201310750367
【發(fā)明人】胡昌振, 趙小林, 郝剛, 薛靜鋒, 馬銳
【申請人】北京理工大學(xué)
【公開日】2015年6月24日
【申請日】2013年12月31日
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
平武县| 汝州市| 岳阳县| 牡丹江市| 十堰市| 鹤山市| 浙江省| 马公市| 晋中市| 汉沽区| 勐海县| 华池县| 祁阳县| 大洼县| 南丹县| 马山县| 女性| 九江市| 弥渡县| 怀集县| 泗洪县| 大竹县| 班玛县| 长丰县| 郴州市| 宝兴县| 伊金霍洛旗| 浮山县| 交口县| 道孚县| 荥经县| 宁波市| 舟曲县| 余庆县| 新疆| 河北区| 西林县| 泗水县| 昔阳县| 石门县| 巨鹿县|