Standalone CAPEMON
Project description
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 and 3.12, and 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 python-path\site-packages\CAPEsolo\cfg.ini
Revert the VM after each analysis.
MCP Server
- CAPEsolo includes an MCP server entrypoint for programmatic analysis workflows.
- Install project dependencies (including
mcp) in your environment.
Run
- Start the server over stdio:
CAPEsolo-mcp- or
python -m CAPEsolo.mcp_server
Available MCP Tools
capesolo_analyze_sample- Submit a sample for analysis.
- Key args:
sample_path,package(Auto-detectby default),options,timeout,enforce_timeout.
capesolo_analyze_password_zip- Submit a password-protected ZIP for analysis.
- Key args:
zip_path, optionalzip_password(defaults toinfected), optionalarchive_member_path(required when ZIP has multiple files),package,options,timeout,enforce_timeout. - ZIP extraction/decryption is handled by
SFlock2.
capesolo_get_job_status- Get job state (
queued,running,completed,failed).
- Get job state (
capesolo_cancel_job- Request termination of a running job (same analyzer termination signal used by GUI Kill).
capesolo_get_results- Return CAPEsolo JSON results using existing keys (
target,behavior,signatures,payloads,configs,detections).
- Return CAPEsolo JSON results using existing keys (
capesolo_get_job_log_tail- Return the last N lines from
analysis.logfor a job.
- Return the last N lines from
capesolo_render_html_report- Generate an HTML report from completed analysis.
capesolo_list_payloads- List payload artifacts from analysis output.
capesolo_list_dropped_files- List dropped files under analysis
filesoutput.
- List dropped files under analysis
capesolo_list_debug_logs- List debugger and analysis log artifacts.
capesolo_update_yara- Update CAPE/community YARA rules.
Typical Workflow
- Call
capesolo_analyze_sampleorcapesolo_analyze_password_zip. - Poll
capesolo_get_job_statusuntilcompleted. - Call
capesolo_get_results(and optionallycapesolo_render_html_report).
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
MCP Client Config Examples
- Use these examples to connect CAPEsolo MCP server to common clients.
- Server command is:
CAPEsolo-mcp- or
python -m CAPEsolo.mcp_server
Claude Desktop
- Add to Claude Desktop MCP config:
{
"mcpServers": {
"capesolo": {
"command": "python",
"args": ["-m", "CAPEsolo.mcp_server"],
"cwd": "C:\\Users\\lkuca\\PycharmProjects\\CAPEsolo"
}
}
}
Cursor
- Add in Cursor MCP servers config:
{
"mcpServers": {
"capesolo": {
"command": "CAPEsolo-mcp",
"args": []
}
}
}
OpenCode
- Add in OpenCode MCP config:
{
"mcpServers": {
"capesolo": {
"command": "python",
"args": ["-m", "CAPEsolo.mcp_server"],
"cwd": "C:\\Users\\lkuca\\PycharmProjects\\CAPEsolo"
}
}
}
Codex (Custom Host App)
- If you run Codex through a custom client/app, configure the app's MCP server map with:
{
"mcpServers": {
"capesolo": {
"command": "CAPEsolo-mcp",
"args": []
}
}
}
- The host app must support MCP tool calls and pass them through to the Codex model runtime.
PyCharm AI Assistant
- Open:
Settings -> Tools -> AI Assistant -> Model Context Protocol (MCP)
- Add JSON config:
{
"mcpServers": {
"capesolo": {
"command": "python",
"args": ["-m", "CAPEsolo.mcp_server"],
"cwd": "C:\\Users\\lkuca\\PycharmProjects\\CAPEsolo"
}
}
}
Quick Connection Test
- Start your MCP-enabled client with the config above.
- Call
capesolo_get_job_statuswith a fake id:{"job_id":"test"}
- Expected response pattern:
{"found": false, "error": "Job not found: test"}
Project details
Release history Release notifications | RSS feed
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.19.tar.gz.
File metadata
- Download URL: capesolo-0.5.19.tar.gz
- Upload date:
- Size: 7.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
739f00fc171696dad0808b4638b94270bb28a7db74e46ea213534478a25cf3cd
|
|
| MD5 |
faa98c714c5c62b8ec44f29b4a602099
|
|
| BLAKE2b-256 |
5c8b066b37457923914bb62ab590adcc6aeb0d30b2925bf949e91518a907c9df
|
File details
Details for the file capesolo-0.5.19-py3-none-any.whl.
File metadata
- Download URL: capesolo-0.5.19-py3-none-any.whl
- Upload date:
- Size: 7.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76b5652959d1dd45f9888f2e29d4d207a0d00ac972af18b0815e0b064ae2e87b
|
|
| MD5 |
8bcbbf2e15f801d0113ff69d7c5373e9
|
|
| BLAKE2b-256 |
2c7fea554e6ea8eec7abf42ec4ceaf60b09004c5ff541dd35132cb7e5c851450
|