Static insight. Dynamic visibility. API evidence. Structured review.
RingForge Workbench is a Python/Tkinter software triage workbench for structured static analysis, dynamic behavior review, manual API testing, API specification review, browser extension analysis, and unified reporting from one analyst-facing interface.
It is designed for malware analysts, SOC analysts, detection engineers, and security practitioners who want a practical Windows-focused workflow for reviewing software behavior, organizing case artifacts, and producing consistent analyst-readable reports.
| Field | Value |
|---|---|
| Version | v1.7.2 |
| Release Name | API Spec Analysis Polish + Unified Report Integration |
| Release Type | Maintenance / polish release |
| Platform Focus | Windows analysis environment |
| Language | Python |
| License | MIT |
RingForge Workbench provides a modular case-based workflow for analyzing software samples and related artifacts. It supports static triage, dynamic runtime collection, manual API review, OpenAPI/Swagger specification review, browser extension inspection, and unified reporting.
The workbench emphasizes practical analyst outcomes:
- repeatable case folders
- structured JSON artifacts
- readable HTML/Markdown reports
- scoring and verdict logic
- baseline/noise reduction
- workflow-specific review screens
- API response review and evidence capture
- case-aware artifact saving
- unified reporting support
Static Analysis supports Windows executable and package triage, including:
- File hashing
- PE metadata extraction
- LIEF-based enrichment
- Strings review
- capa capability analysis
- IOC extraction
- Signature validation
- VirusTotal enrichment when configured
- Static scoring and verdicting
- API import analysis
- API behavior chain scoring
- Markdown and HTML reporting
- PDF reporting when optional PDF dependencies are available
- Extracted subfile triage
- Subfile scoring and report visibility
- Deep triage warnings and progress visibility
Dynamic Analysis supports controlled runtime behavior review inside a Windows analysis VM.
Current dynamic capabilities include:
- Procmon-backed event collection
- Parsed runtime event review
- Interesting event filtering
- Process creation tracking
- Dropped-file summary
- Scheduled task before/after diffing
- Service before/after diffing
- Autoruns before/after persistence diffing
- Installer-aware observation settings
- Post-exit observation for installer handoff behavior
- Cancellation handling with partial summaries
- Dynamic scoring and verdicting
- HTML dynamic report generation
- Capture quality reporting
- Clean baseline checks
- Analyst notes
- Noise filtering for RingForge tools, Procmon, Autorunsc, Windows helper activity, and common clean-baseline behavior
The Manual API Tester supports analyst-driven endpoint testing and response review.
Current API testing capabilities include:
- GET, POST, PUT, PATCH, DELETE, HEAD, and OPTIONS support
- Built-in HTTPBin request presets
- VirusTotal file lookup preset placeholder
- JSON header editing
- JSON or raw body editing
- Multipart file upload testing
- SSL verification toggle
- Timeout configuration
- Response body, headers, and raw response review
- Pretty JSON response formatting
- Response Analysis tab
- Severity Summary counts
- Redacted report mode for safer sharing
- Unredacted full-evidence mode with warning confirmation
- Timestamped default HTML report names
- Active case display
- Open Case API Folder button
- Automatic latest API artifact saving into the active case folder
Manual API Tester case artifacts include:
cases/<case_name>/api_analysis/manual_api_latest.html
cases/<case_name>/api_analysis/manual_api_latest.json
Spec Analysis supports OpenAPI and Swagger-style definition review for local files and direct specification URLs.
Supported inputs include:
- Local
.json,.yaml, and.ymlOpenAPI/Swagger files - Direct OpenAPI/Swagger URLs such as
https://petstore3.swagger.io/api/v3/openapi.json
When a URL is provided, RingForge downloads the specification into the active case folder and analyzes the local copy.
Spec Analysis can help identify:
- Endpoint inventory
- HTTP methods
- Declared authentication schemes such as API key, bearer token, and OAuth2
- Endpoints that do not declare an explicit auth requirement in the spec
- Destructive or update-oriented methods such as
DELETE,PUT, andPATCH - File upload endpoints
- Sensitive-looking parameters
- PII-like schema fields
- Schema quality issues
- Unresolved references
- Notable endpoints for analyst review
- Recommended manual runtime validation tests
- HTML and JSON inventory reports
Spec Analysis findings are treated as review indicators, not confirmed runtime vulnerabilities. The generated recommendations use analyst-focused wording such as:
Validate whether authorization is enforced at runtime, even if the spec does not declare auth.
Spec Analysis case artifacts include:
cases/<case_name>/spec_analysis/api_spec_analysis.json
cases/<case_name>/spec_analysis/spec_inventory_latest.html
cases/<case_name>/spec_analysis/spec_inventory_latest.json
cases/<case_name>/spec_analysis/runs/<timestamp>_<spec_name>/
Browser Extension Analysis supports static review of Chrome, Edge, and Chromium-style browser extensions.
Supported inputs include:
- Unpacked extension folders
- ZIP extension packages
- CRX packages
Browser extension review includes:
- Manifest parsing
- Permission review
- Host permission review
- Background script and service worker review
- Content script review
- Web-accessible resource review
- File inventory
- File preview
- Risk notes
- Risk scoring
- HTML and JSON export
The Unified Report module combines available case artifacts into one report.
Supported module summaries include:
- Static Analysis
- Dynamic Analysis
- Manual API Tester
- API Specification Analysis
- Browser Extension Analysis
- Combined Score
The Unified Report now summarizes Manual API Tester findings, API Spec Analysis findings, Browser Extension Analysis status, and available static/dynamic results. It also uses clearer labels such as Not run and Not generated when a module has no artifacts in the selected case.
v1.7.2 focuses on API Spec Analysis workflow polish, cleaner spec case organization, direct OpenAPI/Swagger URL support, and better Unified Report integration.
- Added direct OpenAPI/Swagger URL support.
- Added support for analyzing downloaded spec URLs from the active case folder.
- Standardized API spec outputs under:
spec_analysis\api_spec_analysis.jsonspec_analysis\spec_inventory_latest.htmlspec_analysis\spec_inventory_latest.json
- Added clean historical run folders under:
spec_analysis\runs\<timestamp>_<spec_name>\
- Added source-spec preservation under:
spec_analysis\originals\- each historical run folder
- Added downloaded URL source storage under:
spec_analysis\downloaded_specs\
- Kept compatibility copies for older readers and report paths.
- Improved report wording from Top Risky Endpoints to Notable Endpoints.
- Improved parser warning language so auth gaps are tied to the specification, not assumed runtime behavior.
- Improved recommended-test wording to emphasize runtime validation instead of declaring vulnerabilities from the spec alone.
- Added API Spec Analysis summary extraction to the Unified Report.
- Added Spec Score display in the Case Overview section.
- Added API-specific spec-only verdicts such as:
High API Spec RiskMedium API Spec RiskLow API Spec RiskInformational API Spec Review
- Added API Analysis and Browser Extension Analysis rows to the Unified Report overview.
- Replaced blank score placeholders with clearer labels:
Not generatedNot run
- Improved spec-only case reporting so API spec results are not described with malware/dynamic-analysis language.
New API Spec Analysis output layout:
cases/<case_name>/spec_analysis/
api_spec_analysis.json
spec_inventory_latest.html
spec_inventory_latest.json
downloaded_specs/
<downloaded_spec_file>
metadata/
api_spec_analysis.json
originals/
original_<spec_name>.<ext>
runs/
<timestamp>_<spec_name>/
api_spec_analysis.json
spec_inventory.html
spec_inventory.json
original_<spec_name>.<ext>
The latest files stay at the root of spec_analysis for quick access and Unified Report integration. Historical runs are kept under spec_analysis/runs/ to avoid cluttering the main case folder.
v1.7.1 focuses on Manual API Tester improvements, API reporting workflow polish, Unified Report integration, and GUI behavior fixes.
- Added a dedicated Response Analysis tab.
- Added automatic API response findings for:
- HTTP status review
- HTTPS / cleartext HTTP review
- JSON / HTML response detection
- Server header disclosure
- X-Powered-By disclosure
- Wildcard CORS detection
- Set-Cookie observation
- Missing HSTS observation
- Verbose error/debug response indicators
- Token, cookie, credential, or secret-like content detection
- Added Severity Summary counts for API findings:
- High
- Medium
- Low
- Info
- Added Pretty JSON formatting for response bodies.
- Added timestamped default names for exported API HTML reports.
- Added Redact report mode for safer sharing.
- Added Unredacted full-evidence report mode with confirmation warning.
- Added redaction status to exported API reports.
- Added reflected origin/IP redaction for test APIs such as HTTPBin.
- Added active case display inside the Manual API Tester.
- Added Open Case API Folder button.
- Added latest Manual API Tester case artifacts:
api_analysis\manual_api_latest.htmlapi_analysis\manual_api_latest.json
- API HTML reports now include:
- Method
- URL
- Status
- Response time
- Content type
- Response size
- Redaction status
- Response analysis
- Request headers
- Request body
- Response body
- Response headers
- Raw output
- Exported reports can be saved anywhere the analyst chooses.
- A latest case copy is also saved automatically under the active case folder for Unified Report integration.
- Success popups now explain both save locations:
- user-selected export path
- active case API artifact path
- Integrated Manual API Tester findings into the Unified Report.
- Added API method, URL, HTTP status, content type, response size, redaction status, and response analysis findings to the Unified Report.
- Added latest API HTML/JSON artifact detection.
- Hid empty module sections when no findings are present.
- Improved Unified Report preview formatting.
- Improved generated Manual API Tester Summary formatting.
- Added better formatting for:
- Analysis findings
- Severity Summary
- Notes
- Wired API import analysis into the static scoring flow.
- Ensured
api_analysis.jsoncan contribute to static scoring evidence. - Added support for API analysis scoring in primary sample and subfile flows.
- API scoring remains context-aware so imports and API chains contribute evidence without overpowering the overall verdict.
- Fixed API Tester dialog and messagebox parent behavior.
- Reduced main-window focus jumping when browsing or saving files.
- Improved Manual API Tester response area sizing.
- Stabilized API Tester tab styling so selected tabs highlight without shrinking.
- Added
parent=selfbehavior to key browse/save/messagebox actions across relevant windows.
v1.7 focused on polishing both the static and dynamic analysis workflows. This release improved analyst usability, report clarity, cancellation behavior, installer observation, scoring context, case/output handling, and report naming.
- Improved static analysis stability.
- Fixed static cancellation behavior.
- Fixed false static cancellation behavior.
- Improved process-tree cleanup after static runs.
- Advanced settings are now greyed out unless override is enabled.
- Added clearer deep triage warning behavior.
- Added subfile progress visibility.
- Added subfile report section.
- Improved subfile triage presentation.
- Cleaned up VirusTotal status handling.
- Converted PKCS9/TSTInfo parsing noise into a friendlier warning.
- Added sample-specific static report filenames:
<sample>_static_report.html<sample>_static_report.md
- Kept compatibility report copies:
report.htmlreport.md
- Added editable observation settings in the Dynamic Analysis window:
- sample timeout
- minimum observation seconds
- post-exit observation seconds
- installer observation mode
- Added installer-aware post-exit observation so Procmon does not stop too early when installer launchers hand off to child processes.
- Added warning for constrained observation settings.
- Improved dynamic cancellation handling.
- Cancelled runs now write clear partial summaries with:
cancelled: trueexit_code: -2verdict: Cancelled- cancellation reason
- Added timeout explanation for GUI applications that remain open.
- Exit code
-1is now explained as an observation timeout when appropriate. - Improved Procmon disabled, missing, skipped, and cancelled states.
- Improved Autorunsc disabled, missing, skipped, and cancelled states.
- Improved dynamic preflight checks.
- Improved dynamic progress/status messages.
- Added case/output folder synchronization to reduce cross-case result mixups.
- Added sample-specific dynamic report filenames:
<sample>_dynamic_report.html
- Kept compatibility report copy:
dynamic_report.html
- Improved Capture Configuration / Tool Status section.
- Added timeout, minimum observation, post-exit observation, installer mode, and capture quality to reports.
- Improved cancelled and partial dynamic run reporting.
- Improved Autoruns report readability.
- Improved Spawned Processes table readability.
- Improved Suspicious Path Hits and Persistence Hits table readability.
- Improved report layout and column sizing.
- Improved clean-baseline reporting for Notepad-style GUI applications.
- Improved installer context notes for installer/helper behavior.
- Improved installer-aware dynamic scoring.
- Reduced false positives from normal Windows service state changes.
- Reduced noise from RingForge-generated files and dynamic run metadata.
- Reduced Procmon/Autorunsc/RingForge tool noise.
- Reduced clean baseline noise from Windows helper behavior.
- Improved Wireshark/Npcap installer context handling.
- Improved interpretation of installer helper processes and LOLBin-like activity in context.
v1.7.2 was validated with API Spec Analysis and Unified Report workflows.
Validated Spec Analysis checks:
- Risky local OpenAPI YAML test
- Lower-risk local OpenAPI YAML test
- Public Swagger Petstore OpenAPI JSON test
- Direct URL input test using
https://petstore3.swagger.io/api/v3/openapi.json - Downloaded spec storage under
spec_analysis\downloaded_specs\ - Latest spec report opening from
spec_inventory_latest.html - Historical run folder creation under
spec_analysis\runs\ - Source spec preservation under
spec_analysis\originals\ - Unified Report Spec Analysis artifact detection
- Unified Report Spec Score display
- Unified Report API-specific verdict display
- Unified Report
Not runandNot generatedlabels for missing modules
Expected API Spec Analysis artifact output:
cases/<case_name>/spec_analysis/api_spec_analysis.json
cases/<case_name>/spec_analysis/spec_inventory_latest.html
cases/<case_name>/spec_analysis/spec_inventory_latest.json
cases/<case_name>/spec_analysis/runs/<timestamp>_<spec_name>/api_spec_analysis.json
cases/<case_name>/spec_analysis/runs/<timestamp>_<spec_name>/spec_inventory.html
cases/<case_name>/spec_analysis/runs/<timestamp>_<spec_name>/spec_inventory.json
Expected API Spec Analysis Summary fields in Unified Report:
Spec title: <spec title>
Spec version: <version>
Spec type: openapi
Format: json or yaml
Parser confidence: high
Endpoints: <count>
Unauthenticated endpoints: <count>
Sensitive unauthenticated endpoints: <count>
High-risk endpoints: <count>
Medium-risk endpoints: <count>
Schema issue endpoints: <count>
File upload endpoints: <count>
Auth gap count: <count>
Auth schemes: <schemes>
Risk notes:
Notable endpoints:
v1.7.1 was validated with Manual API Tester and Unified Report workflows.
Validated API workflow checks:
- HTTPBin GET request test
- HTTPBin reflected header test
- Redacted report export
- Unredacted full-evidence report export
- Redaction warning confirmation
- Reflected origin/IP redaction
- Response Analysis tab output
- Severity Summary output
- Pretty JSON response formatting
- Timestamped default report filename
- Latest API HTML/JSON artifact saving
- Active case display
- Open Case API Folder button
- Unified Report API artifact detection
- Unified Report Manual API Tester summary
- Empty Unified Report section hiding
- Unified Report preview formatting
Expected Manual API Tester artifact output:
cases/<case_name>/api_analysis/manual_api_latest.html
cases/<case_name>/api_analysis/manual_api_latest.json
Expected Manual API Tester Summary fields in Unified Report:
Tool: manual_api_tester
Saved at: <timestamp>
Redaction: Enabled or Disabled / Full Evidence
Method: GET
URL: <tested endpoint>
Verify SSL: True
Timeout: 60 seconds
HTTP status: 200
Content-Type: application/json
Elapsed: <seconds>
Response size: <size>
Analysis findings:
[Info] Successful HTTP response received.
[Info] HTTPS transport used.
[Info] JSON response detected.
Severity Summary:
High: <count>
Medium: <count>
Low: <count>
Info: <count>
v1.7 was validated with static and dynamic smoke tests.
Validated static/dynamic checks included:
- Notepad static smoke test
- Notepad dynamic smoke test
- Notepad dynamic timeout behavior
- Notepad dynamic cancellation during Autoruns before snapshot
- Notepad dynamic cancellation during sample observation
- Procmon disabled scenario
- Procmon missing scenario
- Autorunsc missing scenario
- Wireshark static smoke test
- Wireshark installer dynamic smoke test
- Static sample-specific report filename validation
- Dynamic sample-specific report filename validation
- Clean source package validation with old release folders removed from the archive
Expected clean Notepad dynamic indicators:
Dynamic Score: Low / Clean Baseline
Spawned Processes: 0 non-noise attributed
Suspicious Paths: 0
Persistence Hits: 0
Autoruns Suspicious: 0
Scheduled Task Suspicious: 0
Service Diff Suspicious: 0
Dropped Files Suspicious: 0
Expected Wireshark installer dynamic behavior:
Capture Quality: good
Verdict: Low Suspicion or Needs Review depending on observed activity
Npcap/Wireshark installer context visible
Autoruns suspicious new/modified entries: 0 for trusted clean install behavior
Service/task findings reviewed in installer context
The v1.7.2 release package does not include third-party tools, external binaries, malware-analysis utilities, generated case folders, Procmon captures, or old release folders.
Users must download and configure external tools themselves.
This keeps the release package cleaner and avoids redistributing external software that should be obtained from original vendors or official project sources.
The following are not bundled in the v1.7.2 release ZIP:
- Sysinternals Procmon
- Sysinternals Autorunsc
- capa executable
- capa rules
- capa signatures
- FLOSS executable
- YARA executable
- YARA rules
- VirusTotal API key
- Generated case folders
- Static analysis outputs
- Dynamic analysis outputs
- Manual API Tester outputs
- API Spec outputs
- Browser Extension outputs
- Procmon
.pmlcaptures - Old release folders
- PyInstaller build folders
- Python virtual environment
For full dynamic analysis functionality:
- Procmon / Procmon64
- Used for runtime process, file, registry, and network event capture.
- Recommended path:
tools/Procmon64.exe
or:
tools/Procmon.exe
- Autorunsc / Autorunsc64
- Used for Autoruns before/after persistence snapshots.
- Recommended path:
tools/autorunsc64.exe
or:
tools/autorunsc.exe
For stronger static analysis:
- capa
- Used for capability and behavior rule matching.
- Recommended path:
tools/capa/capa.exe
- capa rules
- Required for capa rule matching.
- Recommended path:
tools/capa/rules/
- capa signatures
- Used by capa for richer binary analysis.
- Recommended path:
tools/capa/sigs/
- FLOSS
- Used for decoded-string recovery.
- Recommended path:
tools/floss/floss.exe
- YARA
- Used for YARA rule scanning when configured.
- Recommended path:
tools/yara/yara64.exe
or:
tools/yara/yara.exe
- YARA rules
- User-provided rules for static scanning.
- Recommended path:
tools/yara/rules/
-
VirusTotal API key
- Required only if VirusTotal enrichment is enabled.
- Users must provide their own API key.
- Do not commit API keys to Git.
-
WeasyPrint
- Optional Python dependency for direct PDF report generation.
- If unavailable, use the HTML report and browser print-to-PDF.
A fully configured local analysis environment may look like:
tools/
Procmon64.exe
autorunsc64.exe
capa/
capa.exe
rules/
sigs/
floss/
floss.exe
yara/
yara64.exe
rules/
procmon-configs/
dynamic_default.pmc
RingForge can still run with some tools missing, but functionality will be reduced:
- Without Procmon, dynamic runtime telemetry is not collected.
- Without Autorunsc, Autoruns persistence diffing is skipped.
- Without capa, static capability analysis is reduced.
- Without FLOSS, decoded-string recovery is reduced.
- Without YARA rules, YARA scanning is skipped or reported as incomplete.
- Without a VirusTotal API key, VirusTotal enrichment is unavailable.
RingForge opens into a launcher that provides access to:
- Static Analysis
- Dynamic Analysis
- Manual API Tester
- Spec Analysis
- Browser Extension Analysis
- Unified Report
The launcher is designed to keep workflows separated while allowing related analysis modules to contribute to the same case.
RingForge uses case-based output folders.
A typical case may look like:
cases/
<case_name>/
case_metadata.json
combined_score.json
metadata/
static_run_summary.json
combined_score.json
static_analysis/
<sample>_static_report.html
<sample>_static_report.md
report.html
report.md
summary.json
runlog.json
analysis.log
api_analysis.json
iocs.json
iocs.csv
strings.txt
capa.json
pe_metadata.json
lief_metadata.json
signing.json
virustotal.json
extracted/
subfiles/
metadata/
dynamic_analysis/
reports/
<sample>_dynamic_report.html
dynamic_report.html
dynamic_runs/
<sample>_<timestamp>_<run_id>/
metadata/
dynamic_run_summary.json
run_config.json
sample_info.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
autoruns/
autoruns_before.csv
autoruns_after.csv
autoruns_diff.json
files/
dropped_files.json
dropped_files_summary.json
reports/
dynamic_findings.json
api_analysis/
manual_api_latest.html
manual_api_latest.json
spec_analysis/
api_spec_analysis.json
spec_inventory_latest.html
spec_inventory_latest.json
downloaded_specs/
<downloaded_spec_file>
metadata/
api_spec_analysis.json
originals/
original_<spec_name>.<ext>
runs/
<timestamp>_<spec_name>/
api_spec_analysis.json
spec_inventory.html
spec_inventory.json
original_<spec_name>.<ext>
extension_analysis/
extension_analysis.json
reports/
unified_report/
unified_report.html
Note: some compatibility report names are intentionally retained so older GUI buttons and unified report paths continue to work.
ringforge-workbench/
assets/
dynamic_analysis/
gui/
scripts/
static_triage_engine/
tools/
triage_inbox.py
requirements.txt
README.md
LICENSE
Important folders:
| Folder | Purpose |
|---|---|
assets/ |
Branding and UI assets |
dynamic_analysis/ |
Dynamic collection, parsing, scoring, and reporting |
gui/ |
Tkinter GUI windows, launcher, controllers, and styles |
scripts/ |
Entry points and helper scripts |
static_triage_engine/ |
Static analysis engine, scoring, and reporting |
tools/ |
Local helper tool paths and configuration folders |
triage_inbox.py |
Helper entry point / inbox workflow |
The release archive is intended to contain the packaged application and documentation. Local folders such as .venv/, generated cases/, and temporary build artifacts should not be included in source archives.
Python 3.11 or 3.12 is recommended.
Install dependencies from requirements.txt.
Common packages include:
requestspefileliefpyyamlpillowpyinstallerweasyprintoptional for direct PDF generation
From PowerShell:
cd C:\RingForge_Analyzer\Static-Software-Malware-Analysis
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txtOptional PDF support:
pip install weasyprintIf PDF dependencies are unavailable, open the HTML report and use the browser's print-to-PDF option.
From the project root:
cd C:\RingForge_Analyzer\Static-Software-Malware-Analysis
.\.venv\Scripts\Activate.ps1
python .\scripts\static_triage_gui.py- Launch RingForge.
- Open Static Analysis.
- Select a Windows sample such as an EXE or DLL.
- Enter or confirm the case name.
- Run static analysis.
- Review score, verdict, confidence, VirusTotal context, API import context, subfile context, and report artifacts.
- Open the static report from the Artifacts section.
Expected static report locations:
cases/<case_name>/static_analysis/<sample>_static_report.html
cases/<case_name>/static_analysis/report.html
report.html is kept as a compatibility copy.
Dynamic analysis should be run inside an isolated Windows VM.
- Launch RingForge.
- Open Dynamic Analysis.
- Select the sample.
- Confirm the case directory and dynamic output directory.
- Confirm Procmon and Autorunsc paths.
- Configure timeout, minimum observation, post-exit observation, and installer mode.
- Run Dynamic Analysis.
- Allow the sample to execute under observation.
- For installers, complete the installer normally and allow first-run behavior to occur.
- Review the dynamic findings summary and HTML report.
Expected dynamic report locations:
cases/<case_name>/dynamic_analysis/reports/<sample>_dynamic_report.html
cases/<case_name>/dynamic_analysis/reports/dynamic_report.html
dynamic_report.html is kept as a compatibility copy.
- Launch RingForge.
- Open Manual API Tester.
- Select a preset or enter a custom method and URL.
- Add request headers as JSON.
- Add a request body if needed.
- Optionally select a file for multipart upload testing.
- Click Send Request.
- Review:
- Analysis
- Body
- Headers
- Raw
- Use Pretty JSON if the body is valid JSON and needs formatting.
- Choose whether to keep Redact report enabled.
- Save the HTML report.
When saving, RingForge writes:
- an analyst-selected export report
- a latest case copy for Unified Report integration
Expected API artifact locations:
cases/<case_name>/api_analysis/manual_api_latest.html
cases/<case_name>/api_analysis/manual_api_latest.json
- Launch RingForge.
- Open Spec Analysis.
- Select a local OpenAPI/Swagger file or paste a direct specification URL.
- Click Analyze Spec.
- Review:
- Overview tiles
- Authentication summary
- Risk notes
- Notable endpoints
- Recommended manual tests
- Endpoint inventory
- Use Open Latest Report to open the latest HTML report.
- Use Open Case Files to review generated JSON/HTML artifacts.
- Open the Unified Report for the same case to confirm Spec Score and API-specific verdict integration.
Example test URL:
https://petstore3.swagger.io/api/v3/openapi.json
Expected API Spec Analysis artifact locations:
cases/<case_name>/spec_analysis/api_spec_analysis.json
cases/<case_name>/spec_analysis/spec_inventory_latest.html
cases/<case_name>/spec_analysis/spec_inventory_latest.json
cases/<case_name>/spec_analysis/runs/<timestamp>_<spec_name>/
A dynamic run may produce:
| Artifact | Description |
|---|---|
dynamic_run_summary.json |
Main structured dynamic summary |
run_config.json |
Resolved dynamic run configuration |
sample_info.json |
Sample hash and metadata information |
raw.pml |
Raw Procmon capture |
export.csv |
Exported Procmon CSV |
parsed_events.json |
Parsed Procmon events |
interesting_events.json |
Filtered interesting runtime events |
tasks_before.json |
Scheduled tasks before execution |
tasks_after.json |
Scheduled tasks after execution |
task_diffs.json |
Scheduled task diff |
services_before.json |
Services before execution |
services_after.json |
Services after execution |
service_diffs.json |
Service diff |
autoruns_before.csv |
Autoruns snapshot before execution |
autoruns_after.csv |
Autoruns snapshot after execution |
autoruns_diff.json |
Autoruns persistence diff |
dropped_files.json |
Dropped-file candidates |
dropped_files_summary.json |
Dropped-file summary |
<sample>_dynamic_report.html |
Analyst-readable dynamic report |
dynamic_report.html |
Compatibility copy of the dynamic report |
The Manual API Tester may produce:
| Artifact | Description |
|---|---|
manual_api_latest.html |
Latest case-linked API HTML report |
manual_api_latest.json |
Latest case-linked structured API result |
api_test_report_<timestamp>.html |
User-selected exported API report |
The structured JSON artifact includes request metadata, response metadata, response analysis, redaction status, and report paths.
The API Spec Analysis module may produce:
| Artifact | Description |
|---|---|
api_spec_analysis.json |
Latest canonical structured API spec result |
spec_inventory_latest.html |
Latest analyst-readable API spec HTML report |
spec_inventory_latest.json |
Latest structured API spec inventory |
metadata/api_spec_analysis.json |
Compatibility/latest metadata copy |
downloaded_specs/ |
Downloaded OpenAPI/Swagger files when a URL is provided |
originals/ |
Preserved latest source specifications |
runs/<timestamp>_<spec_name>/ |
Historical spec run folder |
runs/<timestamp>_<spec_name>/spec_inventory.html |
Historical run HTML report |
runs/<timestamp>_<spec_name>/spec_inventory.json |
Historical run JSON report |
RingForge produces module-specific reports and supports a unified report workflow.
Current report types include:
- Static HTML report
- Static Markdown report
- Dynamic HTML report
- Manual API Tester HTML report
- API Spec report
- Browser Extension report
- Unified report
Reports are designed to be readable by analysts and suitable for review, documentation, and portfolio demonstration.
Dynamic analysis should only be performed inside an isolated, revertible analysis VM.
Do not run unknown or suspicious samples on a daily-use host.
Recommended safety practices:
- Use a dedicated Windows VM.
- Take a snapshot before testing.
- Disable shared clipboard and shared folders when testing unknown malware.
- Use a host-only or isolated network when appropriate.
- Revert the VM after risky testing.
- Treat all unknown binaries, installers, scripts, and extensions as potentially unsafe.
API testing can also expose sensitive information.
Recommended API testing practices:
- Avoid using production API keys unless required.
- Prefer test keys and controlled endpoints.
- Keep Redact report enabled for shareable reports.
- Use unredacted full-evidence reports only when intentionally preserving evidence.
- Treat exported reports as sensitive if they contain URLs, tokens, cookies, headers, IP addresses, or file paths.
RingForge is a triage and analyst workflow tool. It does not replace a full malware sandbox, EDR, SIEM, API security scanner, or reverse-engineering suite.
- Added direct URL support for OpenAPI/Swagger specifications.
- Added downloaded spec storage under the active case folder.
- Standardized API Spec Analysis output under
spec_analysis/. - Added
spec_inventory_latest.html,spec_inventory_latest.json, andapi_spec_analysis.jsonas latest/canonical artifacts. - Added clean historical run folders under
spec_analysis/runs/. - Added source spec preservation under
spec_analysis/originals/. - Improved Spec Analysis wording from Top Risky Endpoints to Notable Endpoints.
- Improved auth-gap wording so findings are tied to declared spec behavior.
- Improved recommended-test language to emphasize runtime validation.
- Added Spec Score and API-specific verdict support to the Unified Report.
- Added API Analysis and Browser Extension Analysis rows to the Unified Report overview.
- Added clearer
Not runandNot generatedlabels for missing modules.
- Added Manual API Tester Response Analysis tab.
- Added API response severity summary counts.
- Added Pretty JSON response formatting.
- Added timestamped default API report names.
- Added redacted report mode and unredacted evidence mode.
- Added redaction status to API reports.
- Added reflected origin/IP redaction for test APIs such as HTTPBin.
- Added active case display and Open Case API Folder button.
- Saved latest Manual API Tester HTML/JSON artifacts into the active case folder.
- Integrated Manual API Tester findings into the Unified Report.
- Hid empty Unified Report sections.
- Improved Unified Report preview formatting.
- Improved Manual API Tester Summary formatting in generated reports.
- Fixed API Tester dialog/messagebox parent behavior.
- Improved Manual API Tester response area sizing.
- Stabilized API Tester tab styling.
- Wired API import analysis into static scoring.
- Polished static analysis stability, cancellation handling, deep triage warning behavior, subfile progress, subfile reporting, VirusTotal status handling, and friendly PKCS9/TSTInfo warning behavior.
- Added sample-specific static report names while keeping
report.htmlandreport.mdcompatibility copies. - Added editable dynamic observation settings.
- Improved installer-aware dynamic observation and post-exit capture.
- Improved dynamic cancellation and partial-summary behavior.
- Added timeout explanation for GUI applications that remain open.
- Improved Procmon/Autorunsc disabled, missing, skipped, and cancelled states.
- Improved dynamic report readability and table formatting.
- Reduced dynamic false positives from normal Windows service state changes and installer helper behavior.
- Added sample-specific dynamic report names while keeping
dynamic_report.htmlcompatibility copy. - Cleaned release packaging so old release folders are not included.
- Added Autorunsc before/after persistence diffing.
- Added Autoruns section to the dynamic report.
- Fixed static report path handling for the newer folder structure.
- Improved dynamic report verdict alignment.
- Improved analyzer noise filtering.
- Improved Windows 11 Notepad baseline filtering.
- Improved Dynamic Analysis GUI auto-sizing.
- Improved unified report compatibility.
- Added branded splash screen.
- Added launcher/home workflow selector.
- Added Browser Extension Analysis.
- Added support for unpacked, ZIP, and CRX extension analysis.
- Added extension manifest parsing, file inventory, risk notes, and HTML/JSON export.
- Split major GUI windows into dedicated modules.
- Moved styling into reusable GUI style logic.
- Improved maintainability and future workflow expansion.
- Improved dynamic scoring.
- Improved signature handling.
- Added capa timeout and large-file handling.
- Improved YARA/report visibility.
- Hardened API Spec Analysis context.
RingForge Workbench demonstrates practical Python development applied to security analysis workflows.
Key engineering areas represented:
- Python GUI development
- Static malware/software triage
- Dynamic behavior collection
- Procmon parsing and event filtering
- Autoruns persistence diffing
- Manual API testing workflow design
- API response evidence reporting
- API specification parsing and report generation
- OpenAPI/Swagger URL ingestion
- API import analysis and scoring
- JSON artifact generation
- HTML report generation
- Scoring and verdict logic
- Analyst workflow design
- Case-based output organization
- False-positive reduction and baseline tuning
- Installer-aware runtime observation
- Report usability and workflow polish
Planned future improvements:
- Browser Extension Analysis polish
- Additional API Spec Analysis depth and rule tuning
- Cleaner v1.8 case artifact organization
- Dynamic profile presets
- More dynamic baseline profiles
- Additional service and network noise tuning
- Optional network snapshot support
- Improved unified report integration with sample-specific report names
- Additional report templates
- Expanded API and browser extension analysis depth
- Improved packaged release workflow
- Request history and custom API tester presets
- Enhanced severity scoring across module reports
This project is licensed under the MIT License.
See LICENSE for details.