Skip to main content

Python GUI to run capemon in standalone VM. Provides a subset of CAPE (Configuration And Payload Extraction) processing and results.

Quick Start

  • Open an administrator command window.
  • Type capesolo to run.

Alternatively, create a shortcut to CAPEsolo.exe, which will be in the Scripts subdirectory of same location as your python.exe file.

  • Under Advanced, check 'Run as administrator'
  • An icon file is available in the CAPEsolo install folder under site-packages.

Analysis results are found in C:\Users\Public\CAPEsolo\analysis.

  • Can be configured in C:\Users\Public\CAPEsolo\cfg.ini
  • Settings there override the packaged defaults in python-path\site-packages\CAPEsolo\cfg.ini, and survive pip install --upgrade CAPEsolo, which overwrites the packaged copy.
  • Only include the keys you want to change; the rest fall back to the packaged defaults.

Revert the VM after each analysis.

View a JSON Report (standalone)

  • tools/report_viewer.py is a self-contained triage viewer for a CAPEsolo report.json that runs on any host with just Python - no CAPEsolo install and no pip dependencies (stdlib tkinter).
    • python tools/report_viewer.py [path\to\report.json]
    • With no argument it opens %USERPROFILE%\Desktop\report.json (where CAPEsolo writes it); use File > Open to pick another.
    • Triage tabs: Overview (verdict card - file hashes, detections, top signatures, config, counts), Signatures (severity-sorted, colored, with per-process evidence), Processes (the process tree with per-process metadata), Network (DNS/HTTP/Hosts/Domains/Flows), Payloads (with yara hits and strings), and IOCs (aggregated, with Copy / Export CSV / Export text).
    • The Search box (top bar) finds a value across signatures, network, payloads, configs, IOCs and strings, and jumps to the owning tab.
    • A Raw JSON tab keeps the full tree for anything the triage tabs do not surface.
    • Handles large reports: the file is read with a progress bar, the raw tree loads lazily (children on expand), and the detail panes are bounded, so it stays responsive on hundred-MB/GB reports. (A GB report still needs several GB of RAM to parse - inherent to Python's JSON.)
    • Needs tkinter - bundled with the standard Windows/macOS Python; on Linux install python3-tk.

Preserve Results From an Unstable VM

  • If a sample makes the VM unusable after detonation, click Zip Results on the Start panel to archive the whole analysis directory to Desktop\capesolo_analysis_<timestamp>.zip.
  • To restore into a clean/reverted VM, copy that zip to C:\Users\Public\CAPEsolo\restore.zip, then start CAPEsolo. On startup it extracts the zip into the analysis directory (only when that directory has no analysis yet) and renames it restore.zip.done so it restores once.
  • The result tabs then read the restored artifacts with no re-run - process each tab (Behavior, Yara, Configs, Signatures) or use the JSON/HTML Report buttons.

Download Samples by Hash

  • The Start panel can fetch a sample by MD5/SHA1/SHA256 from VirusTotal or MalwareBazaar and use it as the analysis target. The source is auto-selected (VirusTotal first, then MalwareBazaar; MalwareBazaar requires a SHA256), based on which keys are configured.
  • Turn it on in cfg.ini (or via the Settings button): under [download] set enabled = true. directory sets where samples are saved (defaults to the user's Desktop).
  • API keys - where to get them:
    • VirusTotal: file downloads require a VirusTotal Enterprise / Intelligence API key. The free community key can look up reports but cannot download files.
    • MalwareBazaar: a free abuse.ch Auth-Key (create an account at auth.abuse.ch).
  • API keys are stored ENCRYPTED, never in plaintext on the VM. You produce the encrypted blob OFF the VM with tools/encrypt_api_key.py and paste it into cfg.ini.
  • tools/encrypt_api_key.py ships in the CAPEsolo source repository under tools/. Run it on a trusted host (NOT the analysis VM); it only needs pip install cryptography.
    • python tools/encrypt_api_key.py
    • It prompts (hidden) for the API key and a password, and prints an encrypted blob.
    • Encrypt every provider you use with the SAME password, so one prompt unlocks both.
  • Install the blob in the guest by either:
    • pasting it into cfg.ini as api_key_enc under [virustotal] and/or [malwarebazaar], or
    • setting the CAPESOLO_VT_APIKEY_ENC / CAPESOLO_MB_APIKEY_ENC environment variables (env vars override cfg.ini).
  • When downloads are enabled, CAPEsolo prompts once at startup for the password and decrypts the key in memory only; the plaintext key never touches the VM's disk. Enter the password, then snapshot the VM so it is ready on every revert.

MCP Server

  • CAPEsolo includes an MCP server entrypoint for programmatic analysis workflows.
  • Start it over stdio with CAPEsolo-mcp, or serve it over HTTP to reach it from the host.
  • See mcp_server.md for transports, cfg.ini configuration, the full tool list, and examples.

Interactive Debugger

  • See interactive_debugger.md for the GUI debugger, and mcp_server.md for the MCP equivalent.

Headless Single-Run CLI

  • CAPEsolo supports a non-MCP single-run mode that reuses the same backend job runner as the MCP server.
  • Run one analysis and exit:
    • CAPEsolo --headless-analyze "C:\path\sample.exe"
  • Optional flags:
    • --package <name>
    • --options "key=value,key2=value2"
    • --timeout <seconds>
    • --enforce-timeout
    • --headless-json
    • --headless-html-report

Metadata

Release files for CAPEsolo 0.5.34

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for CAPEsolo 0.5.34
File Size Uploaded
capesolo-0.5.34.tar.gz 7.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for CAPEsolo 0.5.34
File Interpreter ABI Platform
capesolo-0.5.34-py3-none-any.whl Python 3 none any Details

Total release size: 15.5 MB

Release files / capesolo-0.5.34.tar.gz

Download URL capesolo-0.5.34.tar.gz
Size 7.6 MB
Tags Source
SHA-256 checksum
How to use checksums
d8d23209292c974b67015ef7b5357eda2a8b38ee90c8430b57d5e50402527fc8
BLAKE2b-256 checksum
How to use checksums
d260ce724e1731830e879ca589132855bab58ff4d53bd8ab2ca8c8cf4d86861c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / capesolo-0.5.34-py3-none-any.whl

Download URL capesolo-0.5.34-py3-none-any.whl
Size 7.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
1ff4a48159631959da7b67bd8c061d9641075b4da0df56e94a1ada9d0ffe6ed8
BLAKE2b-256 checksum
How to use checksums
266f535e9dc9e5c19a114a431d2b4cc1886292561430c8ba04482391fdd2add8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page