Python GUI to run capemon in standalone VM. Provides a subset of CAPE (Configuration And Payload Extraction) processing and results.
- Create a Windows 10 VM that's suitable for running malware.
- Use the CAPEv2 guest guide for configuration details.
- https://capev2.readthedocs.io/en/latest/installation/guest/index.html
- Install Python in VM, tested on 64-bit Python versions 3.11, 3.12, and 3.12. Add Python to path.
- Download and install both Microsoft Visual C++ Redistributables:
- Install CAPEsolo.
- pip install CAPEsolo
- Snapshot your VM.
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.pyis a self-contained triage viewer for a CAPEsoloreport.jsonthat 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 itrestore.zip.doneso 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]setenabled = true.directorysets 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.pyand paste it intocfg.ini. tools/encrypt_api_key.pyships in the CAPEsolo source repository undertools/. Run it on a trusted host (NOT the analysis VM); it only needspip 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.iniasapi_key_encunder[virustotal]and/or[malwarebazaar], or - setting the
CAPESOLO_VT_APIKEY_ENC/CAPESOLO_MB_APIKEY_ENCenvironment variables (env vars overridecfg.ini).
- pasting it into
- 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.iniconfiguration, 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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file capesolo-0.5.32.tar.gz.
File metadata
- Download URL: capesolo-0.5.32.tar.gz
- Upload date:
- Size: 7.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a5533cd0032a479701e9db1c4e16d077696a49f859723212913a1013610af11
|
|
| MD5 |
ae85b67ff724b4b9c0bbdc452a278abc
|
|
| BLAKE2b-256 |
b166a535dd699550547f52637922ff5fde71476cd4c8cfdc2761a66f375793ba
|
File details
Details for the file capesolo-0.5.32-py3-none-any.whl.
File metadata
- Download URL: capesolo-0.5.32-py3-none-any.whl
- Upload date:
- Size: 7.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2fd0ac2f035dc29f004b880456cb0d7347d9df6533d3bee6dd007a3a91ef84f0
|
|
| MD5 |
75ba6300233136b8ad939cde7e738a2c
|
|
| BLAKE2b-256 |
52a17847c8317e06fe49c4c5014a1ef69428b1b7902d3de9884b32d2c1d76b08
|