mcpField
R
reverse-engineering

reverse-engineering

github.com/juank115安全173 次安装8 周前更新
代码仓库

关于 reverse-engineering

面向初学者的逆向工程技能,指导分析未知二进制文件、恶意软件样本、固件和混淆代码。它采用分阶段流程,提供只读初筛脚本,并在执行样本前设置严格的安全确认门槛。

主要功能

  1. 01只读脚本提取文件初筛信息
  2. 02涵盖静态、动态与行为分析
  3. 03提供 PE、ELF、恶意软件和固件参考
  4. 04按分析阶段选择工具深度
  5. 05执行未知样本前强制安全核验
  6. 06提供分析报告模板与结构

适用场景

  1. 01初步检查可疑可执行文件
  2. 02在无源码时理解程序行为
  3. 03分析固件映像或嵌入式设备
  4. 04汇总恶意软件指标与分析结果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/juank115/reverse-engineerskill --skill reverse-engineering

安装后在 Claude Code 中输入/reverse-engineering确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
report-template.md
references/
cheatsheet.md
dynamic-analysis-example.md
firmware-iot.md
linux-elf.md
malware-analysis.md
static-analysis-example.md
windows-pe.md
scripts/
triage.py

详细介绍

面向初学者的逆向工程技能

这项技能可帮助你逐步分析未知二进制文件、可执行文件、恶意软件样本、固件镜像和混淆代码。它面向初学者,优先考虑安全性、清晰度和可重复的工作流。

何时使用这项技能

  • 用户提供了可疑文件、二进制文件或可执行文件,并询问“这是什么作用?”
  • 用户想在没有源代码的情况下了解程序的工作原理。
  • 用户提到反汇编、反编译、调试、恶意软件、固件、混淆或解包。
  • 用户需要帮助选择工具,或解读逆向工程工具的输出。

快速开始:先运行初步检查脚本

对于任何未知文件,请先运行内置初步检查脚本(只读、纯 Python、无依赖项):

python "${CLAUDE_SKILL_DIR}/scripts/triage.py" <sample>

如果环境中未设置 CLAUDE_SKILL_DIR,请改为在此技能的目录中运行脚本。它会报告哈希、熵、文件格式(PE/ELF/Mach-O)、区段、加壳器线索、可能的反分析指标以及提取出的字符串——这些信息足以帮助你决定下一步。请将每项启发式结果视为有待核实的线索,而非恶意行为的证据。

内置资源

此技能附带了辅助文件。仅在任务符合相应领域时加载参考资料:

资源加载时机……
references/windows-pe.md分析 Windows PE 文件(.exe、.dll、.sys):标头、导入项、加壳器、手动解包
references/linux-elf.md分析 Linux/Unix ELF 二进制文件:标头、符号、GDB 工作流、反分析
references/malware-analysis.md样本可能具有恶意性:实验室环境设置、解包策略、映射到 MITRE 的行为、YARA
references/firmware-iot.md固件镜像或嵌入式设备:binwalk 提取、仿真、UART/JTAG
references/cheatsheet.md需要特定命令:x64dbg、GDB、radare2、Ghidra、WinDbg 快捷操作
references/static-analysis-example.md初学者需要完整的静态分析示例
references/dynamic-analysis-example.md初学者需要完整的隔离动态分析示例
scripts/triage.py执行只读的第一轮初步检查
assets/report-template.md撰写最终分析报告

安全第一:强制执行门禁

逆向工程可能涉及恶意代码。**绝不要在宿主机上运行或调试未知可执行文件。**如果工具只读取样本,则允许在宿主机上进行静态检查。

在提供或执行任何会启动样本、继续调试器运行、单步执行解包存根、模拟固件或连接实时硬件的命令之前,你必须与用户核实所有适用事项:

  • 执行将在专用、可销毁的分析虚拟机或沙箱中进行,而非宿主机上。已禁用共享文件夹、共享剪贴板、拖放功能和宿主机凭据集成。
  • 存在干净的快照,可在分析结束后恢复。
  • 已禁用网络,或网络仅连接到隔离的虚假网络。未桥接到家庭、企业或生产网络。
  • 已安装并启动监控工具,且启动时间早于样本。
  • 环境中不包含生产凭据、个人数据、令牌或受信任设备。
  • 对于物理固件操作,设备归用户所有或已获授权,且与受信任网络隔离;连接时已确认电压并遵循安全硬件操作规范。

