In order to integrate libFuzzer with a dynamic symbolic execution tool
Sydr we need to print loaded file paths.
Details
- Reviewers
kcc morehouse - Commits
- rG827ccc93b8f3: [fuzzer] Print reloaded file paths
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
What are you trying to do with symbolic execution that requires this patch?
Not a big deal either way, but feel free to delete the extra line if you want.
We integrated our dynamic symbolic execution tool (Sydr) with libFuzzer. We feed generated inputs from Sydr to libFuzzer corpus. We need to know loaded (good) inputs to:
- Evaluate symbolic execution profit. We want to know which files were taken from Sydr.
- We should delete files that were not loaded by libFuzzer to keep corpus neat.
- Also, we want to know which files exactly made the profit (RELOAD -> +cov/+feature).
We mostly lean on fuzzer to detect crashes and estimate inputs. We want to delete discarded inputs. So, they won't be given to DSE as inputs.
Very cool, makes sense. Any plans to open source this work? I would be very interested in your results.
It is a closed source project for now, but we have a paper [1] and going to write a new one this Fall. We still try to open source the underlying parts in open source projects like Triton, DynamoRIO, and now LLVM. We are still undecided about the future. Maybe we will open source it partially.