Qu1cksc0pe

CYB3RMXGPL-3.0活跃维护

一站式恶意软件分析工具,支持 APK、ELF、EXE、OSX 等多平台样本,可识别加壳并提取特征,还提供 MCP Server 供 Agent 调用。

All-in-One malware analysis tool.

暂无版本2,101star266fork同步于 2026-11-07 07:33 UTC

怎么上手

由 README 提炼,执行前请确认
pip install "mcp>=2.0.0"
python qu1cksc0pe.py --file suspicious_file --analyze
硬件要求按 README 说明

README 未说明具体硬件要求;动态分析依赖 strace/ltrace、ADB、Frida 等外部工具,AI 摘要默认走本地 Ollama。

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

一站式恶意软件静态与动态分析工具,覆盖 Windows、Linux、Android、文档、脚本等多种文件类型

一站式恶意软件分析工具,支持 APK、ELF、EXE、OSX 等多平台样本,可识别加壳并提取特征,还提供 MCP Server 供 Agent 调用。

核心能力

  • 对 Windows、Linux、MacOS、Android 可执行文件做静态与动态分析
  • 提取 DLL、API、节区、URL、IP、邮箱等 IOC 信息
  • 映射 MITRE ATT&CK 战术与技术(Windows 和 Linux 静态分析)
  • 在内存沙箱中模拟 VBA、JS、PowerShell、批处理行为而不真正执行
  • 内置 MCP 服务器,把静态分析能力暴露给 Claude Code 等客户端

容易踩的坑

