基于语义的多架构二进制函数名预测方法
丰富的可读性源信息对逆向工作具有重要意义,尤其是高质量的函数名对程序理解非常重要.然而,软件发布者无论是出于防止逆向或者精简软件大小的角度,往往会发布剥离掉源级调试信息的可执行文件,可读性信息缺失导致逆向分析难度加大.因此,提出了一种多架构函数名预测(Multi-architecture Function Name Prediction,MFNP)方法,利用 LLVM RetDec 反编译 X86,ARM,MIPS架构的二进制文件为中间语言(IR)文件解决不同架构之间存在差异的问题.对中间语言.ll 文件中的函数名进行形态上、语义上的相似性比较,对函数名进行相似性融合来降低函数名数据稀疏性.将携带顺序指令语义信息的基本块以及以基本块为基本单位的函数体控制流图作为函数体的语义特征,结合神经网络来实现 X86,MIPS,ARM这 3 种架构下剥离二进制文件的函数名预测.相比DEBIN,所提方法额外支持MIPS架构下的剥离二进制函数名预测工作,其在Precision和 F1 方面相比 NERO提高了 13.86%和 11.93%.最后验证了 MFNP选用以基本块为基本单位提取的顺序指令序列和控制流图作为语义特征的有效性.
静态二进制分析、中间表示、函数名称预测、自然语言处理、神经网络
50
TP311(计算技术、计算机技术)
2023-10-13(万方平台首次上网日期,不代表论文的发表时间)
共8页
369-376