当前位置:主页 > 科技论文 > 软件论文 >

基于模糊测试的二进制代码相似性检测

发布时间:2021-08-14 22:50
  软件相似性检测,作为软件漏洞和病毒检测以及软件版权保护中最基础核心的技术,自信息时代以来一直受到了广泛的重视和研究,其中基于源码的代码相似性检测由于源码所拥有的丰富的语义信息,使得一些简单的基于词法语法的方法就能够满足个别应用的需要。然而在现实场景下,待检测代码的源码经常无法获得,并且源码也无法提供对于漏洞检测非常重要的程序运行时信息。故近年来,面向二进制的相似性代码检测逐渐开始受到重视。传统的基于静态的二进制相似性检测方法由于对二进制结构信息具有敏感性的问题,在准确性上一直有所欠缺。基于模糊测试的二进制相似性检测系统Sim-Fuzz相较于静态方法,能够容忍二进制文件中常出现的代码混淆现象,故更适合于不同编译器甚至是平台的二进制相似性比较,在病毒的变种检测方面也有更优异的表现。具体而言,Sim-Fuzz捕捉程序的运行时行为(如内存读写以及库函数调用等)用来表示程序的特征,利用最长序列算法将这些运行时的信息转化为一个特征向量作为预测的输入,最后在生成的特征向量上训练了一个支持向量机(Support Vector Machine,SVM)来做最后的相似性预测,输出两个程序之间的相似可信度。... 

【文章来源】:华中科技大学湖北省 211工程院校 985工程院校 教育部直属院校

【文章页数】:59 页

【学位级别】:硕士

【部分图文】:

基于模糊测试的二进制代码相似性检测


一个while循环的AST树结构

汇编指令


3) 基于核心值以及,4) 基于地毯执行。于词法语法最具代表性文献[1],作为率先提出解决二进制相似要的贡献在于提出将在源码上效果很好的基于词法语法的分析主要的问题在于:如果过多考虑和编译器相关的如具体数据的的使用,则会由于太过于具体而造成过高的漏报率,但同时如少,如只考虑指令的语义,则会造成过多的误报。于以上出发点提出了一种将二进制指令一般化的方式,如图 立即数都一般化为了一个概括性的值实体,从而忽略了其具体在其到底是表示的地址还是值上做了区分,然后将所有用到了型都一般化为了名为寄存器表达式的实体。对于不同的指令保。作为这个领域的开山之作,其提出了很多富有建设性的解决般化的方法被后续的工作所广泛使用,但是其不足之处在于,统和平台,并且处理不同优化等级带来的结构性变化。

控制流图,控制流,编译器,二进制


华 中 科 技 大 学 硕 士 学 位 论 文二进制分析的重要性。但其的不足在于,其本质上是之前源码上基于控制流工作的延续,正如之前所说,跨指令集的二进制中存在众多编译器优化及代码混淆等改变控制流的现象。一个具体的由编译器优化带来的对控制流的影响。如图 2- 2 所示,md5_finish_ctx 优化之前的控制流图,如图 2- 2 (a)所示,和优化之后,如图 2- 2 (b)所示,可以看出,优化之后,函数控制流被极大地简化,并且这时,不同函数的控制流会变得十分相似,如图 2- 2 (c)所示。这无疑使得对控制流敏感的高效贪心搜索算法这种情况从根本上不适用于跨平台的应用。并且其将二进制指令一般化的工作主要集中在翻译,并不在于设计中间目标指令,翻译的目标中间表达语言是另外的工作。

【参考文献】:
期刊论文
[1]Android恶意软件检测方法研究综述[J]. 李江华,邱晨.  计算机应用研究. 2019(01)
[2]基于动静结合的Android恶意代码行为相似性检测[J]. 陈鹏,赵荣彩,单征,韩金,孟曦.  计算机应用研究. 2018(05)
[3]抗混淆的Android应用相似性检测方法[J]. 王兆国,李城龙,关毅,薛一波.  华中科技大学学报(自然科学版). 2016(03)



本文编号:3343321

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3343321.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户fb42e***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com