prosyslab / DAFL-artifact

35 stars 3 forks source link

How to use your tools on other programs? #10

Closed shenan123 closed 5 months ago

shenan123 commented 5 months ago

Hello, I would like to use your tool on other programs. What should I do?

goodtaeeun commented 5 months ago

Hi, I have updated the README.md with the relevant information. Please feel free to ask further questions if the information is insufficient.

shenan123 commented 5 months ago

Hello, thank you for your reply.I'm still not sure how to use DAFL. "DAFL takes two inputs: a data dependency graph and a list of instrumentation targets."How are these two inputs generated? I'm sorry I didn't see it. Can I generate these two inputs based on the target site?

goodtaeeun commented 5 months ago

To generate the input files for DAFL, you must run the static analyzer, Sparrow. Currently, the entire process is scripted with shell scripts and Python scripts. If you follow the instructions in the README file, you will be able to prepare the necessary files to run DAFL on your desired target.

In more detail,

  1. You must first produce the preprocessed source files using smake. This process is currently supported by docker-setup/run-smake.sh script.
  2. Then feed the source files to the analyzer to generate the data dependency graph and the list of instrumentation targets. This process is currently supported by the scripts/run_sparrow.py script. The target site is specified with the command line option.
  3. Finally, build the target program with the DAFL's compiler pass by providing the two input files generated in the previous step.

You can follow the process of lines 101-126 of Dockerfile. It performs the same process I've explained to prepare fuzzing binaries for DAFL.

shenan123 commented 5 months ago

Thank you for taking the time to answer my questions. I think I understand what you mean now. Thank you very much, and wish you a happy life.

goodtaeeun commented 5 months ago

Please feel free to reopen the issue if you have more questions.