trailofbits / sienna-locomotive

A user-friendly fuzzing and crash triage tool for Windows
https://blog.trailofbits.com/user-friendly-fuzzing-with-sienna-locomotive
GNU Affero General Public License v3.0
131 stars 24 forks source link

Switch Config File to a format that natively handles lists #305

Closed ehennenfent closed 5 years ago

ehennenfent commented 6 years ago

We should strip out the configparser module and replace config.ini with a TOML/YAML/JSON file to make up for the lack of a working shlex.split on Windows. Note that we'll also need to modify the GUI so that we can add an arbitrary number of arguments from the config window.

woodruffw commented 5 years ago

We could probably get away with something like this (INI + JSON for some values): https://stackoverflow.com/a/9735884. That'll allow us to keep the readability and editability of our config file without introducing any new dependencies like a YAML/TOML parser.

woodruffw commented 5 years ago

Approached this via the idea above, and ran into some pain with marshalling the arguments from the profile creation dialog in the GUI. JSON arrays are also a hassle to edit manually, so I dropped it.

I'm going to give https://docs.microsoft.com/en-us/windows/desktop/api/shellapi/nf-shellapi-commandlinetoargvw a try via ctypes.