在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

二進制代碼相似度比較研究技術匯總

清歡科技 ? 來源:清歡科技 ? 作者:清歡科技 ? 2022-10-13 08:59 ? 次閱讀

在對二進制應用程序進行安全分析過程中,二進制代碼相似度比較技術是重要的技術手段之一,基于此技術,可以實現對惡意代碼極其變種的追蹤,已知漏洞檢測、補丁存在性檢測。該技術基礎理論依據是如果源代碼中存在的屬性(惡意代碼、已知漏洞、漏洞修復補丁)即使相同源代碼編譯出不同的二進制代碼(cpu架構、OS、編譯選項等會直接導致編譯出來的二進制會存在較大的差別),這些屬性在二進制代碼中也是存在的(好像是廢話,不然編譯構建工具就有問題了)。因此若在一個樣本二進制文件中已知存在上述類型的屬性,如果發現另外一個待檢測二進制代碼和樣本二進制代碼相似,那么可以認為待檢測二進制代碼也存在相同類型的屬性。

我們知道編譯生成二進制代碼的影響因素非常的多,同一套源代碼基于不同因素的組合可以生成非常多不同二進制程序。

CPU架構:X86、ARM、MIPS、PPC、RISC-V;

架構位數:32bits、64bits;

OS:Linux、Windows、Android鴻蒙、VxWork;

編譯選項:O0~O3;

安全編譯選項:BIND_NOW、NX、PIC、PIE、RELRO、SP、FS、Ftrapv等;

按這些選項可以有5x2x5x4x8 =1600個組合,從中可以看出二進制代碼相似度比較技術不管是學術界還是工業界來說都是一個挑戰技術。但是基于廣闊的應用前景,20多年來學術界一直在不停的探索和研究新的方法想來解決這個技術挑戰,并且也取得了一定的成果,下面就該方面的技術進行一些梳理,讓大家對二進制代碼相似度比較技術有一個大致的了解。

源代碼到二進制代碼的生成過程

pYYBAGNGp_2Ab1jJAAClwC8Ks0Y533.png

從源代碼編譯生成二進制過程中,有很多有助于理解代碼意圖的信息會被丟失,比如:函數名稱、變量名稱、數據結構定義、變量類型定義、注釋信息等;因為二進制代碼是給CPU運行用的,因此這些信息對計算機來說不是必須的,但這些信息對人類來理解代碼是有很大幫助的,這就大大的提升了二進制代碼語義理解的難度。其次,為了更好的保護二進制代碼的知識產權或最大程度的提升對二進制代碼的理解難度,還會對二進制代碼進行混淆處理,使得混淆后的二進制代碼與編譯器編譯出來的二進制之間又存在很大的不同。

從歷史發表的二進制代碼相似度比較技術論文統計來看,有61種二進制代碼相似性比較方法,這些在不同研究場所發表的數百篇論文涵蓋了計算機安全、軟件工程、編程語言和機器學習等計算機科學領域,主要發表在IEEE S&P、ACM CCS、USENIX Security、NDSS、ACSAC、RAID、ESORICS、ASIACCS、DIMVA、ICSE、FSE、ISSTA、ASE、MSR等頂級刊物上。根據上述論文得到如下統計數據:

輸入比較:一對一(21種)、一對多(30種)、多對多(10種);

比較方法:大多數方法使用單一類型的比較:相似性(42種)、等效性(5種)和相同(2種);即使方法中僅使用一種類型的比較,它也可能有不同的輸入比較不同;

分析粒度:分為輸入粒度、方法粒度;有8中不同的比較粒度,分別是指令級、基本快、函數以及相關集合、執行軌跡、程序。最常見的輸入粒度是函數(26個),然后是整個程序(25個)和相關的基本塊(4)。最常見的方法粒度是函數(30個),然后是基本塊(20);

語法相似性:通過語法方法來捕獲代碼表示的相似性,更具體地說,它們比較指令序列。最常見的是序列中的指令在虛擬地址空間中是連續的,屬于同一函數。

語義相似性:語義相似性是指所比較的代碼是否具有類似的效果,而語法相似性則是指代碼表示中的相似性。其中有26種計算語義相似度的方法。它們中的大多數以基本塊粒度捕獲語義,因為基本塊是沒有控制流的直線代碼。有三種方法用于捕獲語義:指令分類、輸入-輸出對和符號公式。

