Production-grade malware analysis engine built with Lua, featuring automated binary analysis, nested file extraction, advanced YARA scanning, threat intelligence integration, code deobfuscation, and extensible plugin support.
On file upload, Axalote automatically:
- Detects file type (ELF, PE, Mach-O, DEX, PDF, ZIP, ISO, Donut)
- Extracts nested samples from containers
- Recursively analyzes contained files
- Computes MD5, SHA1, SHA256 hashes
- Calculates file entropy
- Identifies MIME type
- Tracks parent-child file relationships
Automatic detection and full parsing of:
- PE (Windows) - Full header structure, sections, certificate extraction
- ELF (Linux) - Bits, endianness, ABI, program headers, section headers
- Mach-O (macOS) - Load commands and detailed header information
- DEX (Android) - Classes, methods, strings, types, prototypes
- PDF - Stream extraction and analysis
- Nested formats - ZIP, ISO, Donut, PDF content extraction
- Scan files against YARA rules with full pattern matching
- Hunt patterns across entire file database
- Load rules with compilation error diagnostics
- Manage file-to-rule mappings
- Delete specific rule associations
Configurable string extraction with 7 encoding types:
- ASCII, UTF-8, UTF-16LE/BE, UTF-32LE/BE, WIDE
- Character type filters (printable, alphanumeric, all)
- Configurable length limits (1-100,000 bytes)
- Null-termination filtering
Automatic IOC detection:
- IPv4 (with routable validation)
- IPv6 addresses
- URLs and domains
- Email addresses
- Full file reports with vendor detections
- File existence verification
- Sandbox behavior analysis reports
- Direct download and local scanning
- Multi-hash format support
- Direct file deobfuscation by SHA256
- JavaScript deobfuscation with extensible driver system
- Custom deobfuscation options
- Source code recovery
- Save analysis artifacts (deobfuscated code, configurations, extracted content)
- Per-artifact metadata with timestamps
- Artifact notes and documentation
- Base64 encoding support
- Full artifact lifecycle management
- Load/update/unload Lua plugins at runtime
- Pause/resume plugin execution
- Plugin file management
- Execute arbitrary code through plugins
- CPU core count and usage percentage
- Memory statistics (total, used, free)
- Disk usage information
- Engine uptime tracking
Record metadata fields:
- Tags and descriptions
- IOC indicators
- Malware family classification
- File size, entropy, MIME type
- Parent and dropped file relationships
- Update and retrieve operations
POST /axalote/engine/restart- Restart the enginePOST /axalote/engine/stop- Stop the engineGET /axalote/heartbeat/collect- System status and metrics
POST /axalote/yara/scan- Scan file against rulesPOST /axalote/yara/generate- Generate and compile a YARA rule for a stored filePOST /axalote/hunt/yara- Hunt patterns across databasePOST /axalote/yara/load/rules- Load YARA rules with diagnosticsGET /axalote/yara/rules- List all rulesGET /axalote/yara/rules/{name}- Retrieve specific ruleGET /axalote/yara/rules/files- List files using rulesPOST /axalote/yara/rules/files/delete- Delete rule file association
POST /axalote/records/files/upload- Upload file (base64 or raw)GET /axalote/records/files- List all scanned filesGET /axalote/records/files/{sha256}- Get file metadataPOST /axalote/records/files/update- Update metadata and tagsPOST /axalote/records/files/delete- Delete file (cascading)POST /axalote/records/files/download- Download file bytesGET /axalote/records/files/{sha256}/children- List dropped filesPOST /axalote/records/files/rescan- Re-scan file
POST /axalote/strings/scan- Extract strings with IOC detection- Supports 7 encoding types with configurable filters
POST /axalote/parser/file- Auto-detect and parse binary headersGET /axalote/parser/file/{sha256}- Get parsed binary info- Handles PE, ELF, Mach-O, DEX, PDF formats
GET /axalote/vt/files/{sha256}/check- Quick hash verificationGET /axalote/vt/files/{sha256}- Full file reportGET /axalote/vt/files/{sha256}/behaviour- Sandbox behaviorPOST /axalote/vt/files/download- Download and scan
POST /axalote/deobfuscate- Deobfuscate codeGET /axalote/deobfuscate/languages- List supported languages
POST /axalote/artifacts/artifacts- Save analysis artifactGET /axalote/artifacts/artifacts/{sha256}- List artifactsGET /axalote/artifacts/artifacts/{sha256}/{name}- Retrieve specific artifactPOST /axalote/artifacts/artifacts/notes- Update artifact notesPOST /axalote/artifacts/artifacts/delete- Delete artifact
POST /axalote/plugins/load- Load pluginGET /axalote/plugins/list- List all pluginsGET /axalote/plugins/autocomplete- Plugin autocompleteGET /axalote/plugins/{name}- Get plugin infoGET /axalote/plugins/{name}/files- List plugin filesPOST /axalote/plugins/exec- Execute pluginPUT /axalote/plugins/{name}- Update pluginPOST /axalote/plugins/{name}/pause- Pause pluginPOST /axalote/plugins/{name}/resume- Resume pluginDELETE /axalote/plugins/{name}- Unload plugin
GET /axalote/config/view- View configurationPOST /axalote/config/edit- Merge and persist changesGET /axalote/logs/trace- Retrieve logs
GET /axalote/tools- List available toolsPOST /axalote/tools/call- Call a toolPOST /axalote/mcp- MCP protocol endpoint (JSON-RPC 2.0)
Configure in config/axalote.json:
{
"server": {
"host": "0.0.0.0",
"port": 8080,
"timeout": 600,
"performance": {
"max_concurrent": 4096,
"max_body_size": 0
}
},
"scanner": {
"yara": {
"rules": "./config/yara/rules",
"rules_backup": "./config/yara/backup.yarc",
"suspicious_words": "./config/yara/suspicious_words.txt"
},
"records": {
"path": "./records/",
"extension": ".record"
}
},
"virustotal": {
"api_key": ""
},
"plugins": {
"path": "./config/plugins"
}
}git submodule update --init --recursive
sudo luarocks-5.4 install --only-deps cov-scm-1.rockspecgit submodule update --init --recursive
docker-compose upsources/axalote/- Engine implementationscanner/- Core analysis modules, extraction, parsingendpoints/- HTTP endpoints (15+ routes)mcp/- JSON-RPC protocol implementationvt/- VirusTotal clientdeobfuscate/- Code deobfuscation driversplugins/- Plugin system
config/- Configuration and YARA rulesksy/- Kaitai struct formatslibs/- Dependencies
