Skip to content

An interactive tool for better understanding and intervening fuzzing process via real-time visualization.

License

Notifications You must be signed in to change notification settings

ChijinZ/VisFuzz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

VisFuzz

Overview

VisFuzz is an interactive tool for better understanding and intervening fuzzing process via real-time visualization. VisFuzz helps the test engineer to: 1) drill down into the bottleneck from function level, basic block level to statement level; 2) learn semantic context from basic blocks and source code; 3) construct targeted inputs or update the test driver to increase coverage.

Published work

VisFuzz: Understanding and Intervening Fuzzing with Interactive Visualization, ASE 2019.

preprint paper

demo video link

Usage

  1. Install LLVM (>= 8.0), python3.

  2. Download and compile VisFuzz:

     git clone https://github.com/ChijinZ/VisFuzz.git
     cd VisFuzz
     export DEMO_PATH=$PWD/demo
     export TOOL_PATH=$PWD/visfuzz
     cd $TOOL_PATH/fuzz
     mkdir build
     cd build
     cmake ../llvm/ .
     make
     export VISFUZZ_BUILD=$PWD
     cd $TOOL_PATH/fuzz/afl
     make
    
  3. Fuzz && visualize demo:

     cd $DEMO_PATH/re2
     sh compile.sh
     cd repo
     mkdir in
     echo a>in/seed
     nohup $TOOL_PATH/fuzz/afl/afl-fuzz -i in -o out ./app @@ &
     python $TOOL_PATH/open_file_server.py 6767
    
     # Open a new terminal
     cd $TOOL_PATH/visualization
     python -m http.server 8000
    
  4. Open browser (Chrome is recommended) and visit localhost:8000

About

An interactive tool for better understanding and intervening fuzzing process via real-time visualization.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published