원클릭으로
yara-sigs
Scan a state snapshot's memory dumps with YARA signatures to detect packers, crypto constants, malware, and more
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Scan a state snapshot's memory dumps with YARA signatures to detect packers, crypto constants, malware, and more
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Capture a full debuggee state snapshot (all committed memory regions + processor state) to disk for offline analysis
Smart trace-based OEP finder for packed/protected PE executables. Traces through packer stubs using intelligent stepping, anti-debug evasion, and heuristic OEP detection, then captures a state snapshot at the original entry point.
Hunt for vulnerabilities in a running debuggee by analyzing imports/exports, triaging attack surface, and iteratively testing for bugs with PoC generation.
Load, unpack, and analyze shellcode in x64dbg. Use this skill when the user wants to analyze shellcode, load a shellcode blob into a debugger, unpack encoded/encrypted shellcode, or perform static/dynamic analysis of shellcode payloads.
Decompile a function to C-like pseudocode using angr
Compare two state snapshots to identify register and memory changes between two points in time
| name | yara-sigs |
| description | Scan a state snapshot's memory dumps with YARA signatures to detect packers, crypto constants, malware, and more |
| allowed-tools | mcp__x64dbg__get_debugger_status, mcp__x64dbg__pause, mcp__x64dbg__disconnect, mcp__x64dbg__connect_to_session, Bash, Read, AskUserQuestion, Skill |
Scan debuggee memory (via a state snapshot) against a large YARA signature database to identify packers, crypto constants, anti-debug tricks, malware families, and more.
Follow these steps exactly:
Run pip show yara-python via Bash. If not installed, tell the user to run pip install yara-python and stop.
Run git --version via Bash. If not installed, tell the user to install Git and stop.
Check if the directory ${CLAUDE_PLUGIN_ROOT}\yarasigs exists (use dir). If it does not exist, clone it:
git clone --recurse-submodules https://github.com/x64dbg/yarasigs "${CLAUDE_PLUGIN_ROOT}\yarasigs"
If the directory exists but looks incomplete (missing Yara-Rules or citizenlab subdirectories), update submodules:
git -C "${CLAUDE_PLUGIN_ROOT}\yarasigs" submodule update --init --recursive
The YARA database contains many rule categories. If the user specified what they want to scan for in their invocation, use that. Otherwise, ask the user what they want to scan for using AskUserQuestion with these options:
Map the selection to rule category paths:
| Selection | Rule paths (relative to yarasigs/) |
|---|---|
| Packers & compilers | packer.yara, packer_compiler_signatures.yara, Yara-Rules/packers/ |
| Crypto constants | crypto_signatures.yara, Yara-Rules/crypto/ |
| Anti-debug / anti-VM | Yara-Rules/antidebug_antivm/ |
| All signatures | All .yar and .yara files recursively |
Check if a recent snapshot exists in ${CLAUDE_PLUGIN_ROOT}\snapshots (use dir).
To take a fresh snapshot, invoke the state-snapshot skill via Skill("state-snapshot"). After it completes, note the snapshot directory path.
Execute the scan script:
python "${CLAUDE_PLUGIN_ROOT}\skills\yara-sigs\yara_scan.py" --snapshot-dir <snapshot_path> --yarasigs-dir "${CLAUDE_PLUGIN_ROOT}\yarasigs" --categories <category> [--module-filter <module_name>]
Where <category> is one of: packers, crypto, antidebug, or all.
Module filtering: If the user asks to focus on a specific module (e.g. the main executable), pass --module-filter <name> where <name> is a substring of the module name as shown in the memory map (e.g. secret_encryptor). This merges all of the module's sections into a single buffer before scanning, which is critical for YARA rules whose patterns span multiple PE sections (e.g. MD5 init constants in .text + T-table in .rdata). Always prefer using --module-filter when scanning a specific module rather than relying on per-region scanning.
The script writes results to <snapshot_path>/yara_results.json and prints a summary to stdout.
Read <snapshot_path>/yara_results.json if it exists and the stdout summary is not sufficient.
Present findings organized by:
memory_map.json)If no matches were found, tell the user and suggest trying a broader category (e.g., "all").