托管代码逆向(.NET / Java / 脚本)

SkillWeb & browsing

托管代码逆向网关。编排:识别运行时 → 反编译 → 去混淆 → 恶意场景转 [[re-malware]]。 子技能:[[re-dotnet]] [[re-java]] [[re-script-deob]] [[re-wasm]] [[re-ai-triage]] → [[re-ai-model]] [[re-blockchain]] [[re-python]]、[[re-browser-ext]]、[[re-electron]]、[[re-javacard]]。 触发词:.NET、dnSpy、ILSpy、Java、jar、字节码、PowerShell混淆、VBA宏、JS去混淆、托管代码、managed code。

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the 托管代码逆向(.NET / Java / 脚本) skill

What this skill tells your AI

The instructions your AI receives, as published by dslsdzc/rev-skills in .claude/skills/re-managed/SKILL.md and read by ahel’s review.

完整工作流

  1. 识别运行时(不先判型就反编译是最大浪费):
    • PE 文件file 输出含 "Mono/.Net assembly"、PE 可选头数据目录第 15 项(COM Descriptor / CLI header)非零、导入 mscoree.dll → .NET 程序集 → [[re-dotnet]](能力:bytecode-parser
    • jar/war/classunzip -p app.jar META-INF/MANIFEST.MFMain-Class、class 文件魔数 CAFEBABE → Java 字节码 → [[re-java]](能力:bytecode-parser
    • 脚本/宏:shebang(#!/usr/bin/pwsh)、-EncodedCommand / IEX(PowerShell)、OLE 文档(file 显示 "Composite Document")内嵌 VBA、eval( / fromCharCode(JavaScript)→ [[re-script-deob]](能力:deobfuscation
    • 拿不准先 [[re-triage]](能力:triage) 初勘(file/hash/熵/strings),不要凭扩展名猜
  2. 反编译:按识别结果走 [[re-dotnet]](能力:bytecode-parser) / [[re-java]](能力:bytecode-parser) / [[re-script-deob]](能力:deobfuscation),先把目标逻辑还原成可读代码
  3. 去混淆:各原子技能内含对应方案——de4dot(ConfuserEx/SmartAssembly)、混淆识别 + 字符串解密(ProGuard/Allatori)、逐层解码(脚本/宏);混杂原生组件(native stub / JNI)的反混淆转 [[re-deobfuscate]](能力:deobfuscation
  4. 恶意场景(钓鱼宏、下载器脚本、恶意 .NET/Java 样本):转 [[re-malware]](能力:malware-behaviordocument-malwareevasion-analysiskey-extractionthreat-intel) 网关——默认沙箱 → 行为分析 → C2/协议 → IOC/报告;反编译还原结果作为静态证据回传给 [[re-malware]](能力:malware-behaviordocument-malwareevasion-analysiskey-extractionthreat-intel) 使用

何时用哪个原子技能(选择树)

按运行时分支:

  • PE 且确认 .NET 元数据(CLI header / mscoree) → [[re-dotnet]](能力:bytecode-parser;dnSpy/ILSpy 反编译、de4dot 去混淆)
  • jar / war / class(Java 字节码) → [[re-java]](能力:bytecode-parser;CFR/JD-GUI、javap、加固脱壳)
  • .ps1 / .docm / .xlsm / .js / .jse / .hta(脚本或宏) → [[re-script-deob]](能力:deobfuscation;逐层解码,动态执行默认沙箱)
  • Python 打包样本(.exe 含 PyInstaller/PyArmor 特征 / .pyc / python 打包) → [[re-python]](能力:bytecode-parser;pyinstxtractor 解包、PyArmor-Unpacker、pyc 反编译;纯脚本混淆转 [[re-script-deob]](能力:deobfuscation))
  • .wasm / WebAssembly 模块(网页/Node 侧载荷) → [[re-wasm]](能力:web-assembly;WABT 解析 section、wasm-decompile 反编译、DevTools/wasmtime 动态)
  • AI 模型相关 → [[re-ai-triage]](能力:triage) 分流:模型文件(.onnx/.safetensors/.pt)→ [[re-ai-model]](能力:ai-model-analysis;格式识别、权重提取、文件级水印;未知 pkl 默认隔离);仅 API → [[re-ai-attack]](能力:ai-model-analysis;行为层评估,guard 授权前置)
  • EVM 合约字节码(.bin / hex) → [[re-blockchain]](能力:blockchain-analysis;ABI 恢复、panoramix 反编译、漏洞分析)
  • 浏览器扩展(crx/xpi/zip 扩展文件) → [[re-browser-ext]](能力:browser-extension;权限审计/恶意行为/混淆还原)
  • Electron 打包应用(resources/app.asar) → [[re-electron]](能力:electron-analysis;asar 解包、V8 字节码边界、CDP 动态调试)
  • Java Card / SIM(CAP 文件) → [[re-javacard]](能力:bytecode-parser;12 组件解析、process(APDU) 分派还原)
  • Android DEX → 不是本网关——转 [[re-mobile]](能力:dex-parserjni-analysisfrida-instrumentationmobile-forensics;[[re-apk]](能力:dex-parser)),其中含 Java 原生逻辑再回 [[re-java]](能力:bytecode-parser
  • 仅脚本调用 native 下载的 PE → 动态侧跟 [[re-malware]](能力:malware-behaviordocument-malwareevasion-analysiskey-extractionthreat-intel),静态侧回 [[re-binary-core]](能力:decompilationdebuggingmemory-dumpelf-parserpe-parsermacho-parser

跨域联合

  • .NET/Java 恶意样本:[[re-malware]] → 本网关(dotnet / java 反编译还原)→ 回 [[re-malware]](行为验证 + IOC)
  • 恶意脚本/宏:[[re-malware]] → [[re-sandbox]](动态)→ [[re-script-deob]](静态还原载荷)
  • 底座 [[re-binary-core]]:初勘([[re-triage]])、混合程序原生部分(格式解析 / [[re-ghidra]] 反编译)、混淆深层还原([[re-deobfuscate]])
  • 本网关被 [[re-analyze]] 的 triage「.NET/Java/脚本样本」路径调用
  • "代码在数据里"分支:AI 模型([[re-ai-triage]] → [[re-ai-model]] 文件层 / [[re-ai-attack]] 行为层;内嵌代码转 [[re-binary-core]])、EVM 合约字节码([[re-blockchain]],漏洞侧衔接 [[re-vuln]])

常见坑与陷阱

  • 凭扩展名/导入猜运行时:PE 导入 mscoree.dll 未必是纯托管(混合模式 / 混淆器伪装),Jar 可能内嵌 native 库——先按工作流第 1 步确认(CLI header / manifest / 魔数)再选技能
  • .NET 自包含单文件 / Java fat jar 不解包直接分析:单文件把 IL + 运行库捆进 native host,fat jar 的类在 BOOT-INF/lib——先解包([[re-dotnet]] / [[re-java]] 有对应步骤),否则反编译产物空/乱
  • 混淆层数估计不足:还原一层发现还有一层是常态——逐层验证,每层存档,别试图一步到位
  • 动态执行不上沙箱:脚本/宏/VBA 可能下载器、可能持久化——一切动态执行默认沙箱([[re-analyze/platform-tips]] 最高原则),静态解码可免
  • 加固与混淆混淆:Java 加固(Virbox 等)是"壳",de4dot 管不了——先判"壳还是混淆",壳走 [[re-anti-analysis]] 思路(先脱后反)
  • Bytenode 字节码绑定 ABI:现象——宿主 Node 加载 JSC 失败;原因——Bytenode 字节码绑定特定 V8/Node ABI;对策——用样本自带 Electron 的 RunAsNode 模式(ELECTRON_RUN_AS_NODE=1)执行,不启动业务 GUI
  • 注册面 ≠ 执行面:现象——枚举 handler 无法证明数据流;原因——注册存在不等于路径执行;对策——先枚举 IPC/preload 注册面,再对高风险 handler 用 mock fixture 调用并捕获副作用(URL 接收/下载/解压/spawn 参数),形成证据闭环
  • 更新链五元组取证:现象——更新流程证据不全;原因——链路节点分散;对策——按 source URL → downloader → archive path → extractor → executable 每个节点保存哈希与时间戳
  • 签名状态分四态:现象——双签名 DLL 判断含糊;原因——各签名状态可能不同;对策——signtool verify /pa /all /v 逐签名检查(存在性/有效期/时间戳/信任验证分开报告)
  • 静态能力 ≠ 已执行:现象——native 字符串/导入显示高权限能力;原因——导入是线索不是证据;对策——能力描述结合 xref/调用链,报告分栏「条件性能力」与「已观察行为」 (来源:reverse-skill field-journal,MIT)

Signals

GitHub stars
57
Forks
8
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
re-managed
Source
github.com/dslsdzc/rev-skills