论文调研_Awesome-Binary-Similarity

0. 概述

对 Awesome-Binary-Similarity 中列出的论文进行调研,重点总结这些论文的研究动机未来研究方向

1. 调研内容

论文名称 发表时间 发表期刊 期刊等级 研究单位
BinaryAI: Binary Software Composition Analysis via Intelligent Binary Source Code Matching 2024年 ICSE CCF 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 Detection 2024年 USENIX 顶会 上海交通大学

研究动机:二进制代码相似性检测(BCSD)是一项关键的基础任务,在多个重要应用中发挥重要作用,如漏洞搜索、软件抄袭检测等。现有的BCSD方法主要基于指令流或控制流图(CFG),但存在一些局限性。指令流方法将二进制代码当作自然语言处理,忽视了代码的语义结构;CFG方法仅利用控制流结构,忽略了其他重要的语义。论文指出,与自然语言不同,二进制代码具有明确定义的语义结构,包括指令内部结构、指令间关系(如def-use、分支)以及隐式约定(如调用约定)。

未来展望:对于一些由编译器引入的"脏"语义(如栈帧的使用),还需要进一步清洗和优化,以得到更加纯净的语义表示。目前仅考虑了内存效果模型,I/O效果模型也可能对某些任务有帮助,值得进一步探索。对于无法完全恢复的间接跳转控制流,如何为神经网络提供必要信息以推断缺失的控制流仍是一个挑战。

将SOG应用于其他二进制代码相关任务,如漏洞搜索、库函数恢复、软件抄袭检测等,进一步验证其适用性。研究如何整合更多的语义信息,如字符串、整数、外部函数引用等,进一步丰富SOG的表达能力。探索如何克服间接跳转控制流恢复失败的问题,为神经网络提供更完整的代码语义信息。

  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vue-awesome-swiper是一个用于Vue.js的轮播组件库。根据引用和引用的信息,安装vue-awesome-swiper有不同的方法。 在最新版本中,你可以通过npm安装swiper和vue-awesome-swiper依赖,使用以下命令进行安装: ``` npm install swiper vue-awesome-swiper --save ``` 而在版本3中,你只需要安装vue-awesome-swiper依赖,使用以下命令进行安装: ``` npm install vue-awesome-swiper --save ``` 一旦你完成了安装,你就可以在你的Vue项目中使用vue-awesome-swiper了。根据引用,你需要全局引入Vue、vue-awesome-swiper,并引入相应的样式文件。可以通过以下方式实现: ``` import Vue from 'vue' import VueAwesomeSwiper from 'vue-awesome-swiper' import 'swiper/css/swiper.css' Vue.use(VueAwesomeSwiper, /* { 全局组件的默认选项 } */) ``` 这样,你就可以在你的Vue组件中使用vue-awesome-swiper来创建轮播功能了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [vue中swiper vue-awesome-swiper的使用方法和爬坑大法](https://blog.csdn.net/u012570307/article/details/107203851)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Vue 之 插件 轮播组件 vue-awesome-swiper 的简单使用整理](https://blog.csdn.net/u014361280/article/details/126483457)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值