论文调研_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.mzph.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;可能会导致依赖它的应用程序无法启…