[发明专利]基于卷积自编码器的库函数识别检测方法及系统有效
| 申请号: | 202110173051.4 | 申请日: | 2021-02-08 |
| 公开(公告)号: | CN112861131B | 公开(公告)日: | 2022-04-08 |
| 发明(设计)人: | 王风宇;刘学谦;孔健 | 申请(专利权)人: | 山东大学 |
| 主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F17/15;G06F17/16;G06F8/52;G06F8/53;G06N3/04;G06N3/08 |
| 代理公司: | 济南圣达知识产权代理有限公司 37221 | 代理人: | 李圣梅 |
| 地址: | 250101 山东*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 卷积 编码器 库函数 识别 检测 方法 系统 | ||
本公开提出了基于卷积自编码器的库函数识别检测方法及系统,包括:从各待测软件中提取出二进制函数对应的指令序列,然后提取出指令序列中的操作码;对两个操作码的连续序列进行计数,来为每个函数构造一个共现矩阵,用以作为输入来训练卷积自编码器模型,利用卷积自编码器模型进行瓶颈特征的提取,完成模型训练;用训练后的模型对库函数进行编码,然后对库函数进行相似性分析,识别出相似性系数最高的库函数并作为最终匹配项。拥有很好的泛用性,对各种新引入的匹配对象可以直接进行标记,并且获得很好的效果。
技术领域
本公开属于计算机技术领域,尤其涉及基于卷积自编码器的库函数识别检测方法及系统。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
二进制代码分析,也称为二进制分析,是通过分析软件的原始二进制文件以提取其内部设计和实现方法的实践。对于代码分析人员,二进制代码包含大量可以检索的信息,如代码(指令、基本块和函数)、结构(控制和数据流)和数据(全局变量和堆栈变量)。此外,二进制分析提供了有关程序行为的基本写实,因为计算机执行的是二进制文件(可执行文件),而不是直接执行源代码。在源代码不可用甚至二进制代码可能被混淆的情况下,二进制分析对于保护程序、防止恶意代码注入和篡改有着重要的意义。此外,随着当今大多数网络安全威胁从网络级攻击转移到应用层,二进制代码分析变得更加重要。
在过去的十年中,开源代码已成为软件开发的基础和创新的动力。常见的开发实践是在开发过程中,将开源库函数用于必要但通用的组件,以便开发人员可以专注于软件本身的功能开发和总体设计。从分析人员的角度来看,如果可以识别和标记导入的库函数,则分析负担将大大减轻。如果二进制代码与动态链接库链接,或者二进制代码的调试信息可用,则库函数的识别很容易。但是,对于使用静态链接库且剥离了调试信息的二进制文件,识别过程就会比较困难,因为其中不包含库函数的任何参考信息。
通过参考带有调试信息的函数库,可以匹配并标记目标软件中使用的库函数。但是,由于函数库版本、编译器、构建选项等的多样性,库函数的二进制代码匹配仍然是一项具有挑战性的任务。
在一个软件中识别库函数本质上属于二进制代码相似度检测(简称BCSD),这一领域已经开展了一些研究。在库函数识别的实际应用中,例如检测已知漏洞、对恶意软件进行反向分析等,广泛使用的传统二进制分析软件IDA Pro使用FLIRT(快速库识别和识别技术)来匹配库函数,其中类似字节级正则表达式的模式是从现有的库派生出来的。但是,这些匹配模式只能用于匹配在字节上几乎完全相同的库代码,对于不同库版本带来的二进制上的细微差别的泛化性能很差,不能很好地概括不同库版本中的细微差别。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110173051.4/2.html,转载请声明来源钻瓜专利网。