如果尚未确认这些情况,请明确向用户征求确认。若任何适用事项尚未确认,请停留在阶段 1–3,并仅提供只读初步分析、静态分析或反汇编。仅仅发出警告并不满足此门禁要求。

执行前,先通过 SHA-256 识别文件。哈希查询是只读操作;由于样本文件可能会公开,未经用户许可,不得将样本本身上传到公共分析服务。

适合初学者的逆向工程工作流

对普通二进制文件、疑似恶意软件和固件,均使用相同的六个阶段。只有在说明原因后,才可跳过不适用的阶段:

  1. 初步分析:识别文件类型、架构、加壳情况和熵。
  2. 静态分析:不执行文件,读取字符串、文件头、导入项和元数据。
  3. 反汇编/反编译:将机器码转换为可读形式。
  4. 动态分析:通过执行门禁后,在受控监测下运行或模拟。
  5. 行为分析:记录网络、文件系统、注册表、进程或设备活动。
  6. 报告:总结发现,包括 IOC、MITRE ATT&CK 映射和建议。

固件/IoT 是有条件适用的领域专项路线,不是第七个阶段,也不能替代阶段 5。输入为固件或嵌入式设备时,请加载 references/firmware-iot.md,并在上述六个阶段中应用其中关于采集、提取、架构、模拟和硬件的指导。例如,提取属于阶段 1–2,原生代码审查属于阶段 3,模拟属于阶段 4,观察设备行为属于阶段 5。

选择合适的工具深度

先从复杂度最低、能够回答问题的工具入手,只有在证据需要时才深入使用其他工具。

级别从这些工具开始在以下情况下转向此级别……
初学者/初步检查附带的 triage.py、file、strings、Detect It Easy、PE-bear需要了解格式、哈希、字符串、节区或加壳线索
引导式可视化分析Ghidra、IDA Free、Cutter;通过执行门禁后使用 Procmon/System Informer需要交叉引用、反编译或可观察的运行时行为
高级/手动操作radare2、搭配 gef/pwndbg 的 GDB、WinDbg、x64dbg 解包、Scylla/IAT 修复简单工具无法解释控制流、反分析机制或加壳载荷

不要将手动解包或 IAT 修复作为初学者的默认操作。使用任何高级命令前,请说明其目标和预期的可观察结果。

阶段 1:初步分析

每个样本都从这里开始。

识别文件

在主机或安全分析 VM 上运行:

  • file <sample> — 文件类型和架构。
  • exiftool <sample> — 元数据、编译器线索、时间戳。
  • sha256sum <sample> — 用于查询的加密哈希。
  • ssdeep <sample> — 用于查找相似样本的模糊哈希。
检查加壳/混淆
  • 高熵区段可能表示加壳或加密。
  • 导入项很少,同时 .text 或 .data 区段很大,可能表示使用了加壳工具。
  • 查找 UPX0、UPX1、.vmp、.themida、.petite 等区段名称。

随附脚本会标出已知的加壳工具区段名称、高熵或可写可执行区段,以及可能与反调试、计时或虚拟化相关的字符串。在后续阶段确认这些线索;它们也可能出现在合法软件中。

阶段 2:静态分析

检查字符串、标头、导入项、导出项、元数据、资源和签名,不执行样本。

实用静态分析工具
工具用途
file识别文件类型和架构
strings提取可读字符串
exiftool提取元数据
binwalk分析签名并提取数据
hexdump -C检查原始字节
pefile (Python)解析 PE 标头
pyelftools (Python)解析 ELF 标头
capstone (Python)轻量级反汇编
yara基于规则的模式匹配

阶段 3:反汇编与反编译

根据预算和平台使用以下工具:

工具类型最适合
Ghidra免费、开源静态分析、反编译、跨平台
IDA Free免费增值反汇编、适合初学者的图形视图
radare2 / Cutter免费、开源命令行工作流、脚本编写
Binary Ninja商业软件快速分析、出色的 IL
x64dbg免费调试器Windows 动态分析
GDB + gef/pwndbg免费调试器Linux 动态分析
面向初学者的反编译技巧
  • 随着理解加深,重命名函数和变量。
  • 首先查找 main、WinMain 或入口点函数。
  • 跟踪用户输入(网络、文件、注册表、命令行)流向危险 API 的路径。
  • 搜索可疑的 API 调用:CreateRemoteThread、VirtualAllocEx、InternetOpenUrl、RegSetValueEx、WriteProcessMemory。