結構相似度:結構相似性計算二進制代碼的圖表示上的相似性。它位于句法和語義相似性之間,因為圖可以捕獲同一代碼的多個句法表示,并可以用語義信息注釋。結構相似性可以在不同的圖上計算。常見的有控制流圖CFG、過程間控制流圖ICFG、調用圖CG;(子)圖同構—大多數結構相似性方法是檢查圖同構的變化,其中涉及到方法有K子圖匹配、路徑相似性、圖嵌入。

基于特征的相似度:計算相似性的常見方法(28種)是將一段二進制代碼表示為向量或一組特征,使得類似的二進制代碼具有相似的特征向量或特征集。這里應用最多的是利用機器學習來實現。

Hash匹配相似度:對于多維向量數據相似度快速匹配,通常使用局部敏感hash算法LSH來實現。

跨架構比較方法:對不同CPU架構二進制代碼的相似度比較,通常跨體系結構方法通過計算語義相似性來實現。方法之一是通過轉換成與架構無關的中間語言IR來處理(7種),另外一種是使用基于特征的相似性方法(9種)。

分析類型:從分析類型來看有:靜態分析、動態分析、數據流分析3種類型;

歸一化方法:語法相似性方法通常會對指令進行規范化,來盡量減少語法上的差異;有33種方法使用指令規范化。具體的包括操作數移除法、操作數歸一化法、助記符歸一化法

論文發表的時間、發表刊物、技術方法匯總

poYBAGNGqAWABLO7AARTgKRVwF8195.png

不同二進制代碼相似度比較方法的具體應用情況

pYYBAGNGqAmADxvWAADoMUuBQ_s268.png

從上表中可以看出二進制代碼相似度比較主要應用于漏洞查找,其次是補丁分析和惡意代碼分析;

針對上述不同的技術方法,分別從魯棒性、準確度評估與比較、性能指標3個維度進行評測,結果如下:

poYBAGNGqA6ARnB9AARbK0K2eBU214.png

