Files

40 lines
1.1 KiB
Markdown

# contributing
Pull requests are welcome. If you're planning something big, open an issue first so we don't step on each other.
## building
```sh
cmake -B build
cmake --build build --config Release
```
Capstone is fetched automatically via FetchContent. You don't need to install it.
## what needs work
- **More architectures** — right now it's x86/x86-64 only. ARM, AArch64, etc would be nice.
- **Better indirect call resolution** — the register tracer is basic. It could be smarter.
- **More binary formats** — Mach-O isn't supported yet.
## style
- No tabs. 4 spaces.
- No comments unless the code is genuinely confusing.
- Match the existing style. If you're changing something, make it look like it belongs.
- Keep it simple. This is not a framework.
## committing
Write short commit messages. Use `git rebase` to keep the history clean. No merge commits.
## testing
There's a test binary in `tests/`. Run cfgrip on it and make sure the output is valid JSON:
```sh
./build/cfgrip tests/example1.exe
```
If your change affects the output format, update `tests/example1.exe.cfg` too.