comsec-group / blacksmith

Next-gen Rowhammer fuzzer that uses non-uniform, frequency-based patterns (IEEE S&P '22).
MIT License
223 stars 34 forks source link

JSON Configuration Support #16

Closed seasox closed 8 months ago

seasox commented 1 year ago

Description

This Pull Request introduces some new tools and changes to the configuration of Blacksmith. The goal of these changes is to make it easier to configure and run the tool. In particular, we allow passing the address mapping via a JSON config file. @its-luca and I have worked on this Pull Request collaboratively at @UzL-ITS.

Changes

Impact

These changes make Blacksmith more flexible and easier to use. The new JSON configuration allows users to describe address mappings in a more comprehensible manner. With the new tools and visualizations, users can more easily explore different configurations and gain a better understanding of the timing and threshold parameters. The logging changes also make it slightly easier to debug issues with the tool.

The tools introduced in this PR might help to resolve https://github.com/comsec-group/blacksmith/issues/4 and https://github.com/comsec-group/blacksmith/issues/15.

Please review the changes and let us know if you have any feedback or suggestions for improvement.

pjattke commented 1 year ago

Thanks for the really nice changes that will greatly help other to get started using Blacksmith! Before we more carefully review your changes and test the modified fuzzer, we would like to know if you have any existing Coffee Lake configuration file that you could share. Thanks!

seasox commented 1 year ago

I have added additional configuration files coffee-lake_i7-8700K_single-rank.json and coffee-lake_i7-8700K_dual-rank.json which I have derived from the hard-coded values in DRAMAddr.cpp and GlobalDefines.hpp. Unfortunately, we currently do not have a free Coffe Lake machine so they are kind of untested. Let me know if you run into any issues with these config files, then I'll try to get my hands on a Coffee Lake machine and triple-check the config.