Skip to main navigation Skip to search Skip to main content

SHFuzz: A hybrid fuzzing method assisted by static analysis for binary programs

  • Wenjie Wang
  • , Donghai Tian*
  • , Rui Ma
  • , Hang Wei
  • , Qianjin Ying
  • , Xiaoqi Jia
  • , Lei Zuo
  • *Corresponding author for this work
  • Beijing Institute of Technology
  • CAS - Institute of Information Engineering
  • University of Chinese Academy of Sciences
  • NSFOCUS Inc.

Research output: Contribution to journal › Article › peer-review

Abstract

Fuzzing is an effective technique to find security bugs in programs by quickly exploring the input space of programs. To further discover vulnerabilities hidden in deep execution paths, the hybrid fuzzing combines fuzzing and concolic execution for going through complex branch conditions. In general, we observe that the execution path which comes across more and complex basic blocks may have a higher chance of containing a security bug. Based on this observation, we propose a hybrid fuzzing method assisted by static analysis for binary programs. The basic idea of our method is to prioritize seed inputs according to the complexity of their associated execution paths. For this purpose, we utilize static analysis to evaluate the complexity of each basic block and employ the hardware trace mechanism to dynamically extract the execution path for calculating the seed inputs' weights. The key advantage of our method is that our system can test binary programs efficiently by using the hardware trace and hybrid fuzzing. To evaluate the effectiveness of our method, we design and implement a prototype system, namely SHFuzz. The evaluation results show SHFuzz discovers more unique crashes on several real-world applications and the LAVA-M dataset when compared to the previous solutions.

Original languageEnglish
Article number9521142
Pages (from-to)1-16
Number of pages16
JournalChina Communications
Volume18
Issue number8
DOIs
Publication statusPublished - Aug 2021

Keywords

  • binary programs
  • concolic execution
  • hybrid fuzzing
  • static analysis

Fingerprint

Dive into the research topics of 'SHFuzz: A hybrid fuzzing method assisted by static analysis for binary programs'. Together they form a unique fingerprint.

Cite this