基于后缀树的二进制可执行代码的克隆检测算法
如何发现代码克隆,是软件维护和软件侵权纠纷案件中的一个关键问题.由于商业保密等原因,在商业软件的侵权纠纷案中往往无法使用基于源代码比对的克隆检测技术.因此,针对这类无法获得源代码进行代码克隆检测的场景,文中提出一种针对二进制可执行文件分析的代码克隆检测方法.首先,通过反编译与指令类型抽象得到二进制可执行目标文件的指令类型序列;然后,对指令类型序列构建后缀树,利用后缀树的性质获取函数级的指令序列间的克隆信息,并通过消除沙砾指令进一步提高检测性能;最后,基于M IPS32指令集,使用Linux内核和经过混淆处理的代码分别作为克隆级别0-级别2与级别1-级别4的二进制可执行文件代码克隆测试样本,并与源代码检测工具进行对比测试.结果表明,所提算法在缺少源代码的场景下同样能进行细粒度的克隆分析,且对各级代码克隆均具有较好的检测性能.
代码克隆、二进制可执行文件、后缀树、性能优化
46
TP311.5(计算技术、计算机技术)
国家自然科学基金61401067 ,国网四川省电力公司科技项目521997170001P , 521997170017
2019-11-22(万方平台首次上网日期,不代表论文的发表时间)
共7页
141-147