mandiant / mandiant/capa

add "capa diff" to compare capability deltas between two samples

Open
#2,957 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
6.2k
Forks
726
Avg merge
11d 11h
Merged PRs (30d)
7

Description

Comparing two binaries with capa currently requires manual output comparison. For malware variant analysis and regression checks, this is slow and easy to get wrong.

Could we add a `capa diff` workflow that compares two samples (or two JSON outputs) and reports capabilities that were added/removed, with optional ATT&CK/MBC deltas when available? A v1 could focus on normalized capability-name deltas only, with text and JSON output.

Example UX:
- `capa diff old.bin new.bin`
- `capa diff old.json new.json --from-json`

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the existing capa CLI entry points and the JSON-output handling used for sample analysis. Use the issue's examples to define the v1 scope: compare two binaries or two JSON outputs, report normalized capability names added and removed, and support text and JSON results; ATT&CK/MBC deltas are optional when available.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, reverse-engineering
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.