32、语义功能识别技术解析

语义功能识别技术解析

在软件开发与安全分析领域,准确识别二进制代码中的功能至关重要。本文将介绍一种基于静态分析和程序模拟的功能识别方法——SimID,探讨其原理、评估其效果,并分析其在实际场景中的应用潜力。

1. 相关研究

二进制代码相似度检测是一个活跃的研究领域,不同的研究动机催生了多种检测方法。近年来,机器学习技术的发展极大地推动了二进制相似度研究,基于机器学习的方法在检测代码相似度方面比基于模糊哈希的简单方法更加准确。

语义二进制代码相似度研究旨在寻找两段二进制代码之间的语义相似性,或独立于具体实现来识别功能。过去,人们提出了多种静态和动态的方法:
- 动态方法 :通过执行程序并记录其运行时信息来进行功能识别。例如,Egele等人引入了 blanket - execution 方法,通过比较函数执行时的副作用来匹配二进制文件中的函数;Wang 和 Wu 提出了内存模糊测试方法,通过收集程序行为并计算相似度得分来训练机器学习模型;Kargén 和 Shahmehri 记录两个语义相似二进制文件的运行时跟踪信息,以输入和输出值作为匹配特征;Hu 等人的 Mockingbird 工具通过提取系统调用信息和条件操作的签名来识别跨架构二进制文件中的函数;Calvet 等人的 Aligot 工具基于输入 - 输出参数检测加密函数。
- 混合方法 :结合了静态和动态分析的优点。例如,Ming 等人通过切片段等价检查来解决二进制文件差异问题;Hu 等人的 CACompare 工具通过模拟函数来提取语义签名,包括输入和输出值、比较操作数等。
- 静态方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值