CGSan is a static analysis tool that finds a kind of use-after-free bug in a program based on compacting garbage collection, which we refer to as use-after-compacting-gc. The definition of use-after-compacting-gc and the details of how CGSan works is in our paper, "Precise and Scalable Detection of Use-after-Compacting-Garbage-Collection Bugs" (Usenix Security 2021).
- Install dotnet
Installation of dotnet
depends on OS, so please check this link.
- Clone and build
FsSymExe
$ git clone git@github.com:DaramG/CGSan.git
$ cd CGSan
$ git submodule init
$ git submodule update
$ cd lib/FsSymExe; make
- Build
CGSan
$ cd CGSan
$ dotnet build -c Release
dotnet bin/Main.dll analyze `<target name> (v8 | moz)` `<LLVM IR file path>`
If you plan to use CGSan, please consider citing our paper:
@INPROCEEDINGS{han:usenixsec:2021,
author = {HyungSeok Han and Andrew Wesie and Brian Pak},
title = {Precise and Scalable Detection of {Use-after-Compacting-Garbage-Collection Bugs}},
booktitle = usenixsec,
year = 2021
}