APP下载

PPC和MIPS指令集下二进制代码中函数参数个数的识别方法

2020-08-27尹小康刘鎏刘龙刘胜利

网络与信息安全学报 2020年4期
关键词:分析

尹小康,刘鎏,刘龙,刘胜利

PPC和MIPS指令集下二进制代码中函数参数个数的识别方法

尹小康,刘鎏,刘龙,刘胜利

(数学工程与先进计算国家重点实验室,河南 郑州 450001)

函数参数个数的识别有助于函数原型的恢复,是进行数据流分析以及其他安全分析的基础。为了提高对函数参数个数识别的准确率,提出一种依据函数调用关系的投票机制来确定函数参数个数的算法—— Findargs。Findargs从PPC和MIPS指令集的函数调用特点出发,利用函数调用关系和参数传递分析,识别函数参数的个数,为函数原型的恢复提供帮助。为了评估Findargs的识别效果,选取大型的二进制文件进行了测试,并与radare2进行了对比。实验结果表明,Findargs具有更高的准确率。对于PPC指令集,其准确率达到90.3%;对于MIPS指令集,其准确率为86%。

静态分析;函数调用分析;参数个数识别;投票机制

1 引言

二进制分析在安全研究中具有重大意义,在安全分析中的应用主要有:二进制代码审计[1]、控制流完整性分析[2]、污点分析[3-4]、符号执行[5-6]、漏洞修复[7]、代码重用[8]、漏洞挖掘[9-11]等。在高级语言中,函数名、函数的参数个数、参数类型、函数的返回值等信息能够有效帮助理解函数的功能。源代码经过编译器编译丢失了如高级语言C/C++中的数据类型、数据结构、语义以及控制结构等信息,这给研究者分析二进制代码造成了诸多障碍。因此,如何从二进制代码中恢复出丢失的信息成为二进制分析的关键。对二进制程序进行逆向分析的第一步是对函数的识别,确定函数的起始位置、结束位置、函数的调用方式,以及函数的参数个数。……

登录APP查看全文

猜你喜欢

分析
禽大肠杆菌病的分析、诊断和防治
隐蔽失效适航要求符合性验证分析
电力系统不平衡分析
电力系统及其自动化发展趋势分析
经济危机下的均衡与非均衡分析
对计划生育必要性以及其贯彻实施的分析
GB/T 7714-2015 与GB/T 7714-2005对比分析
网购中不良现象分析与应对
中西医结合治疗抑郁症100例分析
伪造有价证券罪立法比较分析