總結:二進制代碼相似性比較技術隨著研究的持續進行,學術界雖然取得的一定的進步和成果,但仍然還有很多挑戰在等著攻克,小片段的二進制代碼比較,源代碼與二進制的相似度比較、數據相似度比較、語義關系、可擴展性、混淆、比較方法等等都是后續需要持續研究的方向。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 二進制
    +關注

    關注

    2

    文章

    804

    瀏覽量

    42174
  • 代碼
    +關注

    關注

    30

    文章

    4891

    瀏覽量

    70306
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    偏移二進制二進制補碼如何和實際數據對應,如何轉換?

    偏移二進制二進制補碼如何和實際數據對應,如何轉換,請哪位高手解惑
    發表于 01-16 06:01

    bcd編碼的應用 bcd與二進制的區別

    BCD(Binary-Coded Decimal)編碼是一種二進制編碼形式,用于表示十進制數字。它將每個十進制數字(0-9)直接編碼為一個四位二進制數。BCD編碼的主要優點是易于閱讀和
    的頭像 發表于 12-20 17:11 ?2841次閱讀

    hex格式和二進制的區別

    HEX格式和二進制在多個方面存在顯著的區別。以下是對這兩者的對比: 一、定義與表示方式 HEX格式 : HEX,全稱為Intel HEX,是一種用于存儲和傳輸數據到嵌入式系統(如單片機)的文件格式
    的頭像 發表于 11-18 15:24 ?1566次閱讀

    在線二進制編碼器:數據轉換的快捷通道

    在數字時代,數據的快速轉換與處理至關重要。二進制編碼,作為計算機內部數據表示的基礎,將信息轉化為0和1的序列,為數字世界構建了溝通的橋梁。然而,對于非專業用戶來說,手動進行二進制編碼既繁瑣又易出錯
    的頭像 發表于 11-15 09:01 ?1651次閱讀

    base64字符串轉換為二進制文件

    一些編程知識。以下是將Base64字符串轉換為二進制文件的一般步驟,以及一個簡單的Python示例代碼。 步驟: 獲取Base64字符串 :首先,你需要有一個Base64編碼的字符串。 解碼Base64字符串 :使用編程語言提供的庫函數將Base64字符串解碼為
    的頭像 發表于 11-10 10:55 ?2688次閱讀

    ASCII碼和二進制的轉換關系

    。ASCII碼使用7位二進制數來表示128個不同的字符,包括大小寫英文字母、數字0-9以及一些控制字符和標點符號。后來,ASCII碼被擴展到了8位,即ASCII-8BIT,可以表示256個不同的字符。 二進制
    的頭像 發表于 11-10 09:50 ?3702次閱讀

    二進制編碼器的精度與分辨率

    編碼器是一種將模擬信號(如電壓、溫度等)轉換為二進制代碼的設備。它通常包含一個模數轉換器(ADC),該轉換器通過比較輸入信號與一系列參考電壓來確定輸入信號的值。編碼器的輸出是一個二進制
    的頭像 發表于 11-06 09:56 ?1095次閱讀

    二進制編碼器在自動化領域的作用

    二進制編碼器是一種將二進制信號轉換為數字信號的電子設備,廣泛應用于自動化領域。 一、二進制編碼器的工作原理 二進制編碼器是一種將二進制信號轉
    的頭像 發表于 11-06 09:53 ?847次閱讀

    二進制編碼器在機器人中的應用

    二進制信號,為機器人提供精確的狀態信息。 二進制編碼器的工作原理 二進制編碼器是一種將物理量(如位置、速度等)轉換為二進制代碼的設備。在機
    的頭像 發表于 11-06 09:48 ?918次閱讀

    二進制編碼器的種類及特點

    二進制編碼器是一種電子電路,用于將二進制信號轉換為其他格式,如十進制、格雷碼等。以下是一些常見的二進制編碼器種類及其特點: 優先編碼器(Priority Encoder) : 特點 :
    的頭像 發表于 11-06 09:47 ?1311次閱讀

    二進制編碼器應用場景 二進制編碼器與模擬編碼器比較

    限性。 二進制編碼器概述 二進制編碼器是一種將輸入信號轉換為二進制代碼的設備。它通常用于數字系統中,將模擬信號或非二進制信號轉換為
    的頭像 發表于 11-06 09:45 ?1149次閱讀

    二進制編碼器工作原理 如何選擇二進制編碼器

    二進制編碼器是一種數字電路,它將輸入的二進制代碼轉換為對應的輸出信號。在數字系統中,編碼器用于將數據從一種形式轉換為另一種形式,以便于處理和傳輸。 二進制編碼器工作原理 輸入與輸出關系
    的頭像 發表于 11-06 09:44 ?2304次閱讀

    二進制補碼及與原碼的互相轉換方法

    大沙把一些基礎的知識說清楚,本文介紹二進制補碼及與原碼的轉換方法。 先說原碼,原碼?是一種計算機中對數字的二進制定點表示方法。在原碼表示法中,數值前面增加了一位符號位,最高位為符號位,0表示正數,1
    的頭像 發表于 09-19 22:25 ?1340次閱讀

    計算機采用二進制的原因不包括什么

    計算機采用二進制的原因主要是基于其物理實現的簡便性、邏輯運算的簡化、以及電子元件的穩定性。然而,這個問題要求我們探討計算機采用二進制的原因不包括什么,這實際上是一個反向思考的問題。在回答這個問題之前
    的頭像 發表于 09-04 17:03 ?1139次閱讀

    二進制處理中的一些技巧

    二進制和十進制的處理中,有時候一些小技巧是很有用的。 1、把十進制數轉換成二進制數 (1)在MATLAB中有一個函數dec2bin,可以把正整數轉換為2
    的頭像 發表于 07-05 11:51 ?910次閱讀
    主站蜘蛛池模板: 欧美xx网站 | 亚洲一区中文字幕在线观看 | 午夜影视免费完整高清在线观看网站 | 国产性色视频 | 色多多www视频在线观看免费 | 五月婷婷丁香综合 | 91华人在线视频 | 公妇乱淫日本免费观看 | 免费公开视频人人人人人人人 | 91综合网| 五月婷婷 六月丁香 | 午夜视频高清在线aaa | 国产全肉乱妇杂乱视频 | 好大好猛好爽好深视频免费 | 一级毛片在线免费视频 | 手机看片国产精品 | 欧美18xxoovideos | 岛国中文字幕 | 成人午夜大片免费看爽爽爽 | 色吧久久 | 超级乱淫片67194免费看 | 亚洲国产成人精彩精品 | 日本精品高清一区二区2021 | 手机看片自拍自拍自拍 | 激情亚洲色图 | 色宅男 | 久久亚洲综合色 | 男啪女r18肉车文 | www.男人的天堂 | 天天色天天操综合网 | 黄色日本视频 | 国产精品久久久久影视不卡 | 手机看片福利久久 | 色婷婷资源网 | 色噜噜狠狠色综合中文字幕 | 四虎永久在线免费观看 | 日本一区二区三区在线网 | 夜夜爽66 | 国产精品久久久久aaaa | 偷偷要色偷偷 | 四虎永久在线精品网址 |