Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Malware Binary Analysis Skill

面向 Claude Code 和 Codex 的恶意二进制分析 Skill,以 IDA Pro 和 IDASQL 为主要分析环境。

它解决的核心问题不是“反编译一个入口函数”,而是:完整发现行为、保留可复现证据、正确描述多文件执行关系,并让不同 Agent 或不同会话从磁盘状态继续工作。

支持两个工作流:

  • analysis:执行完整、证据驱动的分析。
  • report:从已经验证的 Case 生成最终报告。

核心能力

  • 从入口、回调、函数、字符串、导入、导出、资源、间接调用和 Payload 等独立视角交叉发现功能。
  • 使用确定性工作队列、覆盖率门禁和自适应复核减少遗漏,同时避免无意义的重复分析。
  • 将 Evidence、Claim、Work Item、Artifact 和 Stage 显式关联,阻止结论串到错误文件或执行阶段。
  • 区分不可变字节 Artifact、执行上下文 Stage 和 IDA 分析代次;IDB 重建、重定位或工具升级后旧证据自动过期。
  • 记录 Payload 提取与转换血缘,并保留顺序、并行、延迟、条件、循环和未知等真实时序语义。
  • 支持 Claude Code 与 Codex 在单写者约束下恢复同一个 Case,不依赖聊天记忆。
  • 生成兼顾普通读者与逆向分析人员的报告,并保留正文 Claim 追踪、精确定位、IDA 截图和可编辑 draw.io 图形。

常规发现可用 record-finding 在一个事务中完成 Evidence、Claim 和 Work Item 关联;复杂发现仍可使用底层命令。两条路径执行相同的质量校验。

为什么默认路径不会很重

Skill 采用渐进式加载:

  • 普通单文件分析只加载 IDASQL 和基础分析流程。
  • 发现新 Payload、多 Artifact、多 Stage 或复杂时序时才加载多阶段规则。
  • 恢复长 Case、跨 Agent 交接时才加载上下文协议。
  • 进入报告阶段才加载报告追踪和写作规范。

减少的是 Agent 的上下文与手动操作,不是底层质量门禁。

工作流

样本 / IDA 数据库
        │
        ▼
身份确认与多视角发现
        │
        ▼
工作队列 → Evidence → Claim
        │
        ├── 字节转换 ──► Artifact 血缘
        └── 控制转移 ──► Stage 执行图
                              │
                              ▼
                    自适应复核与完成校验
                              │
                              ▼
                    按真实时序生成报告

Artifact 是不可变的文件或字节内容;Stage 是 Artifact 在特定入口、进程和触发条件下的一次执行。二者分开建模,避免把文件提取顺序误写成攻击执行顺序。

前置条件与安全边界

创建和检查 Case 只需要 Python 3.10+;项目脚本仅使用 Python 标准库。

执行真实分析还需要:

  • IDA Pro;
  • 可执行 idasql --versionIDASQL
  • 需要反编译时可用的 Hex-Rays Decompiler;
  • 报告需要图形时可用的 draw.io 工具或授权 CLI。

推荐安装 IDASQL Skills。IDA 或 IDASQL 不可用时,只能初始化或检查 Case,不能把可执行 Stage 标记为分析完成。

默认优先静态分析。不要在宿主机运行未知样本;调试、仿真或引爆必须经过明确授权并位于隔离环境。未经授权,不得上传样本、哈希或提取内容。

安装

先克隆仓库:

git clone https://github.com/9ith4b/malware-binary-analysis.git
cd malware-binary-analysis

开发期间推荐让 Claude Code 和 Codex 链接到同一个 Skill 目录,避免复制版本漂移。

Windows

在 PowerShell 中从 Skill 根目录执行:

$SkillSource = (Resolve-Path ".").Path
$ClaudeSkills = Join-Path $env:USERPROFILE ".claude\skills"
$CodexBase = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { Join-Path $env:USERPROFILE ".codex" }
$CodexSkills = Join-Path $CodexBase "skills"

