mcpField
R
reverse-engineering

reverse-engineering

github.com/hypnguyen1209安全40366 次安装1 周前更新
代码仓库

关于 reverse-engineering

Reverse Engineering 是面向安全分析人员的技能,用于调查编译二进制文件、固件和未知协议。它结合分流、静态与动态分析、反混淆和补丁差异分析流程,并提供脚本与参考资料。

主要功能

  1. 01二进制分流与反编译
  2. 02动态调试与插桩
  3. 03反调试与反虚拟机分析
  4. 04反混淆与解包
  5. 05固件与 UEFI 分析
  6. 06补丁差异分析与协议推断

适用场景

  1. 01调查未知二进制文件
  2. 02分析受保护或混淆样本
  3. 03检查固件与 UEFI 镜像
  4. 04通过补丁追踪漏洞成因

安装

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

$npx skills add https://github.com/hypnguyen1209/offensive-claude --skill reverse-engineering

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

包含的文件

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

references/
anti-reversing-bypass.md
coverage-reachability.md
deobfuscation.md
dynamic-instrumentation.md
firmware-uefi.md
patch-diffing-protocol.md
rr-time-travel.md
static-triage-decompilation.md
scripts/
antidebug_unhook.py
cve_diff.py
deflatten_triton.py
frida_universal.js
patchdiff_fetch.py
proto_infer.py
rr_root_cause.sh
string_decrypt_emu.py
triage.py
uefi_triage.py
scripts/ghidra/
DecompileToC.java

详细介绍

逆向工程

何时启用

  • 对未知的已编译二进制文件(ELF/PE/Mach-O)或经过剥离/混淆的样本进行初步分析,以评估漏洞或能力。
  • 反编译专有代码并恢复结构和类型(包括借助 AI/MCP 的 Ghidra/Binary Ninja 分析)。
  • 解包并反虚拟化受保护的二进制文件(VMProtect 3.x、Themida、OLLVM 控制流扁平化)。
  • 绕过反调试 / 反虚拟机 / 反 Frida 机制,以便进行动态分析。
  • 固件提取与 UEFI/BIOS 逆向工程、安全启动绕过研究、持久化的预启动植入程序分析。
  • 对 Patch Tuesday/CVE 修复进行补丁差异分析,以找出根本原因并构造 n-day 触发样本。
  • 逆向分析未知的线缆协议或专有文件格式,以便进行模糊测试/解析。

技术图谱

技术ATT&CKCWE参考资料脚本
二进制初步分析(格式/架构/缓解措施/字符串/导入项)T1592.002, T1518.001CWE-1395references/static-triage-decompilation.mdscripts/triage.py
无头反编译(Ghidra 11.4 / r2 / IDA)T1592.002CWE-noinforeferences/static-triage-decompilation.mdscripts/triage.py
AI/MCP 辅助逆向工程(Sidekick / GhidrAssistMCP / LLM4Decompile)T1592.002CWE-noinforeferences/static-triage-decompilation.md-
动态调试(GDB/GEF、x64dbg、条件断点)T1622CWE-noinforeferences/dynamic-instrumentation.md-
Frida 17 插桩 + SSL 锁定/JNI 钩子T1622, T1562.001CWE-noinforeferences/dynamic-instrumentation.mdscripts/frida_universal.js
符号执行 / 具体符号执行(angr、Triton)T1480.001CWE-noinforeferences/dynamic-instrumentation.mdscripts/deflatten_triton.py
反调试检测与绕过(PEB/ptrace/硬件断点/计时)T1622, T1497.001CWE-noinforeferences/anti-reversing-bypass.mdscripts/antidebug_unhook.py
反虚拟机 / 沙箱规避机制中和T1497, T1497.003CWE-noinforeferences/anti-reversing-bypass.mdscripts/antidebug_unhook.py
解包程序并转储 OEP(UPX/运行时加壳器)T1027.002, T1620CWE-noinforeferences/anti-reversing-bypass.mdscripts/antidebug_unhook.py
字符串 / API 哈希反混淆(Unicorn 仿真)T1027.013, T1140, T1027.007CWE-noinforeferences/deobfuscation.mdscripts/string_decrypt_emu.py
OLLVM 控制流扁平化反扁平化T1027.009, T1027CWE-noinforeferences/deobfuscation.mdscripts/deflatten_triton.py
虚拟机保护器反虚拟化(VMProtect 3.x / Themida)T1027.009CWE-noinforeferences/deobfuscation.mdscripts/deflatten_triton.py
固件提取(binwalk/squashfs/QEMU 仿真)T1542.001CWE-1263references/firmware-uefi.mdscripts/uefi_triage.py
UEFI/BIOS 逆向工程 + 安全启动绕过研究T1542.001, T1542.003CWE-347references/firmware-uefi.mdscripts/uefi_triage.py
补丁差异分析 → n-day 根本原因(BinDiff/Diaphora/ghidriff)T1203, T1592.002CWE-noinforeferences/patch-diffing-protocol.mdscripts/patchdiff_fetch.py
协议 / 文件格式推断(Netzob/Kaitai)T1592.002CWE-noinforeferences/patch-diffing-protocol.mdscripts/proto_infer.py

