Static insight. Dynamic visibility.
RingForge Workbench is a unified software triage platform designed for static, dynamic, behavioral, and API specification analysis, scoring, and reporting.
The project brings together multiple analysis methods into a single workflow to support efficient triage, structured outputs, cleaner analyst review, and continued expansion into a broader software assessment workbench.
Version: v1.4
RingForge Workbench is designed to help analysts quickly triage Windows software samples such as EXE, DLL, installer, launcher, and related package files. It combines metadata extraction, strings analysis, capa behavior analysis, IOC extraction, signing validation, VirusTotal reputation, executable API import analysis, controlled dynamic runtime behavior collection, and API specification analysis into a single workflow.
The platform creates case-based output for each workflow and produces structured artifacts such as JSON analysis files, IOC exports, Markdown and HTML reports, PDF reports when supported, Procmon-derived runtime artifacts, persistence diffs, dynamic findings summaries, and API spec inventory reports.
RingForge Workbench v1.4 focuses on analysis quality, false-positive reduction, stronger trust-signal handling, and a major hardening of the API Spec Analysis experience. This release improves static confidence, dynamic signal quality, endpoint and auth visibility for API specs, GUI polish, and exported HTML reporting.
- Reduced noisy dynamic-analysis scoring for benign applications
- Improved digital signature detection and verification handling
- Added configurable capa timeout support
- Added configurable capa large-file skip behavior for very large binaries
- Improved 7-Zip discovery and extraction handling on Windows
- Fixed YARA rules integration and reporting
- Strengthened API Spec Analysis with richer endpoint risk context
- Added top risky endpoints and recommended testing guidance
- Improved auth inheritance, auth source display, and endpoint risk visibility
- Improved API Spec Analysis GUI layout and HTML reporting
- Continued overall workflow polish across RingForge Workbench
- Improved Authenticode signature handling and reduced false unsigned results
- Improved signature reporting and verification accuracy
- Added configurable capa timeout support
- Added configurable capa max-size skip behavior for very large binaries
- Improved handling of large benign software that previously caused long capa timeouts
- Improved 7-Zip resolution on Windows by supporting common install locations
- Fixed YARA path/rules handling and verified rule execution in reports
- Continued static reporting and scoring refinement
- Reduced noisy dynamic verdicting for benign applications
- Improved filtering of analyzer-generated artifacts from dynamic findings
- Reduced Defender-related and environmental noise in dynamic scoring
- Lowered weight of generic runtime activity such as normal process and network volume
- Improved emphasis on stronger signals such as persistence and higher-risk behavior
- Improved dynamic scoring so benign baseline applications no longer over-score unnecessarily
- Improved dynamic report readability and result quality for large GUI applications
- Improved endpoint inventory and spec parsing workflow
- Added richer endpoint risk scoring and endpoint-level risk context
- Improved auth handling, including inherited/global auth behavior
- Added auth source visibility in the UI
- Added risk level visibility in the endpoint inventory
- Added top risky endpoints section
- Added recommended tests section for analyst follow-up
- Improved handling of risky, broken, and partially incomplete API specs
- Improved display of public versus authenticated endpoints
- Improved API Spec Analysis GUI layout and usability
- Improved HTML reporting for spec analysis to match GUI enhancements
- Improved analyst-facing context for insecure servers, risky routes, destructive methods, uploads, and sensitive parameters
- Improved API Spec Analysis window layout and presentation
- Added better use of available screen space for spec-analysis review
- Improved endpoint inventory readability
- Improved report structure and exported HTML polish
- Continued refinement of RingForge branding, workflow clarity, and review usability
Version 1.3 turned API Spec Analysis into a practical, polished, and testable workflow. It improved specification parsing, report quality, output organization, and overall usability while preserving the platform’s static, dynamic, and combined scoring foundation.
- Added a redesigned API Spec Analysis workspace
- Improved support for OpenAPI 3.x and Swagger 2.0 specifications
- Added structured endpoint inventory reporting
- Added polished HTML report generation for spec analysis
- Improved authentication parsing and normalization
- Improved per-endpoint authentication reporting
- Improved report naming using the analyzed specification name
- Added spec-specific latest report handling
- Continued GUI polish and workspace consistency improvements
- Added overview metrics and improved endpoint inventory layout
- Improved API Spec Analysis dashboard structure and usability
- Improved OpenAPI 3.x and Swagger 2.0 parsing support
- Added endpoint inventory reporting with method, path, summary, auth, parameter count, and flags
- Added polished HTML reporting for API spec analysis
- Improved authentication normalization and endpoint-level auth visibility
- Improved report naming using specification file names
- Added spec-specific latest-report handling for easier reopening of the correct report
- Continued GUI refinement and workflow presentation cleanup across RingForge Workbench
Version 1.2 marked the transition from the project’s earlier analyzer-focused identity into RingForge Workbench.
This release focused on branding, presentation, GUI polish, and overall platform direction rather than major new feature expansion. It established a cleaner project identity and prepared the foundation for the more mature API Spec Analysis and reporting improvements delivered in v1.3 and expanded further in v1.4.
- Rebranded the project as RingForge Workbench
- Updated repository, README, and release naming
- Improved visual consistency and overall presentation
- Continued GUI polish and usability refinement
- Established a broader workbench-style platform identity for future growth
Scoring and workflow milestone release:
- Combined scoring across Static, Dynamic, and Spec/API workflows
- Presence-aware GUI score display
- Dynamic and Spec case-based score regeneration
- Progress final-state and optional helper-tool
n/ahandling
GUI polish and platform identity release:
- Rebrand to RingForge Workbench
- Visual cleanup and consistency improvements
- Simplified workflow presentation
- Better spacing, button styling, and layout behavior
- Foundation for broader platform growth
API Spec Analysis feature maturity release:
- Polished API Spec Analysis workspace
- OpenAPI and Swagger spec parsing improvements
- Endpoint inventory and HTML spec reporting
- Auth normalization and per-endpoint auth reporting
- Improved report naming and report-open behavior
- Additional GUI refinement and workspace consistency improvements
Analysis quality and false-positive reduction release:
- Dynamic scoring tuned to reduce environmental and benign-runtime noise
- Signature verification handling improved for valid signed software
- Capa timeout and large-file skip support added for heavy binaries
- YARA integration and report visibility improved
- API Spec Analysis hardened with richer endpoint risk context
- Top risky endpoints and recommended tests added
- Auth inheritance, auth source, and endpoint risk display improved
- API Spec Analysis GUI and HTML reporting significantly polished
Future work after v1.4 may include:
- cumulative API spec scoring across multiple test runs
- final multi-test assessment summaries
- expanded API spec risk scoring and weighting
- additional report presentation options
- continued cleanup of advanced utilities and developer-focused workflows
- richer combined reporting across static, dynamic, and spec-based results
A typical static case folder may contain:
cases/<case>/
analysis.log
api_analysis.json
capa.json
capa.txt
extracted/
extracted_manifest.json
file.txt
iocs.csv
iocs.json
lief_metadata.json
pe_metadata.json
report.html
report.md
report.pdf
runlog.json
signing.json
strings.txt
subfiles/
summary.json
virustotal.json
On some environments, report.pdf may not be generated. In that case, open report.html and use your browser’s Print to PDF option.
A dynamic-analysis run can produce a structure like:
cases/<case_name>/
metadata/
run_config.json
sample_info.json
run_summary.json
procmon/
raw.pml
export.csv
parsed_events.json
interesting_events.json
persistence/
tasks_before.json
tasks_after.json
task_diffs.json
services_before.json
services_after.json
service_diffs.json
files/
dropped_files.json
dropped_files_summary.json
reports/
dynamic_findings.json
dynamic_report.html
dynamic_report.pdf
An API Spec Analysis run can produce a structure like:
cases/<case_name>/
spec/
spec_inventory_<spec_name>_<timestamp>.json
spec_inventory_<spec_name>_<timestamp>.html
spec_inventory_latest_<spec_name>.json
spec_inventory_latest_<spec_name>.html
spec_inventory_latest.json
spec_inventory_latest.html
original_<spec_name>.yaml
run_config.json— execution settings used for the runsample_info.json— sample hashes, size, and metadatarun_summary.json— final summarized run outputparsed_events.json— normalized Procmon event datainteresting_events.json— reduced high-value Procmon eventstask_diffs.json— before/after scheduled task changesservice_diffs.json— before/after Windows service changesdropped_files.json— candidate dropped-file detailsdynamic_findings.json— analyst-facing highlights and summariesdynamic_report.html— themed analyst-facing HTML reportdynamic_report.pdf— PDF report when PDF backend is availablespec_inventory_<spec_name>_<timestamp>.json— saved API spec analysis result for a specific runspec_inventory_<spec_name>_<timestamp>.html— analyst-facing HTML report for a specific spec runspec_inventory_latest_<spec_name>.html— latest named report for the currently analyzed specspec_inventory_latest.html— generic latest spec report for compatibility and quick-open workflows
ringforge-workbench/
docs/
scripts/
static_triage_engine/
dynamic_analysis/
__init__.py
orchestrator.py
models.py
procmon_runner.py
procmon_parser.py
dropped_file_triage.py
findings.py
html_report.py
report_theme.py
snapshot_tasks.py
diff_tasks.py
snapshot_services.py
diff_services.py
utils.py
tools/
procmon-configs/
cases/ # generated locally, usually gitignored
logs/ # generated locally, usually gitignored
.gitignore
LICENSE
README.md
requirements.txt
triage_inbox.py
RingForge_Workbench_v1.4/
RingForgeWorkbench.exe
scripts/
static_triage_engine/
dynamic_analysis/
README.md
LICENSE
RingForge Workbench is being expanded from a static triage utility into a more complete multi-stage software analysis platform. The roadmap below outlines the planned direction for static, dynamic, API, scoring, and reporting capabilities.
- Static analysis workflow with case-based output
- Dynamic analysis window and execution workflow
- API analysis window for manual request testing
- API Spec Analysis workflow for OpenAPI / Swagger definitions
- HTML reporting for static, dynamic, and API spec analysis
- Organized case folder structure for saved artifacts and reports
- Security API presets for common enrichment services
- VirusTotal
- AbuseIPDB
- urlscan
- Shodan
- Raw JSON response saving for API tests
- Parsed API result summaries for faster triage
- Improved HTML export formatting for API analysis
- Auto-fill options using the selected sample, MD5, SHA1, or SHA256
- Multi-test API spec scoring and final summary workflows
- Separate scoring for each analysis area
- Static Analysis Score
- Dynamic Analysis Score
- API / Intelligence Score
- API Spec Analysis Score
- Combined weighted maliciousness score across completed modules
- Confidence rating based on analysis coverage
- Standardized verdict categories
- Likely Benign
- Low Suspicion
- Suspicious
- Malicious Likely
- Highly Malicious
- Combined assessment output in JSON and HTML formats
- Stronger static suspiciousness heuristics
- Expanded dynamic behavior scoring
- Better IOC enrichment and reputation correlation
- Improved persistence and execution pattern detection
- Correlation between static findings, dynamic behavior, external intelligence, and API spec risk indicators
- Combined analyst report covering all completed modules
- Executive-style summary view
- Key findings and evidence summary sections
- Analyst notes section
- Easier export and case-deliverable workflow
- File and hash lookup presets
- File upload presets for executables, DLLs, MSIs, and archives
- IOC-specific enrichment workflows for:
- File
- Hash
- IP
- Domain
- URL
- API key validation and connectivity testing
- Automated chaining between enrichment tools
- Local YARA integration
- Certificate and signature trust analysis
- Entropy and packer detection improvements
- Expanded PE metadata scoring
- Multi-tool intelligence orchestration
- More advanced malware triage and recommendation engine
The long-term goal is to evolve RingForge Workbench into a unified triage platform that can combine static artifacts, runtime behavior, API specifications, and external intelligence into a single assessment workflow. This will allow analysts to move from isolated test results to a more complete and defensible maliciousness determination.
This is the most reliable packaging model right now.
- Python 3.11 or 3.12 recommended
Typical dependencies include:
requestspefileliefpyyamlpyinstallerweasyprint(optional for direct PDF generation)pillow(if using image-backed branding)- any packages listed in
requirements.txt
Common external tools:
filestringsosslsigncodecabextractp7zip-fullbinutils
Optional:
innoextractmsitoolsunar
For dynamic analysis on Windows, Procmon is required for full runtime capture.
Typical setup:
- Procmon obtained separately from Microsoft Sysinternals
- optional Procmon config file under
tools/procmon-configs - a dedicated Windows VM for execution and observation
- administrative rights where required for capture and snapshotting
You should also have:
tools/capa-rulestools/capa/sigs
cd D:
ing_forge_analyzer
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install liefOptional PDF support:
pip install weasyprintIf WeasyPrint dependencies are unavailable on Windows, HTML export still works and can be printed to PDF from the browser.
cd ~/analysis/ringforge-workbench
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pefile pyyaml lief flare-capa
bash scripts/bootstrap_capa_rules.shcd D:
ing_forge_analyzer
.\.venv\Scripts\Activate.ps1
python .\scripts\static_triage_gui.pycd ~/analysis/ringforge-workbench
source .venv/bin/activate
python scripts/static_triage_gui.pyThe GUI includes a separate Dynamic Analysis window with:
- sample path selection
- case folder selection
- timeout configuration
- Procmon path selection
- Procmon config selection
- Procmon enable/disable toggle
- live output pane
- phase/status progress messages
- findings summary output
- HTML report export
- browser-based PDF fallback
The GUI includes a separate API Spec Analysis window with:
- spec file selection
- Overview metrics
- Summary and Risk Notes panels
- Top Risky Endpoints section
- Recommended Tests section
- Endpoint Inventory table
- HTML report generation
- Open Case Files and report-open actions
- OpenAPI 3.x and Swagger 2.0 support
Example help command:
python scripts/static_triage.py --helpExample analysis run:
python scripts/static_triage.py "/path/to/sample.exe"Example PyInstaller build:
pyinstaller --onedir --windowed --name RingForgeWorkbench --paths . --collect-submodules dynamic_analysis scripts/static_triage_gui.pyCreate the release folder and copy:
- built executable
scriptsstatic_triage_enginedynamic_analysisREADME.mdLICENSErequirements.txtif needed
cd release
Compress-Archive -Path .\RingForge_Workbench_v1.4 -DestinationPath .\RingForge_Workbench_v1.4.zip -Force- configurable capa timeout support
- configurable capa max-size skip behavior for very large binaries
- top risky endpoints for API spec analysis
- recommended test guidance for API spec analysis
- auth source visibility in API spec analysis
- risk level visibility in API spec endpoint inventory
- richer HTML reporting for API spec analysis
- unresolved ref awareness and parser-warning handling for spec-analysis workflows
- digital signature verification and signed-file reporting
- dynamic scoring quality for benign applications
- filtering of analyzer-generated and environmental dynamic-analysis noise
- API spec auth inheritance and auth visibility
- API spec UI layout and analyst readability
- API spec HTML report structure and presentation
- YARA rules integration and report visibility
- 7-Zip discovery and Windows extraction handling
- GUI layout, spacing, branding, and consistency across RingForge Workbench
- false unsigned results for valid signed software
- noisy dynamic verdicting caused by benign process and network activity
- long capa delays for very large benign binaries
- API Spec Analysis health-route false positives
- endpoint auth display issues in API Spec Analysis
- API Spec Analysis latest-report usability and output clarity
Make sure:
static_triage_engine/api_analysis.pyexistsengine.pyimports and runsanalyze_apis()pefileis installed in the active Python environment
Linux example:
source .venv/bin/activate
pip install pefileThis usually means the analysis ran with an older engine.py that did not yet call the API analysis step, or the case folder was generated before the feature was added.
Use a fresh case name and rerun.
Clear the signing cache and rerun so the updated signing parser can re-evaluate the sample:
rm -f logs/signing_cache.jsonCheck that:
- the GUI worker thread is starting correctly
- the sample path is valid
- the case path is writable
- Procmon path is valid if Procmon capture is enabled
Check:
- Procmon is present at the configured path
- Procmon is not already running in a conflicting session
- the analysis is being performed in a Windows environment with required permissions
Check:
- PowerShell is available
- the process has sufficient rights to query scheduled tasks and services
- temporary JSON output can be written successfully
Check:
tools/capa-rulesexiststools/capa/sigsexists- capa is installed in the active virtual environment
For very large binaries, RingForge Workbench may intentionally skip capa based on the configured size threshold.
Make sure LIEF is installed in the active virtual environment:
pip install liefCommon reasons:
VT_API_KEYis not set- network/DNS failure
- rate limit or API response issue
If the HTML report is created successfully but PDF generation fails on Windows, WeasyPrint system dependencies are likely missing. Open the HTML report in your browser and use Print → Save as PDF.
API Spec Analysis only supports:
.json.yaml.yml
Make sure the selected file is an OpenAPI or Swagger definition in one of those formats.
Use Linux-style paths in the GUI, not Windows paths.
- dynamic analysis should only be performed inside an isolated, revertible Windows VM or other controlled sandbox
- do not run unknown samples on a personal daily-use host
- Procmon-backed execution and persistence snapshotting can generate significant host noise on non-isolated systems
- legitimate software can still contain powerful APIs, installer behaviors, or autorun-related logic; scoring and findings should always be reviewed in context
- API spec analysis can highlight risky routes, methods, auth patterns, and follow-up test ideas, but findings still require analyst review in context
- API analysis currently applies to Windows PE executables and DLLs through import/API-chain analysis
- API Spec Analysis currently supports OpenAPI and Swagger definition files in JSON or YAML form
- dynamic analysis in RingForge Workbench v1.4 is intended as a practical triage layer, not a full sandbox replacement
- future work may include cumulative spec scoring, final multi-test summaries, tighter Procmon filtering, cleaner VM-first tuning, installer-monitor expansion, and broader behavior correlation
See LICENSE.