論文調研_Awesome-Binary-Similarity

0. 概述

對 Awesome-Binary-Similarity 中列出的論文進行調研,重點總結這些論文的研究動機未來研究方向

1. 調研內容

論文名稱發表時間發表期刊期刊等級研究單位
BinaryAI: Binary Software Composition Analysis via Intelligent Binary Source Code Matching2024年ICSECCF A南方科技大學

研究動機:Binary-to-Binary SCA 中第三方庫(Third-Party Libraries,TPL)的可擴展性較差。特別是,由于自動編譯相關的復雜性,只有包管理器維護的源包的有限子集可以編譯為多個版本的二進制文件并合并到 SCA 數據庫中。大量的開源 C/C++ 項目很難包含在 TPL 數據集中,這受到手動編譯的大量開銷的阻礙。綜上所述,TPL 數據集的有限規模可能會顯著已知 SCA 的實用性,因此可能無法識別所包含的 TPL 和相應的漏洞。為什么不使用 Binary-to-Binary SCA?

現有的 Binary-to-Source SCA 工具利用基于語法特征(例如字符串文字)來建立二進制代碼和 TPL 源代碼之間的對應關系,這可能無法很好地推廣到所有場景。(1)這些基本特征在大規模 TPL 數據集中往往表現出很大程度地冗余。例如,字符串 "407 Proxy Authentication Need"(表示常見地 HTTP 錯誤)在數據集中地 50 多個 TPL 中重復。冗余語法特征的存在會降低其獨特性和有效性,從而不可避免地產生誤報,從而降低 SCA 的精度。(2)TPL 和目標二進制文件之間很少甚至不存在共同的語法特征,尤其是哪些被剝奪了字符串文字和導出函數名稱的二進制文件。(3)從 C/C++ 源代碼提取字符串的技術本質上并不穩健,例如,通過連接宏定義字符串和常量字符串引起字符串丟失,從而與從相應 TPL 中的二進制文件中提取的字符串文字不匹配,從而導致召回二進制到源 SCA 的功能也可能受到損害。Binary-to-Source SCA 存在哪些挑戰?

因此,有必要在 Binary-to-Source SCA 中采用細粒度的特征(例如函數級特征),以便可以處理高級語義信息,以減輕基本特征的冗余和不可靠。考慮到編譯引入的二進制函數和源函數之間的巨大差異,論文嘗試通過采用基于 Transformer 模型來生成函數級嵌入并相應地進行二進制源代碼匹配來增強 Binary-to-Source SCA。

未來展望:盡管 BinaryAI 在實驗中取得了優異的結果,,但仍需要進一步擴大測試數據集的規模和覆蓋范圍,以驗證其在更廣泛場景下的有效性。目前 BinaryAI 主要針對 C/C++ 生態系統, 未來可以考慮將其擴展到其他編程語言的二進制分析。

未來可以進一步研究如何利用代碼語義信息, 例如控制流圖、調用圖等, 來增強二進制源代碼匹配的效果。探索如何將 BinaryAI 與其他二進制分析技術(如模糊測試、漏洞檢測等)進行有效集成, 從而提升整體的安全分析能力。研究如何將 BinaryAI 應用于更廣泛的場景, 如移動應用、固件等, 以推動二進制分析技術在軟件供應鏈安全領域的應用。

論文名稱發表時間發表期刊期刊等級研究單位
Code is not Natural Language: Unlock the Power of Semantics-Oriented Graph Representation for Binary Code Similarity Detection2024年USENIX頂會上海交通大學

研究動機:二進制代碼相似性檢測(BCSD)是一項關鍵的基礎任務,在多個重要應用中發揮重要作用,如漏洞搜索、軟件抄襲檢測等。現有的BCSD方法主要基于指令流或控制流圖(CFG),但存在一些局限性。指令流方法將二進制代碼當作自然語言處理,忽視了代碼的語義結構;CFG方法僅利用控制流結構,忽略了其他重要的語義。論文指出,與自然語言不同,二進制代碼具有明確定義的語義結構,包括指令內部結構、指令間關系(如def-use、分支)以及隱式約定(如調用約定)。

未來展望:對于一些由編譯器引入的"臟"語義(如棧幀的使用),還需要進一步清洗和優化,以得到更加純凈的語義表示。目前僅考慮了內存效果模型,I/O效果模型也可能對某些任務有幫助,值得進一步探索。對于無法完全恢復的間接跳轉控制流,如何為神經網絡提供必要信息以推斷缺失的控制流仍是一個挑戰。

