[发明专利]二进制代码文件溯源方法在审
| 申请号: | 201910853284.1 | 申请日: | 2019-09-10 | 
| 公开(公告)号: | CN110569629A | 公开(公告)日: | 2019-12-13 | 
| 发明(设计)人: | 陶金龙;纪祖赑;高艳鹍;冯大成;张建伟;汪进银 | 申请(专利权)人: | 北京计算机技术及应用研究所 | 
| 主分类号: | G06F21/16 | 分类号: | G06F21/16;G06F8/53 | 
| 代理公司: | 11011 中国兵器工业集团公司专利中心 | 代理人: | 赵欣 | 
| 地址: | 100854*** | 国省代码: | 北京;11 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 二进制代码 溯源 时间和空间复杂度 二进制文件 文件相似性 倒排索引 汉明距离 汇编代码 汇编指令 代码库 反汇编 准确率 比对 分析 | ||
1.一种二进制代码文件溯源方法,其特征在于,具体包括以下步骤:
第一步,二进制文件反汇编:将二进制文件中的代码段转化成汇编代码;
第二步,二进制代码特征计算:基于汇编代码生成二进制代码文件的Simhash值;
第三步,基于特征的文件溯源:通过计算两个Simhash值之间的汉明距离,就可以判定两个二进制代码文件是否相似,完成二进制代码文件的溯源。
2.根据权利要求1所述的一种二进制代码文件溯源方法,其特征在于,第一步中,将二进制文件中的代码段转化成汇编代码后,删除与程序代码特征无关信息,并对获取的汇编代码进行处理。
3.根据权利要求2所述的一种二进制代码文件溯源方法,其特征在于,对获取到的汇编代码进行如下处理:
(1)寄存器依据所占位数分别标准化为REG32、REG16、REG18;
(2)内存均表示为MEM;
(3)立即数表示为VAL;
(4)CALL指令调用函数时统一规范化为“CALL FUNCTION”;
(5)跳转指令统一规范化为“JZ LOCATION”。
4.根据权利要求2所述的一种二进制代码文件溯源方法,其特征在于,第二步中,二进制代码特征计算过程主要包括分词、散列、加权、合并、降维,最终生成长度为64位的Simhash特征值。
5.根据权利要求4所述的一种二进制代码文件溯源方法,其特征在于,第二步中,二进制文件代码特征计算过程具体如下:
分词:按照汇编指令对汇编代码进行分词处理,同时根据每种指令出现的频率,赋予权值;
散列:针对每种汇编指令使用相同的哈希函数计算出一个64位的指纹值α,此时的汇编指令就转化成一系列的数字;
加权合并:针对散列后的每种汇编指令进行加权合并处理,形成向量β;
降维:针对向量β进行降维处理,形成最终的特征值S,特征值S就是最终形成的64位二进制代码文件Simhash特征值。
6.根据权利要求5所述的一种二进制代码文件溯源方法,其特征在于,加权合并中,如果指纹值α的第i位为1,0<i<64,则向量β的第i位加上该汇编指令的权重,否则减去该汇编指令的权重。
7.根据权利要求5所述的一种二进制代码文件溯源方法,其特征在于,加权合并中,如果向量β的第i位大于0,则将S的第i位设为1,否则设为0。
8.根据权利要求1-7任一项所述的一种二进制代码文件溯源方法,其特征在于,第三步中,通过查找汉明距离为3以内的二进制代码文件即可实现二进制代码文件的相似性比对。
9.根据权利要求1-7任一项所述的一种二进制代码文件溯源方法,其特征在于,第三步的具体方法如下:
将64位Simhash特征值S切分为相同长度的4部分,每部分16位,即S=[s1,s2,s3,s4],然后针对s1、s2、s3、s4和S以及二进制代码文件创建倒排索引;
对于一个待比对的Simhash特征值SP,使用相同方式切分为4个部分,即SP=[sp1,sp2,sp3,sp4],然后针对spi检索具有相同对应部分si的Simhash特征值S,i=1,2,3,4,并进行汉明距离的计算,如果特征值SP和S之间的汉明距离不大于3,则说明这两个特征值对应的二进制文件相似,也即表明待比对文件溯源成功。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京计算机技术及应用研究所,未经北京计算机技术及应用研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910853284.1/1.html,转载请声明来源钻瓜专利网。





