PatchDiscovery: Patch Presence Test for Identifying Binary Vulnerabilities Based on Key Basic Blocks
收藏资源简介:
PatchDiscovery: Patch Presence Test for Identifying Binary Vulnerabilities Based on Key Basic Blocks The repository is structured in the following way: Code: the source code of PatchDiscovery Preprocessing:PatchDiscovery preprocesses each input binary function (i.e., VF, PF and TF) by distilling each function's semantics into a CFG and applying instruction normalization and simplification to deal with the syntax gaps on instructions. PatchAnalysis: PatchDiscovery identifies the scope of patch in PF and the scope of vulnerability in VF and selects the key basic blocks in PF and VF as their signatures for patch presence discovery, respectively. PatchPresenceDscovery:PatchDiscovery determines whether a TF has been patched or not. Datasets: Dataset 1, Dataset 2 and Dataset-Firmware Bin: the binaries _config.csv: There are four parts in the file, which are CVE id, the last vulnerable version, the first patched version, involved functions in order. _func.csv: All involved functions in _config.cvs. _version.csv: All binary versions to be analyzed. Detection Results of Firmware Vulnerability Discovery Experiment: the detailed detection results of the firmware vulnerability discovery experiment.
补丁发现:基于关键基本块的二进制漏洞补丁存在性测试 该仓库的组织结构如下: Code:存放PatchDiscovery的源代码。 Preprocessing:PatchDiscovery会对每个输入的二进制函数(即漏洞函数Vulnerable Function, VF、补丁函数Patched Function, PF与测试函数Test Function, TF)进行预处理:将每个函数的语义提取为控制流图(Control Flow Graph, CFG),并对指令执行归一化与简化操作,以处理指令间的语法差异。 PatchAnalysis:PatchDiscovery会分别识别补丁函数PF中的补丁范围与漏洞函数VF中的漏洞范围,并选取PF与VF中的关键基本块作为各自的特征签名,用于补丁存在性检测。 PatchPresenceDscovery:PatchDiscovery会判定测试函数TF是否已被打上补丁。 Datasets:包含数据集1、数据集2与固件数据集Dataset-Firmware。 Bin:存放二进制文件。 _config.csv:该文件包含四个部分,依次为CVE编号、最后一个存在漏洞的版本、首个修复漏洞的版本以及涉及的函数。 _func.csv:包含_config.csv中提及的所有涉及函数。 _version.csv:包含所有待分析的二进制版本。 固件漏洞发现实验检测结果:收录固件漏洞发现实验的详细检测结果。