將SOG應用于其他二進制代碼相關任務,如漏洞搜索、庫函數恢復、軟件抄襲檢測等,進一步驗證其適用性。研究如何整合更多的語義信息,如字符串、整數、外部函數引用等,進一步豐富SOG的表達能力。探索如何克服間接跳轉控制流恢復失敗的問題,為神經網絡提供更完整的代碼語義信息。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38896.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38896.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38896.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

每日一題---OJ題:分隔鏈表

片頭 嗨!小伙伴們,大家好!今天我們一起來看看這道題----分隔鏈表 emmmm,這道題,看描述應該不算太難,我們一起來畫一畫圖唄! 題目讀懂了,那么如何破解這道題呢? 思路&…

microApp vue3+vite+ts 子應用接入改造

公司做了一個平臺,使用的是microApp,需要把現有的一些系統作為子系統改造一下接入這個平臺,所以下面我說的都是子應用的改造,vue2的改造比較簡單,主要的vue3+vite+ts的改造。 參考官網 1、設置跨應用支持 vite默認開啟跨域支持,不需要額外配置。 2、注冊卸載函數 // …

nand flash spec

nand flash簡介 nand flash是一種非易失性存儲器。它具有高存儲密度、低成本和高耐用性的特點。 nand flash的特性是非易失性,即在電源關閉的情況下,數據仍然保留。 nand flash的存儲單元由浮動柵極晶體管組成,每個存儲單元可以存儲一位或多…

短視頻世界對我溫柔以待:成都柏煜文化傳媒有限公司

短視頻世界對我溫柔以待 在繁忙的都市生活中,每個人都在為生活奔波,為夢想努力。而在這個快節奏的時代里,短視頻如同一股清流,以其獨特的魅力,為我帶來了片刻的寧靜與溫柔。它像是一個無聲的朋友,在我疲憊…

(必看圖文)Hadoop集群安裝及MapReduce應用(手把手詳解版)

前言 隨著大數據時代的到來,處理和分析海量數據已成為企業和科研機構不可或缺的能力。Hadoop,作為開源的分布式計算平臺,因其強大的數據處理能力和良好的可擴展性,成為大數據處理領域的佼佼者。本圖文教程旨在幫助讀者理解Hadoop集…

Mysql面試合集

概念 是一個開源的關系型數據庫。 數據庫事務及其特性 事務:是一系列的數據庫操作,是數據庫應用的基本邏輯單位。 事務特性: (1)原子性:即不可分割性,事務要么全部被執行,要么就…

代碼隨想錄1數組

