[发明专利]软件基因视角下多粒度信息融合的二进制代码溯源方法有效
申请号: | 202110656320.2 | 申请日: | 2021-06-11 |
公开(公告)号: | CN113536308B | 公开(公告)日: | 2023-01-06 |
发明(设计)人: | 刘福东;黄一钊;张春燕;单征;桂海仁;乔猛;熊其冰;唐柯;徐恋秋;宋智辉 | 申请(专利权)人: | 中国人民解放军战略支援部队信息工程大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F8/53;G06F16/28;G06N3/04;G06N3/08 |
代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 张立强 |
地址: | 450000 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件 基因 视角 粒度 信息 融合 二进制 代码 溯源 方法 | ||
1.一种软件基因视角下多粒度信息融合的二进制代码溯源方法,其特征在于,包括:
步骤1:提取目标程序的软件基因序列、软件基因、软件基因图及从IDA直接可提取的常用信息至sqlite数据库;所述从IDA直接可提取的常用信息包括:通过IDA提取的正常指令序列、基本块、以及控制流图和程序调用图的信息;
步骤2:将sqlite数据库中的软件基因序列使用词嵌入之后再进行双向GRU模型的训练,得到特征向量;
所述步骤2中词嵌入过程包括:
首先将单词转成字典的形式,直接建立词典索引结构,使用一句话看成一个单词的形式,然后再以句子为列,为每个句子建立索引结果,接下来进行padding操作,然后再进行词的初始化;
步骤3:基于步骤2训练后得到的特征向量及sqlite数据库中的信息进行多粒度序列信息融合,得到包含多粒度信息的特征向量,然后通过图卷积进行结构化学习;
所述步骤3中,多粒度序列信息融合过程包括:
通过字典的最大长度进行从下标1开始的遍历,通过字典中的键值对查找到软件基因所对应的向量维度,然后通过搜索函数在序列向量中找到所对应的向量维度,并且通过向量叠加的方式将其信息进行融合,最后通过拼接将提取出来的各个向量整合在一起,得到包含多粒度信息的特征向量;
步骤4:通过全连接层将学习到的隐层空间特征向量表示映射到样本标记空间,作为判决的投票值,最终得出分类结果。
2.根据权利要求1所述的软件基因视角下多粒度信息融合的二进制代码溯源方法,其特征在于,所述提取目标程序的软件基因序列、软件基因、软件基因图包括:
在提取二进制控制流语义的开始对二进制代码进行软件基因序列程序切分,并将其一维二进制代码序列根据控制流关系转化为软件基因图。
3.根据权利要求2所述的软件基因视角下多粒度信息融合的二进制代码溯源方法,其特征在于,所述软件基因序列程序切分包括:
将分支指令作为软件基因的划分边界,并记录切分、调用、回调关系以构成流路并最终生成软件基因图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军战略支援部队信息工程大学,未经中国人民解放军战略支援部队信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110656320.2/1.html,转载请声明来源钻瓜专利网。