快速开始

# 0. Triage: format, arch, mitigations, packer entropy, strings, imports, capabilities → JSON
python3 scripts/triage.py ./sample -o out/triage.json

# 1. Headless decompile to C (Ghidra 11.4 analyzeHeadless wrapper inside triage.py --decompile)
python3 scripts/triage.py ./sample --decompile --ghidra "$GHIDRA_HOME" -o out/

# 2. If packed/protected → defeat anti-debug, dump OEP (run under x64dbg+ScyllaHide on Windows)
python3 scripts/antidebug_unhook.py --scan ./sample      # enumerate anti-debug primitives first

# 3. Dynamic: attach Frida (Android/Linux/Win), universal SSL-unpin + native trace
frida -U -f com.target.app -l scripts/frida_universal.js --no-pause

# 4. Deobfuscate: emulate string decryptor over all xrefs; de-flatten OLLVM with Triton
python3 scripts/string_decrypt_emu.py ./sample --func 0x401500 --auto-xref -o out/strings.txt
python3 scripts/deflatten_triton.py ./sample --func 0x401abc -o out/cfg.dot

# 5. Firmware: carve + identify + map UEFI DXE/PEI attack surface, scan for PKfail/known hashes
python3 scripts/uefi_triage.py firmware.bin -o out/fw/

# 6. n-day: fetch pre/post-patch Windows binary from winbindex and diff
python3 scripts/patchdiff_fetch.py --pe afd.sys --kb-after KB5050000 -o out/diff/

# 7. Unknown protocol: infer fields/state machine from a pcap, emit Kaitai + Wireshark dissector
python3 scripts/proto_infer.py capture.pcap --port 4444 -o out/proto/

OPSEC 与检测(摘要)

技术遥测 / IOC检测(Sigma/EDR)OPSEC 说明
静态初步分析 / 反编译无(在分析人员的设备上离线进行)不适用 — 在实验室中运行在隔离且已创建快照的 VM 中分析副本;绝不要在目标上分析
Frida / 动态 Hook/proc/self/maps 中的 frida-agent.so、端口 27042、gum-js-loop/gmain 线程、目标上的 ptrace应用侧 RASP(Talsec/DeepID)、Frida 字符串扫描、EDR 用户态 Hook 触发器重命名 Agent,使用 gadget + -l 脚本模式,将 gadget 嵌入 APK 以绕过端口检查
绕过反调试已设置 DR0-7 调试寄存器、PEB.BeingDebugged 状态翻转、被 Hook 的 Nt* 序言自完整性检查、KiUserExceptionDispatcher 检查、TitanHide 与恶意软件的攻防竞赛对加固的加壳程序,优先使用内核级 TitanHide/HyperHide;每次运行前创建快照
加壳程序/OEP 转储新的 RWX 区域、重建 IAT、磁盘上写入的 dump.exeEDR 的 RWX 分配 + 尾跳转启发式检测(仅限实验室)所有操作都在实验室中进行;转储样本仅用于分析,不得重新部署
字符串/API 哈希解密(Unicorn)目标上无(离线仿真)不适用完全离线;安全 — 不会执行样本中的网络/FS 代码
固件 / SPI 闪存转储硬件:在 SPI 上使用芯片夹;软件:使用 chipsec/flashrom 读取Boot Guard / 度量启动(TPM PCR)、Binarly/CHIPSEC 验证工具仅限物理设备/已授权环境;将修改后的映像刷回会造成破坏且容易被发现
安全启动绕过研究ESP 中出现新的未签名引导加载程序、MokList/dbx 异常、bootmgfw 哈希异常度量启动 PCR[0/2/4/7] 偏移、dbx 撤销检查、ESET/Binarly 扫描器使用实验室 VM / 一次性硬件;做好记录,绝不在真实系统中持久化植入物
补丁差异分析目标上无(获取公开二进制文件)不适用使用 Microsoft/发行版的公开二进制文件;在披露/ROE 之前,将 n-day PoC 保留在实验室中
协议推断在服务上重放捕获或构造的数据包针对格式错误/重放帧的 IDS;速率异常限制主动探测频率;当范围内包含在线目标时,优先使用被动 pcap