阶段 4:动态分析与调试

在强制执行检查关卡完全验证通过之前,不要进入此阶段。

执行前(必须验证所有适用项)
  • 已确认使用专用的一次性 VM 或沙箱;已禁用主机集成。
  • 已创建干净快照。
  • 已禁用网络,或仅通过隔离的 fake-net 进行路由。
  • 已从下表中选定监控工具、完成安装并启动。
  • 未暴露真实凭据、敏感数据或可信设备。
监控工具
工具平台记录内容安全要求
ProcmonWindows注册表、文件、进程事件在执行样本前,于已验证的 VM 内启动
Process Hacker / System InformerWindows进程、内存、句柄对未知样本,仅在已验证的 VM 内使用
Wireshark跨平台网络流量仅捕获隔离 VM/fake-net 接口的流量,绝不捕获可信 LAN 流量
strace / ltraceLinux系统调用和库调用这些工具会执行样本;必须使用已验证的 VM
x64dbg / WinDbgWindows实时调试加载/继续运行可能会执行代码;必须使用已验证的 VM
GDBLinux实时调试启动/继续运行可能会执行代码;必须使用已验证的 VM
调试检查清单(仅限通过检查关卡后)
  • 在可疑 API 上设置断点。
  • 如果样本已加壳,仅在已验证的 VM 内单步跟踪解包桩代码。
  • 在安全的情况下,从内存中转储解包后的载荷。
  • 记录完整的命令行参数和环境变量。

阶段 5:行为分析

系统地记录观察到的行为。对于疑似恶意软件,请加载 references/malware-analysis.md;对于固件,请使用 references/firmware-iot.md 记录服务、文件系统变更、设备接口和网络行为。

持久化机制
  • 注册表运行键(HKCU\Software\Microsoft\Windows\CurrentVersion\Run)。
  • 计划任务(schtasks)。
  • 启动文件夹。
  • 服务和驱动程序。
  • WMI 事件订阅。
网络指标
  • DNS 查询。
  • HTTP/HTTPS C2 回连。
  • IP 地址和端口。
  • User-Agent 字符串。
数据窃取/影响
  • 文件枚举。
  • 屏幕截图。
  • 键盘记录挂钩。
  • 凭据转储(lsass、SAM hive)。
  • 加密/勒索软件文件扩展名。
需收集的 IOC
  • SHA-256 哈希值。
  • 创建的文件路径。
  • 修改的注册表项。
  • 网络指标。
  • 互斥体/事件名称。
  • 写入的文件名。

阶段 6:报告

每次会话结束时都应提供清晰的报告(使用 assets/report-template.md 作为交付文档结构):

  1. 执行摘要:样本是什么,以及它为何重要。
  2. 入侵指标(IOC):哈希值、IP、域名、文件路径。
  3. 行为摘要:样本执行时会做什么。
  4. MITRE ATT&CK 映射(针对恶意软件):观察到的战术和技术。
  5. 使用的工具:列出工具和命令。
  6. 建议:遏制、检测和预防措施。

输出格式

帮助用户时,请按以下格式组织回复:

## TL;DR
One-paragraph summary of the finding or next step.

## Analysis
Step-by-step reasoning, tool output, and interpretation.

## Findings
- Bullet 1
- Bullet 2

## IOCs (if malware)
| Type | Value |
|------|-------|
| SHA-256 | ... |
| IP | ... |

## Next steps
1. Do this next.
2. Then do this.

## Safety reminders
- Reminder 1
- Reminder 2

示例提示词

  • “分析这个可执行文件。它是否具有恶意?”
  • “反编译这个函数,并说明它的作用。”
  • “帮我解包这个 UPX 样本。”
  • “我可以从这个内存转储中提取哪些 IOC?”
  • “带我逐步逆向分析这个固件映像。”
  • “逐行解释这段汇编代码。”

资源

评论

支持 Markdown