f3ccc09c3d
Build comprehensive malware analysis knowledge base from 3 sources: - SANS FOR610 course: 120 tools, 47 labs, 15 workflows, 27 recipes - REMnux salt-states: 340 packages parsed from GitHub - REMnux docs: 280+ tools scraped from docs.remnux.org Master inventory merges all sources into 447 tools with help tiers (rich/standard/basic). Pipeline generates: tools.db (397 entries), 397 cheatsheets with multi-tool recipes, 15 workflow guides, 224 TLDR pages, and coverage reports. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
FOR610 Knowledge Base
Structured data extracted from the SANS FOR610 (Reverse-Engineering Malware) course materials.
Files
| File | Description |
|---|---|
categories.yaml |
Tool category taxonomy (18 categories) |
tools.yaml |
Master tool catalog (~110 tools with metadata) |
labs.yaml |
All 47 labs with ordered tool sequences |
workflows.yaml |
8 high-level analysis workflow patterns |
Schema
tools.yaml
Each tool entry contains:
id— unique kebab-case identifier (used for cross-references)name— display name as typed on CLIaliases— alternative namesdescription— one-line descriptioncategory— FK to categories.yamlplatform—linux|windows|both|onlinein_remnux— boolean, available in REMnux containerlabs— list of lab IDs that use this tooltypical_usage— 1-3 command examplesfor610_sections— which course sections cover this tooltags— free-form search tags
labs.yaml
Each lab entry contains:
id— lab number (e.g., "3.1")section— course section (1-5)title— full lab titlesample— malware specimen analyzedanalysis_type— controlled vocabularytools_used— ordered list withtool_id,platform, andpurposekey_techniques— techniques demonstratedprerequisite_labs— dependencies (optional)tags— free-form search tags
workflows.yaml
Each workflow contains ordered steps with tool references and related labs.
Generating JSON
make generate-data
This converts all YAML files to JSON under data/generated/ using yq.
Cross-Reference Integrity
Tool IDs in labs.yaml → tools_used[].tool_id must exist in tools.yaml.
Lab IDs in tools.yaml → labs[] must exist in labs.yaml.
Category IDs in tools.yaml → category must exist in categories.yaml.