深入探索

  • references/static-triage-decompilation.md — 文件/架构/缓解措施初步分析、熵值与加壳器识别、能力检测(capa)、Ghidra 11.4 analyzeHeadless + PyGhidra、r2/rizin 与 IDA 反编译流程,以及 2025 年 AI/MCP 辅助层(Binary Ninja Sidekick、GhidrAssistMCP、LLM4Decompile / SK²Decompile)和验证规范。
  • references/dynamic-instrumentation.md — GDB/GEF 与 x64dbg 工作流、条件/命令断点、Frida 17 内部机制(Interceptor/Stalker/Java)、通用 SSL 解锁与 JNI 跟踪,以及使用反向切片进行路径/值恢复的 angr/Triton 符号执行与混合具体符号执行。
  • references/anti-reversing-bypass.md — 反调试分类(PEB 标志、NtSetInformationThread/ThreadHideFromDebugger、DR0-7 / GetThreadContext、KiUserExceptionDispatcher、NtClose、INT 2D、rdtsc 计时、Linux ptrace/TracerPid)、反虚拟机与 al-khaser、ScyllaHide/TitanHide,以及运行时加壳器 OEP 转储。
  • references/deobfuscation.md — 通过 Unicorn 仿真解密字符串与 API 哈希、OLLVM 控制流平坦化还原(分发器恢复、类似 LummaC2 的 Triton 反向切片)、MBA 简化,以及针对 VMProtect 3.x / Themida 的虚拟机保护器去虚拟化(NoVmp/VTIL、Titan、Triton 提升)。
  • references/firmware-uefi.md — binwalk/unblob 提取文件、squashfs/JFFS2 提取、QEMU+afl 仿真、UEFI 卷/DXE/PEI 解析(UEFITool/chipsec)、SMM 调用点与 NVRAM 变量攻击面,以及经验证的 2024-2025 年安全启动绕过研究链:LogoFAIL(CVE-2023-40238)、PKfail(CVE-2024-8105)、CVE-2024-7344、BlackLotus/Bootkitty 背景。
  • references/patch-diffing-protocol.md — 通过 winbindex 获取二进制文件、MSU/CAB 提取、BinDiff/Diaphora/ghidriff 函数级差异分析、LLM 辅助初步分析(PatchWatch/DiffRays)及其幻觉风险提示、2025 年末的内核目标(cldflt.sys、win32k、CLFS),以及网络/文件格式协议逆向工程(Netzob、Kaitai Struct、类似 BinPRE 的字段推断)。
  • references/rr-time-travel.md — 确定性记录/重放根因分析:rr record/replay、使用反向 continue/stepi + 硬件观察点定位造成破坏的写入,以及作用域工作区中的可审计跟踪记录;生成 trace_proof 产物。由 scripts/rr_root_cause.sh 提供支持(在缺少 rr 时会优雅降级)。在 .devcontainer/ 中运行。
  • references/coverage-reachability.md — 证明易受攻击的代码行/函数确实已执行:gcov 行命中(构建时使用 --coverage,运行见证程序,并断言该行不是 #####)以及 -finstrument-functions/rr/uftrace 函数跟踪;validate_findings.py 要求提供 coverage_proof/trace_proof,原生漏洞才能达到 [CONFIRMED] 标准。
  • references/patch-diffing-protocol.md 由 scripts/cve_diff.py 提供输入——从多个来源发现规范修复提交(OSV/NVD/GitHub Advisories),按(repo、sha)去重,并处理 OSV GIT-range fixed 事件;随后克隆受范围门控且经 git_safe 加固的仓库,并执行 git diff fix^..fix。使用它在 BinDiff/ghidriff 之前定位补丁;然后串接到 /engage.crash 进行根因与可利用性分析。

评论

支持 Markdown