MCP 服务器默认绑定 127.0.0.1:8765/mcp,需自行确认端口未被占用;使用云端 AI 摘要前需先通过 --key_init 或环境变量配置对应 API Key;MCP 工具会拒绝大于等于 50MB 的文件,且 --watch、--ui、--install 等交互功能未暴露为工具。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Qu1cksc0pe

    You can get:

    • What DLL files are used.
    • Functions and APIs.
    • Sections and segments.
    • URLs, IP addresses and emails.
    • Android permissions (Dangerous/Special/Info).
    • MITRE ATT&CK mappings (Windows + Linux static analysis).
    • File extensions and their names.
    • Embedded executables/exploits. And so on...

    Qu1cksc0pe aims to get even more information about suspicious files and helps user realize what that file is capable of.

    Qu1cksc0pe Can Analyze Currently

    FilesAnalysis Type
    Windows Executables (.exe, .dll, .msi, .bin)Static, Dynamic
    Linux Executables (.elf, .bin)Static, Dynamic
    MacOS Executables (mach-o)Static
    Android Files (.apk, .jar, .dex)Static, Dynamic(for now .apk only)
    Golang Binaries (Linux)Static
    Document FilesStatic; sandboxed VBA behavior emulation when macros are present
    VBScript/VBA Family (.vbs, .vbe, .vba, .vb, .bas, .cls, .frm)Static + sandboxed behavior emulation (--docs)
    AppleScript Source (.applescript, including content detected under misleading VB-family extensions)Static (--analyze)
    HTML Documents (.html, .htm)Static + isolated inline JavaScript behavior emulation (--analyze)
    JavaScript (.js)Static + isolated behavior emulation (--analyze)
    HTA / HTML Application (.hta)Static + isolated JScript behavior emulation (--analyze)
    Windows Batch Scripts (.bat, .cmd, including content detected under misleading VB-family extensions)Static (--analyze)
    Windows Shortcut (.lnk)Static (--analyze)
    Archive Files (.zip, .rar, .ace)Static
    PCAP Files (.pcap)Static
    PowerShell Scripts (.ps1, .PS1)Static + bounded in-memory behavior emulation (--analyze)
    E-Mail Files (.eml)Static

    MCP Server

    Qu1cksc0pe ships an MCP server (Modules/mcp_server.py) that exposes its static-analysis features as tools for MCP-aware clients (Claude Code, Claude Desktop, etc.). It shells out to qu1cksc0pe.py the same way the Web UI does, so it needs no code changes to stay in sync with the CLI, and it only imports the mcp package itself at startup (the individual analyzers' own dependencies are only needed once a tool actually runs).

    Install the extra dependency (already included in requirements.txt):

    pip install "mcp>=2.0.0"
    

    Launch it through the --mcp flag, same as every other Qu1cksc0pe command:

    python3 qu1cksc0pe.py --mcp
    

    Transport defaults to streamable-http (binds 127.0.0.1:8765/mcp), so the server is a persistent process any number of clients can attach to and detach from independently -- run it once in its own terminal, point clients at http://127.0.0.1:8765/mcp. Override with:

    SC0PE_MCP_TRANSPORT=stdio python3 qu1cksc0pe.py --mcp   # traditional one-client-per-process model
    
    Env varDefault
    SC0PE_MCP_TRANSPORTstreamable-httpstreamable-http, stdio, or sse.
    SC0PE_MCP_HOST127.0.0.1Bind address for streamable-http/sse.
    SC0PE_MCP_PORT8765Bind port for streamable-http/sse.
    SC0PE_MCP_HTTP_PATH/mcpURL path for streamable-http.

    A project-level .mcp.json is included so Claude Code picks the server up automatically for this repo. It pins stdio explicitly (via env), since Claude Code spawns and owns a fresh process per session rather than attaching to one you started yourself:

    {
      "mcpServers": {
        "qu1cksc0pe": {
          "command": "python3",
          "args": ["qu1cksc0pe.py", "--mcp"],
          "env": { "SC0PE_MCP_TRANSPORT": "stdio" }
        }
      }
    }
    

    If python3 on your PATH isn't the interpreter with Qu1cksc0pe's dependencies installed (common on Windows, or with multiple Python installs), change command to the full path of the right python/python.exe, or run python3 -c "import mcp" first to check.

    Tools: analyze_file, analyze_document, analyze_archive, detect_packer, detect_language, extract_iocs, check_resources, check_signatures, scan_hash, scan_virustotal, configure_virustotal_api_key, configure_ai_api_key, update_hash_database, list_supported_file_types. Each tool validates its input file/folder locally (rejecting files >= 50MB, since the CLI would otherwise prompt interactively) before invoking the CLI, and returns the resulting JSON report(s) plus captured console output. Interactive-only features (--watch dynamic analysis, --ui, --install) are intentionally not exposed as tools.

    The five analysis tools that support ai=True also take an ai_provider argument ("auto"/"ollama" (default, local), "claude", "openai", "deepseek", "kimi", or "glm") -- see AI Analysis Providers below. Configure a cloud key first with configure_ai_api_key(provider="claude", api_key="...") (or whichever provider).

    Logs: every tool call and CLI dispatch (command, duration, exit code, reports collected) is logged to stderr and to sc0pe_reports/mcp/mcp_server.log. Set SC0PE_MCP_LOG_LEVEL=DEBUG for full stderr output too, or SC0PE_MCP_LOG_FILE=0 to disable the file sink.

    AI Analysis Providers

    --ai (and the MCP tools' ai=True) summarizes a generated report with an LLM. Ollama (local) is the default; five cloud backends are also supported.

    ProviderFlag/valueEnv var
    Ollama (default)auto or ollamaOLLAMA_HOST
    Claude (Anthropic)claudeANTHROPIC_API_KEY
    OpenAIopenaiOPENAI_API_KEY
    DeepSeekdeepseekDEEPSEEK_API_KEY
    Kimi (Moonshot AI)kimiMOONSHOT_API_KEY
    GLM (Zhipu AI)glmZHIPUAI_API_KEY

    Ollama needs no key -- install Ollama and select the model via [Ollama] model in Systems/Multiple/multiple.conf. For a cloud provider, either set its env var above, or save a key through the interactive key manager:

    python qu1cksc0pe.py --key_init
    # >>> Qu1cksc0pe API Key Manager
    #   1) VirusTotal
    #   2) Claude (Anthropic)
    #   3) OpenAI
    #   4) DeepSeek
    #   5) Kimi (Moonshot AI)
    #   6) GLM (Zhipu AI)
    #   0) Exit
    

    --key_init --key_provider <name> (e.g. --key_provider claude) skips the menu and prompts for just that one key -- useful for scripts (this is what the MCP server's configure_ai_api_key/configure_virustotal_api_key tools do under the hood).

    # Explicit provider selection (auto/ollama is the default -- no flag needed for local analysis)
    python qu1cksc0pe.py --file suspicious_file --analyze --ai --ai_provider claude
    

    The default (auto/unset) is unchanged from prior versions: Ollama, falling back to a heuristic summary if it's unavailable. Cloud providers are strictly opt-in -- report data is only sent off-machine if you explicitly pass --ai_provider <name> or set SC0PE_AI_PROVIDER. See the Environment Variables table for model/base-URL/timeout/token tuning per provider.

    Usage

    python qu1cksc0pe.py --file suspicious_file --analyze
    
    # Launch Web UI
    python3 qu1cksc0pe.py --ui
    

    Screenshot

    Screenshot

    Updates

    18/09/2026

    • Windows dynamic analysis: improved x86/x64 API tracing, process-tree monitoring, PID reuse handling, and debugger cleanup. Live-memory YARA/IOC scanning, bounded memory exports, and process injection/hollowing checks are enabled by default. Correlated API sequences and image anomalies are reported as candidates, not confirmed malicious execution.
    • Linux dynamic analysis: --watch now supports process-tree monitoring with strace/ltrace, network connections, open files, live-memory YARA/IOC scanning, and structured behavior observations. Reports record collection errors and incomplete coverage.
    • Android dynamic analysis: added explicit ADB device selection, APK installation or installed-package monitoring, native/Java Frida hooks, process tracking, logcat, file changes, and sampled memory analysis. Fixed stale Frida detach events affecting replacement sessions; APK/device ABI compatibility and installation failures are now reported.
    • Android static analysis: improved manifest, permissions, component, and network-security checks; bounded archive/member scanning; and isolated JADX output. Limited aapt recovery preserves package identity and observed permissions when the manifest parser fails. Partial decompilation is reported explicitly, and generic component names no longer establish a malware-family candidate.
    • YARA updates: expanded the bundled rules and added Koodous metadata compatibility for Android. Missing metadata remains unknown; compilation failures and partial scans are visible in reports. Fixed lost matches from rules without string instances and overly broad conditions that caused false positives. Added tools/audit_yara_rules.py to check compilation and empty-input matches.

    14/09/2026

    • New feature: PowerShell analysis (--analyze) now includes Qu1cksc0pe's bounded, in-memory abstract emulator. It models supported PowerShell operations and selected .NET APIs to report dynamic code, network requests, process attempts, and filesystem activity without invoking a real PowerShell runtime or fetching network responses. Unsupported operations, unresolved inputs, and resource limits can leave the analysis incomplete; speculative behavior does not establish runtime reachability.

    01/09/2026

    • New feature: malicious JavaScript can now be emulated automatically during HTML/JS/HTA analysis by a native, bounded abstract interpreter. Browser, WSH, ActiveX, Node.js network/process/filesystem/registry APIs and decoded eval layers are modeled entirely in memory; sample code, commands, files, and network requests are never executed on the host.

    25/08/2026

    • New feature: Office VBA projects and plaintext VBScript/VBA-family files are now emulated automatically in a native, in-memory sandbox during --docs analysis. The normal static scan still runs, and JSON reports include the emulation findings, IOC event trace, network requests, process attempts, persistence activity, and virtual files.
    • New feature: added AppleScript source analysis to Modules/apple_analyzer.py, including execution, network, credential-access, collection, persistence, defense-evasion, filesystem, shell-command, URL, and YARA indicators. Use --analyze; AppleScript is never executed through osascript.
    • New feature: added dedicated Windows Batch analysis for .bat/.cmd files, with execution, persistence, defense-evasion, download/network, obfuscation, IOC, and YARA detection.

    12/08/2026

    • New feature: added an MCP server (--mcp, Modules/mcp_server.py, .mcp.json) exposing Qu1cksc0pe as tools for MCP clients like Claude Code, defaulting to streamable-http (persistent, multi-client; stdio/sse also available) with logging to stderr and sc0pe_reports/mcp/mcp_server.log (SC0PE_MCP_LOG_LEVEL/SC0PE_MCP_LOG_FILE). See the "MCP Server" section above.
    • New feature: --ai now supports Claude, OpenAI, DeepSeek, Kimi, and GLM as alternative backends to Ollama via --ai_provider/SC0PE_AI_PROVIDER (or the MCP tools' ai_provider argument). Ollama stays the local-only default unless a cloud provider is explicitly selected; see "AI Analysis Providers" above.
    • New feature: --key_init is now an interactive menu covering VirusTotal + all five AI providers instead of a single VirusTotal-only prompt. --key_init --key_provider <name> skips the menu for scripted use.
    • Bug fix: --key_init saved (and could silently overwrite) an empty API key if you pressed Enter without typing anything. Empty input is now rejected.
    • Bug fix: execute_module()'s os.system() call mis-quoted its command on Windows, silently breaking every analysis whenever the interpreter or project path contained a space.

    Available On

    Recommended Systems

    • Parrot OS
    • Kali Linux
    • Windows 10 or 11

    And also another Linux distributions like as Kali/Parrot

    Setup and Installation

    [!NOTE] If you encounter issues with the Python modules, creating a Python virtual environment (python_venv) should resolve them. For detailed setup and troubleshooting (dependencies, Docker usage, Windows notes), see the project overview documentation. AI model selection is manual: set [Ollama] model in Systems/Multiple/multiple.conf to the exact model you want to use.

    # First you need to clone Qu1cksc0pe with this command
    git clone --depth 1 https://github.com/CYB3RMX/Qu1cksc0pe
    
    # After cloning the repository YOU MUST create a python virtual environment (for handling python modules)
    virtualenv -p python3 sc0pe_venv
    source sc0pe_venv/bin/activate
    
    # You can simply execute the following command it will do everything for you!
    bash setup.sh
    #
    # setup.sh also installs required system tools (e.g. adb, strings, unzip, 7z) and sets up JADX.
    
    # If you want to install Qu1cksc0pe on your system just execute the following commands.
    python qu1cksc0pe.py --install # Optional
    
    # To prevent interpreter errors after installation, use dos2unix.
    dos2unix /usr/bin/qu1cksc0pe
    
    # Or you can use Qu1cksc0pe from Docker!
    docker build -t qu1cksc0pe .
    docker run -it --rm -v $(pwd):/data qu1cksc0pe:latest --file /data/suspicious_file --analyze
    
    # For Windows systems you need to execute the following command (Powershell)
    # PS C:\Users\user\Desktop\Qu1cksc0pe> .\setup.ps1
    #
    # setup.ps1 handles winget dependency fallback, Python + 7-Zip setup,
    # Sysinternals strings EULA acceptance, and resilient Ollama installation.
    # If cloud model auth is needed, run:
    # ollama signin
    # ollama pull kimi-k2.5:cloud
    

    Environment Variables

    You can change some analyzer behaviors via environment variables (useful for CI, reproducibility, or controlling report size/timeouts).

    Linux/macOS (bash/zsh) example

    SC0PE_ANDROID_REPORT_DETAILED=1 python qu1cksc0pe.py --file app.apk --analyze --report
    

    Windows (PowerShell) example

    $env:SC0PE_ANDROID_REPORT_DETAILED="1"
    python .\\qu1cksc0pe.py --file app.apk --analyze --report
    
    VariableDefaultWhat It Does
    SC0PE_ANDROID_REPORT_DETAILED0Android analyzer JSON becomes more verbose (keeps larger fields and higher limits). Includes more details under resource_scan, and keeps large duplicate fields like code_patterns more often.
    SC0PE_WINDOWS_REPORT_DETAILED0Windows analyzer stores per-category API lists in more detail (instead of unique API names only).
    SC0PE_AUTO_DECRYPT_CHAIN0Document analyzer: when an Office document decryption succeeds, automatically re-runs analysis on the decrypted output (best-effort).
    SC0PE_AI_INTERESTING_PATTERNS_MAX_KEYS25AI analyzer: limit how many keys from interesting_string_patterns are included in the LLM prompt.
    SC0PE_AI_INTERESTING_PATTERNS_MAX_VALUES30AI analyzer: limit list size per interesting_string_patterns key in the LLM prompt.
    SC0PE_AI_INCLUDE_TEMP_EXCERPT0AI analyzer: include raw temp.txt excerpt in prompt when set to 1 (default is parsed/summarized mode without raw excerpt).
    SC0PE_AI_TEMP_TXT_EXCERPT_CHARS800AI analyzer: character limit for raw temp.txt excerpt (used when SC0PE_AI_INCLUDE_TEMP_EXCERPT=1).
    SC0PE_AI_TEMP_TXT_MAX_STRINGS50AI analyzer: limit number of meaningful strings selected from parsed temp.txt.
    SC0PE_AI_TEMP_TXT_MIN_LEN6AI analyzer: minimum length for a meaningful string extracted from temp.txt.
    SC0PE_AI_TEMP_TXT_MAX_LEN180AI analyzer: maximum length for a meaningful string extracted from temp.txt.
    SC0PE_AI_TEMP_PARSE_MAX_BYTES2097152AI analyzer: max bytes to parse from temp.txt while building compact evidence.
    SC0PE_AI_TEMP_PARSE_MAX_LINES12000AI analyzer: max lines to parse from temp.txt.
    SC0PE_AI_TEMP_SAMPLE_LINES2500AI analyzer: sample size used for meaningful-string scoring.
    SC0PE_AI_TEMP_IOC_CAP40AI analyzer: cap for IoC candidates parsed from temp.txt.
    SC0PE_AI_TEMP_IOC_PROMPT_MAX20AI analyzer: max parsed IoC values per kind sent to LLM prompt.
    SC0PE_AI_MAX_REPORT_CHARS180000AI analyzer: threshold for full-report prompt mode; larger reports are compacted automatically.
    SC0PE_AI_COMPACT_MAX_LIST_ITEMS40AI analyzer: list sampling limit in compact report mode.
    SC0PE_AI_COMPACT_MAX_STR220AI analyzer: max string length per field in compact report mode.
    SC0PE_AI_COMPACT_MAX_DEPTH4AI analyzer: nested depth limit in compact report mode.
    SC0PE_AI_OLLAMA_HTTP_TIMEOUT60AI analyzer: Ollama HTTP call timeout (seconds).
    SC0PE_AI_HTTP_PROBE_TIMEOUT20AI analyzer: short probe timeout before full HTTP generation call (seconds).
    SC0PE_AI_OLLAMA_CLI_TIMEOUT90AI analyzer: Ollama CLI call timeout (seconds).
    SC0PE_AI_TOTAL_BUDGET120AI analyzer: total generation budget across retries/fallback attempts (seconds).
    SC0PE_AI_OLLAMA_NUM_PREDICT700AI analyzer: default generation token budget per Ollama call.
    SC0PE_AI_OLLAMA_RETRY_NUM_PREDICT1400AI analyzer: generation token budget for retry when output looks truncated.
    SC0PE_AI_OLLAMA_NUM_CTX8192AI analyzer: Ollama context window setting.
    SC0PE_AI_DISABLE_THINK1AI analyzer: sends think=false (if supported) and removes thinking artifacts from displayed/saved output.
    SC0PE_AI_ALLOW_MODEL_FALLBACK1AI analyzer: when 1, can try locally available Ollama models if configured model fails/unavailable.
    SC0PE_AI_SKIP_CLOUD_WHEN_LOCAL1AI analyzer: prefer local models over cloud-tagged models when local options exist.
    SC0PE_AI_SKIP_CLOUD_CLI1AI analyzer: skip cloud-tagged models for CLI fallback attempts.
    SC0PE_AI_MAX_MODEL_CANDIDATES4AI analyzer: maximum number of candidate models to try in fallback chain.
    SC0PE_AI_PROVIDERautoAI analyzer backend: auto/ollama (default, local, nothing below applies), claude, openai, deepseek, kimi, or glm. Same as --ai_provider; the flag wins if both are set.
    SC0PE_AI_CLAUDE_MODELclaude-haiku-4-5-20251001AI analyzer: model used when SC0PE_AI_PROVIDER=claude.
    SC0PE_AI_<PROVIDER>_MODELsee belowAI analyzer: model for openai/deepseek/kimi/glm (e.g. SC0PE_AI_DEEPSEEK_MODEL). Defaults: openai=gpt-4o-mini, deepseek=deepseek-chat, kimi=moonshot-v1-8k, glm=glm-4-flash. Cloud model names drift; override if stale.
    SC0PE_AI_<PROVIDER>_BASE_URLprovider defaultAI analyzer: chat-completions endpoint for openai/deepseek/kimi/glm, in case a provider changes its API URL.
    SC0PE_AI_CLAUDE_MAX_TOKENS / SC0PE_AI_<PROVIDER>_MAX_TOKENS1200AI analyzer: response token cap for the respective cloud provider.
    SC0PE_AI_CLOUD_HTTP_TIMEOUT90AI analyzer: HTTP timeout (seconds) for any cloud provider call.
    ANTHROPIC_API_KEY / OPENAI_API_KEY / DEEPSEEK_API_KEY / MOONSHOT_API_KEY / ZHIPUAI_API_KEYunsetAI analyzer: cloud provider API keys. Take precedence over keys saved via --key_init.
    SC0PE_AI_FILTER_WHITELIST_DOMAINS1AI IoC sanitizer: filter legit/whitelisted domains using Systems/Multiple/whitelist_domains.txt.
    SC0PE_AI_ALLOW_SHORT_DOMAINS0IoC sanitizer: allow very short SLD domains (disabled by default to reduce false positives).
    SC0PE_AI_MIN_SLD_LEN4IoC sanitizer: minimum registrable-label length for domain validation.
    SC0PE_AI_ALLOW_FILELIKE_TLDS0IoC sanitizer: when 0, filters file-like pseudo-domains such as sheet1.xml.
    SC0PE_AI_KEEP_LOCAL_PATHS0IoC sanitizer: when 0, removes local analysis machine paths from file_paths.
    SC0PE_DOC_AUTO_EXTRACT_MACROS1Document analyzer: automatically extract detected VBA/XLM macros into report output (0 disables).
    SC0PE_REPORT_MAX_MACRO_CHARS50000Document analyzer: per-macro text cap used while saving extracted macro content into JSON report.
    SC0PE_EMAIL_DNSBL_FILTER_NOISY1Email analyzer: filter noisy DNSBL providers to reduce false positives.
    SC0PE_EMAIL_DNSBL_ALLOW_UNKNOWN0Email analyzer: include/exclude DNSBL hits with unknown category.
    SC0PE_EMAIL_DNSBL_NOISY_PROVIDERSunsetEmail analyzer: comma-separated extra DNSBL providers to treat as noisy.
    SC0PE_AUTO_CLEANUP_ATTACHMENTSunsetEmail analyzer: set 1 for auto-delete, 0 for never-delete, unset for interactive prompt.
    OLLAMA_HOSThttp://127.0.0.1:11434AI report analysis backend (Ollama). Set this if Ollama is remote or on a different host/port.
    JAVA_HOMEunsetAndroid analyzer: helps locate Java runtime for JADX. Set this if Java is installed but not detected.

    Static Analysis

    Normal analysis

    Description: You can perform basic analysis and triage against your samples.

    Usage: python qu1cksc0pe.py --file suspicious_file --analyze windows_analyze

    Resource analysis

    Description: With this feature you can analyze assets of given file. Also you can detect and extract embedded payloads from malware samples such as AgentTesla, Formbook etc.

    Effective Against:

    • .NET Executables

    Usage: python qu1cksc0pe.py --file suspicious_file --resource

    [!NOTE] Android APK resource scanning was moved into the Android analyzer. Use: python qu1cksc0pe.py --file app.apk --analyze --report The JSON report includes resource_scan. Set SC0PE_ANDROID_REPORT_DETAILED=1 to keep more details in the report. resource

    Hash scan

    Description: You can check if hash value of the given file is in built-in malware hash database. Also you can scan your directories with this feature.

    Usage: python qu1cksc0pe.py --file suspicious_file --hashscan hash

    Folder scan

    Supported Arguments:

    • --hashscan
    • --packer

    Usage: python qu1cksc0pe.py --folder FOLDER --hashscan hashscan_tui

    VirusTotal

    Report Contents:

    • Threat Categories
    • Detections
    • CrowdSourced IDS Reports

    Usage for --vtFile: python qu1cksc0pe.py --file suspicious_file --vtFile

    [!NOTE] In Web UI flow, Standart Analysis, Document, and Archive presets also execute VirusTotal file lookup in background and show the result in the report page.

    total

    Document scan

    Description: This feature performs deep inspection of document files and VBScript/VBA-family source. It detects and extracts possible malicious links, embedded exploits/payloads, and macro code. When plaintext VBA/VBScript is available, Qu1cksc0pe also runs it automatically through its in-memory behavior-emulation sandbox after the normal static analysis.

    Effective Against:

    • Word Documents (.doc, .docm, .docx)
    • Excel Documents (.xls, .xlsm, .xlsx)
    • Portable Document Format (.pdf)
    • OneNote Documents (.one)
    • Rich Text Format Documents (.rtf)
    • VBScript/VBA Family (.vbs, .vbe, .vba, .vb, .bas, .cls, .frm)

    Usage: python qu1cksc0pe.py --file suspicious_document --docs

    Automatic VBA/VBScript behavior emulation

    The emulator models common VBA/VBScript behavior such as CreateObject, filesystem and registry access, HTTP/COM calls, process creation, WMI, Office object access, scheduled tasks, decoding, and dynamic execution. All filesystem, registry, process, and network effects are virtual: analyzed code does not execute commands or contact remote systems on the host.

    • Runs automatically in addition to the static document/script scan.
    • Combines all extracted modules into one VBA project namespace so cross-module calls can be observed.
    • Invokes conventional Office auto-entry points and recovered Ribbon/shape callbacks where available.
    • Uses a fixed 15-second safety budget for each script or VBA project.
    • Adds a step-by-step IOC trace and an emulation section to JSON reports.
    • Skips encoded .vbe bodies when plaintext cannot be recovered; their static indicators are still analyzed.
    # Macro-enabled Office document
    python qu1cksc0pe.py --file suspicious.xlsm --docs --report
    
    # Plain VBScript/VBA-family source
    python qu1cksc0pe.py --file suspicious.vbs --docs --report
    

    docs

    Embedded File/Exploit Extraction

    exploit

    Archive File Scan

    Description: With this feature you can perform checks for suspicious files against archive files.

    Effective Against:

    • ZIP
    • RAR
    • ACE

    Usage: python qu1cksc0pe.py --file suspicious_archive_file --archive With report: python qu1cksc0pe.py --file suspicious_archive_file --archive --report With AI support: python qu1cksc0pe.py --file suspicious_archive_file --archive --ai

    [!NOTE] ACE archive support requires 7z/7zz to be installed (setup scripts install it on supported systems). archiveanalysis

    File signature analyzer

    Description: With this feature you can detect and extract embedded executable files(.exe, .elf) from given file. Also you can analyze large files (even 1gb or higher) and extract actual malware samples from them (pumped-file analysis).

    Usage: python qu1cksc0pe.py --file suspicious_file --sigcheck sigcheck

    File Carving

    carving

    MITRE ATT&CK Technique Extraction

    Description: MITRE ATT&CK mapping is generated automatically during static analysis based on detected APIs/functions/patterns.

    Effective Against:

    • Windows Executables
    • Linux Executables

    Usage: python qu1cksc0pe.py --file suspicious_file --analyze mitre

    Android Permission Risk Classification

    Description: Android permission analysis now classifies permissions as Dangerous, Special, or Info and writes an aggregate permission_summary into JSON reports.

    Usage: python qu1cksc0pe.py --file suspicious_app.apk --analyze --report

    [!NOTE] In Web UI report page, Android permissions are shown in a dedicated section with counters and per-permission state badges.

    Programming language detection

    Description: You can get programming language information from given file.

    Usage: python qu1cksc0pe.py --file suspicious_executable --lang langdetect

    Interactive shell

    Description: You can use Qu1cksc0pe in command line mode.

    Usage: python qu1cksc0pe.py --console console

    Dynamic Analysis

    Android Application Analysis

    [!NOTE] You must connect a virtual device or physical device to your computer.

    Usage: python qu1cksc0pe.py --watch

    https://github.com/user-attachments/assets/7b27abb9-f18e-4611-8bdd-cd65106b5cf0

    Linux Dynamic Analysis

    Description: Linux dynamic flow is menu-driven and lets you choose emulation or live process monitoring.

    Usage: python qu1cksc0pe.py --watch

    After selecting Linux:

    • Option 1: Binary Emulation (isolated environment).
    • Option 2: PID Monitoring.

    Notes:

    • PID monitoring accepts both numeric PID and process name.
    • Interactive Linux prompts support TAB autocomplete (selection, path, PID/name).
    • Emulation fallback order: Docker SDK -> Docker CLI -> host qemu (if Docker is unavailable).

    Windows Process Analysis

    Usage: python qu1cksc0pe.py --watch

    https://github.com/CYB3RMX/Qu1cksc0pe/assets/42123683/a2c84b8f-c12c-47ac-96e9-c345aeda1f54

    References

    • The Cyber Security Hub
    • Kitploit - Top 20 Most Popular Hacking Tools in 2021
    • CSIRT.MAI
    • Vulners
    • RedPacket Security
    • Bournemouth University - CERT
    • Hacking Articles - Digital Forensics Tools Mindmap
    • HackGit - Twitter Post
    • Daily Dark Web - Twitter Post
    • SANS ISC - Blog Post
    • Korben - Blog Post
    • heise online - Blog Post

    Star History

    Star History Chart