1 二分查找 Leetcode704 1 [l,r]區間 l 0, r nums.length-1; while(l<r) 因為lr有意義 2 [l,r)區間 l 0, r nums.length; while(l<r) Leetcode35 class Solution {public int searchInsert(int[] nums, int target) {int l0,rnums.length;while(l<r){int m l(…

使用設計模式來增強你的 SpringBoot 開發

SpringBoot 是一個出色的框架&#xff0c;可以快速構建強大而高效的應用程序。但你是否知道設計模式可以將 SpringBoot 開發提升到一個新的水平&#xff1f; ? 設計模式的重要性&#xff1a;了解設計模式如何促進代碼的可重用性、可維護性和整體應用程序健康。 ? SpringBoot…

在Spring Data JPA中使用@Query注解

目錄 前言示例簡單示例只查詢部分字段&#xff0c;映射到一個實體類中只查詢部分字段時&#xff0c;也可以使用List<Object[]>接收返回值再復雜一些 前言 在以往寫過幾篇spring data jpa相關的文章&#xff0c;分別是 Spring Data JPA 使用JpaSpecificationExecutor實現…

python 筆試面試八股(自用版~)

1 解釋型和編譯型語言的區別 解釋是翻譯一句執行一句&#xff0c;更靈活&#xff0c;eg&#xff1a;python; 解釋成機器能理解的指令&#xff0c;而不是二進制碼 編譯是整個源程序編譯成機器可以直接執行的二進制可運行的程序&#xff0c;再運行這個程序 比如c 2 簡述下 Pyth…

運維鍋總詳解RocketMQ

本文嘗試從Apache RocketMQ的簡介、主要組件及其作用、3種部署模式、Controller集群模式工作流程、最佳實踐等方面對其進行詳細分析。希望對您有所幫助&#xff01; 一、Apache RocketMQ 簡介 Apache RocketMQ 是一個開源的分布式消息中間件&#xff0c;由阿里巴巴集團開發并…

祝賀《華為戰略管理法:DSTE實戰體系》被《中國企業家》雜志評為企業家枕邊書50本之一(宏觀戰略類書籍)

祝賀《華為戰略管理法&#xff1a;DSTE實戰體系》被《中國企業家》雜志評為企業家枕邊書50本之一 2024年4月23日&#xff08;周二&#xff09;下午13:00&#xff0c;《中國企業家》雜志如期舉辦“每天都是讀書日”線下活動。 《中國企業家》雜志攜手商界大咖共同推選50本枕邊書…

Vue.js中的計算屬性

Vue.js中的計算屬性&#xff08;computed properties&#xff09;是用于聲明響應式依賴的屬性。它們會根據它們的依賴進行緩存&#xff0c;并且只有在相關依賴發生改變時才會重新求值。這使得它們非常適合用來處理復雜邏輯和數據處理。 基本用法 在Vue實例中&#xff0c;可以…

鐳速實現AD域集成助力企業文件安全傳輸管控

在當今這個信息量爆炸擴張的年代&#xff0c;企業數據宛如一座蘊藏無限價值的寶庫&#xff0c;它不僅是企業核心競爭力的載體&#xff0c;也成為了各種潛在風險的聚焦點。隨著數字化轉型步伐的加快&#xff0c;安全文件傳輸的管理控制顯得尤為重要&#xff0c;它構成了保護企業…

各類排序方法 歸并排序 擴展練習 逆序對數量

七月挑戰一個月重刷完Y總算法基礎題&#xff0c;并且每道題寫詳細題解 進度:(3/106) 歸并排序的思想也是分而治之 歸并優點&#xff1a;速度穩定,排序也穩定 排序也穩定&#xff08;數組中有兩個一樣的值&#xff0c;排序之后他們的前后順序不發生變化&#xff0c;我們就說…

Leetcode 2065. 最大化一張圖中的路徑價值(DFS / 最短路)

Leetcode 2065. 最大化一張圖中的路徑價值 暴力DFS 容易想到&#xff0c;從0點出發DFS&#xff0c;期間維護已經走過的距離&#xff08;時間&#xff09;和途徑點的權值之和&#xff0c;若訪問到0點則更新答案&#xff0c;若下一步的距離與已走過的距離和超出了maxTime&#…

oracle sql語句 排序 fjd = ‘0101‘ 排在 fjd = ‘0103‘ 的前面

要實現這個排序需求&#xff0c;你可以使用 CASE 表達式來自定義排序邏輯。假設你有一個表格名為 your_table&#xff0c;并且有一個字段 fjd 存儲類似 ‘0101’, ‘0103’ 這樣的值&#xff0c;你可以這樣編寫 SQL 查詢&#xff1a; SELECT * FROM your_table ORDER BY CASE …

專題六:Spring源碼之初始化容器BeanFactory

上一篇咱們通過一個例子介紹初始化容器上下文相關內容&#xff0c;并通過兩個示例代碼看到了Spring在設計階段為我預留的擴展點&#xff0c;和我們應該如何利用這兩個擴展點在Spring初始化容器上下文階段為我們提供服務。這一篇咱們接著往下看。 老這樣子下回到refresh方法上來…

第55期:MySQL 頻繁 Crash 怎么辦?

社區王牌專欄《一問一實驗&#xff1a;AI 版》全新改版歸來&#xff0c;得到了新老讀者們的關注。其中不乏對 ChatDBA 感興趣的讀者前來咨詢&#xff0c;表達了想試用體驗 ChatDBA 的意愿&#xff0c;對此我們表示感謝 &#x1f91f;。 目前&#xff0c;ChatDBA 還在最后的準備…

MSVCR120.DLL丟失的多種修復方法,助你快速解決dll問題

在日常生活和工作中&#xff0c;電腦已經成為我們不可或缺的工具。然而&#xff0c;在使用電腦的過程中&#xff0c;我們常常會遇到一些問題&#xff0c;其中之一就是電腦運行軟件時提示找不到msvcr120.dll。如果該文件缺失或損壞&#xff0c;可能會導致依賴它的應用程序無法啟…