Published June 16, 2025 | Version GrayC-ISSTA-2023-V1.1

Artifact of GrayC: Greybox Fuzzing of Compilers and Analysers for C

  • 1. King's College London
  • 2. Imperial College London
  • 1. King's College London
  • 2. Imperial College London

Description

This is the official artifact of the paper: GrayC: Greybox Fuzzing of Compilers and Analysers for C (ISSTA 2023).

 

 =======>          DOWNLOAD THE ARTIFACT IN THE DOCKER IMAGE TO START          <======= 

 

The main GitHub Repository is: https://github.com/srg-imperial/GrayC/tree/main/ISSTA-2023-AE.

All Docker images versions and data are here: Artifact-GrayC and the last DOCKER IMAGE IS THIS: GrayC-v3.tar

Data Availability: the other files contain data and all our source code as part of the Open Science Policy.

Note 1: This work was supported by EPSRC (EP/R011605/1 and EP/R006865/1).

Note 2: The first two authors both contributed equally to this research.

Note 3: Karine Even-Mendoza: A major part of this work was done as an Imperial College London employee.

Note 4: Please ignore all other anonymised versions of GrayC and use only this de-anonymised one.

 

Troubleshooting (Updated March 2025)

A. Install missing packages:

sudo apt-get install libtinfo-dev
sudo apt-get install libbsd-dev

B. Fix broken script: install-fuzzers-grayc.sh, by changing AE to fuzzing (there is only one place of /AE/ path).

C. LLVM-12 is now part of apt, so you need to run this:

sudo apt install clang-12 lld-12 llvm-12 llvm-12-dev
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-12 120 --slave /usr/bin/clang++ clag++ /usr/bin/clang++-12

### Full Installation Testing on Cloudlab m510 (last updated 13-Jun-2025)
sudo useradd user42
sudo passwd user42
sudo usermod -aG sudo user42
sudo mkdir -p /home/user42
sudo usermod -d /home/user42 user42
sudo chmod 755 /home/user42

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install libtinfo-dev
sudo apt-get install libbsd-dev

sudo apt install clang-12 lld-12 llvm-12 llvm-12-dev
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-12 120 --slave /usr/bin/clang++ clag++ /usr/bin/clang++-12
git clone https://github.com/srg-imperial/GrayC.git cd GrayC/ git checkout 916455f cd ISSTA-2023-AE/fuzzer


Fix broken script: install-fuzzers-grayc.sh, by changing AE to fuzzing (there is only one place of /AE/ path).

Then run:
./1-download-llvm.sh /home/user42/ 12
./install-fuzzers-grayc.sh /home/user42/ /home/user42/<SOURCE-FOLDER> /home/user42/GrayC/ISSTA-2023-AE 1

with some detailed instructions here: https://github.com/srg-imperial/GrayC/tree/issta-2023/ISSTA-2023-AE/fuzzer.

Then to run the fuzzer, you run:

user42@node0:~/GrayC/ISSTA-2023-AE/fuzzer$ ./run-fuzzers.sh /home/user42/ /home/user42/GrayC/ISSTA-2023-AE/fuzzer/seeds/ 1

Technical info

GitHub Repository of GrayC:  https://github.com/srg-imperial/GrayC/tree/main/ISSTA-2023-AE.

Files

0_README_main.md

Files (12.0 GB)

Name Size
md5:fcf0892c7fe6e612ee9b34725d6cf009
23.9 kB Preview Download
md5:0df929dab2373aba8df13e91a6327703
318.9 MB Preview Download
md5:a606c61d10656938331433536919697d
6.7 GB Preview Download
md5:fc299211fddf0898e53ba60b82aeaad2
485.9 MB Preview Download
md5:14f3741bf918294ada0e8f81dd377112
1.0 GB Preview Download
md5:98546ff9bc2140210dbe84b890bf1ad4
1.7 GB Preview Download
md5:9f1a4a06ad495b1d2ed1c6257342e24c
1.2 GB Preview Download
md5:2a92a69b12fea7d068a3995b01555128
67.0 MB Preview Download
md5:83f9ae92cfe0334b757d222b740fa8ed
214.6 MB Preview Download
md5:c8adcb69d39df1941a80dd4bb914c214
115.1 kB Download
md5:df35aa57f1b2c8dcb602dddb08b2a4c9
37.3 MB Preview Download
md5:92d58e6d04ae891c9c341a1fc17cd0e4
195.7 MB Preview Download
md5:f4bb1d5feb5ca49d464ab5c0dd1a51b2
62.7 kB Download

Additional details

Related works

Funding

UK Research and Innovation
Automatically Detecting and Surviving Exploitable Compiler Bugs EP/R011605/1
UK Research and Innovation
Interface reasoning for interacting systems (IRIS). EP/R006865/1