关于二进制文件比对技术优化的研究
摘要
二进制文件比技术用于评估两个版本不同或编译环境不同的二进制文件之间的差异,所选择的比较粒度一般是基本块粒度或函数粒度。这种方法对于软件工程领域和安全领域十分重要,可以用于分析软件以识别是否有恶意代码插入或发现软件版本之间的差异。本文简要介绍了当前业界流行的二进制文件比技术以及常见的分析流程。二进制文件比对技术一般分为两步,第一步使用二进制文件相似性检测工具以得到基本块或函数之间的相似度,第二步则基于基本块相似度或函数相似度这样的节点信息以及控制流图或函数调用图的图结构信息来进行图匹配的操作,本文重点在于第二部分,选取函数作为粒度进行分析。本文分析了三种图匹配算法,并基于findutils二进制文件对该三种算法进行了探究与实验,并且提出二进制文本比对技术的准确度主要受到二进制文件的符号表和外部函数引用的影响。最后,本文提出了一种结合节点相似性和图结构的新方法,并引入了函数数量更多、图结构更复杂的objdump二进制文件进行实验,最后得出新的算法在一定程度上获得了比之前的技术要好的结果。
关键词
二进制文件比对;二进制文件相似性检测;图匹配算法
全文:
PDF参考
[1]Diffing-with-kam1n0[Z]. https://www.whitehatters.academy/diffing-with-kam1n0/.
[2]FARHADI M R, FUNG B C M, CHARLAND P, et al. BinClone: Detecting Code Clones in Mal- ware[J]. 2014 Eighth International Conference on Software Security and Reliability, 2014: 78-87.
[3]LUO L, MING J, WU D, et al. Semantics-based obfuscation-resilient binary code similarity com- parison with applications to software plagiarism detection[J]. Proceedings of the 22nd ACM SIG- SOFT International Symposium on Foundations of Software Engineering, 2014.
[4]BinDiff[Z]. https://www.zynamics.com/bindiff.html.
[5]KUHN H W. The Hungarian method for the assignment problem[J]. Naval Research Logistics (NRL), 1955, 52.
Refbacks
- 当前没有refback。