New-Item -ItemType Directory -Force -Path $ClaudeSkills | Out-Null
New-Item -ItemType Directory -Force -Path $CodexSkills | Out-Null
New-Item -ItemType Junction -Path (Join-Path $ClaudeSkills "malware-binary-analysis") -Target $SkillSource
New-Item -ItemType Junction -Path (Join-Path $CodexSkills "malware-binary-analysis") -Target $SkillSource

Linux/macOS

SKILL_SOURCE="/absolute/path/malware-binary-analysis"
CODEX_SKILLS="${CODEX_HOME:-$HOME/.codex}/skills"

mkdir -p "$HOME/.claude/skills" "$CODEX_SKILLS"
ln -s "$SKILL_SOURCE" "$HOME/.claude/skills/malware-binary-analysis"
ln -s "$SKILL_SOURCE" "$CODEX_SKILLS/malware-binary-analysis"

Claude Code 也支持项目级 <project>/.claude/skills/malware-binary-analysis/。无论链接还是复制,目标目录内必须直接包含 SKILL.mdscripts/references/assets/agents/

验证安装

python scripts/validate_compatibility.py --skill-root .
python scripts/case_manager.py --help
python scripts/stage_graph.py --help
idasql --version

Linux/macOS 可将 python 替换为 python3。兼容性校验应返回 "valid": true。安装或更新后,启动新的 Claude Code/Codex 会话。

使用

分析样本:

Claude Code: /malware-binary-analysis analysis <sample> [case-root]
Codex:       $malware-binary-analysis analysis <sample> [case-root]

生成报告:

Claude Code: /malware-binary-analysis report <case-root>
Codex:       $malware-binary-analysis report <case-root>

如果 case-root 已有有效状态,Agent 会恢复现有分析。Case 初始化会将样本复制到 analysis_input/ 并校验 SHA-256;源文件、Case 副本、Artifact 或 IDB 身份变化时,旧证据不会被静默复用。

Case 输出

<case-root>/
├── analysis_input/     # SHA-256 校验的输入副本
├── analysis_raw/       # 笔记、SQL、结果和截图证据
├── analysis_state/     # 工作队列、Claim、Artifact、Stage 和校验状态
├── analysis_extract/   # 提取或重构的 Payload
└── analysis_report/    # 最终报告、截图和 draw.io 图形

报告正文不会显示内部 Claim ID,但 Case 状态会将每条 Claim 映射到唯一正文锚点和段落哈希。正文编辑后必须重新登记映射。

手动检查

python "<skill-root>/scripts/case_manager.py" status --case-root "<case-root>"
python "<skill-root>/scripts/case_manager.py" lock-status --case-root "<case-root>"
python "<skill-root>/scripts/stage_graph.py" status --case-root "<case-root>"
python "<skill-root>/scripts/stage_graph.py" validate --case-root "<case-root>" --mode analysis
python "<skill-root>/scripts/case_manager.py" validate --case-root "<case-root>" --mode analysis

报告前将两条 validate 命令的 mode 改为 report。详细命令参数使用对应脚本的 --help

常见问题

Skill 没有被发现

  • Claude Code:检查 .claude/skills/malware-binary-analysis/SKILL.md~/.claude/skills/malware-binary-analysis/SKILL.md
  • Codex:检查 $CODEX_HOME/skills/malware-binary-analysis/SKILL.md;未设置 CODEX_HOME 时检查 ~/.codex/skills/
  • 确认没有多嵌套一层同名目录,并确认安装了完整 Skill,而不是只有 SKILL.md
  • 安装后启动新会话。

找不到 Python 或 IDASQL

  • Python 依次尝试 python3pythonpy -3,要求 3.10+。
  • 确认 IDA Pro 与 IDASQL 安装正确并执行 idasql --version
  • 缺少 IDASQL 时不能完成可执行 Stage 分析。

完成校验失败

使用校验输出定位问题,不要手工修改状态绕过门禁。常见原因包括:开放工作项、缺少 Evidence/Claim 关联、Stage 图过期、IDB 检查点变化、旧分析代次证据、缺少 Stage 摘要,或报告段落追踪过期。

详细文档

About

Evidence-driven, resumable malware binary analysis skill for Claude Code and Codex using IDA Pro and IDASQL.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages