Files

7.8 KiB
Raw Permalink Blame History

name, type, description, capabilities
name type description capabilities
re-managed gateway 托管代码逆向网关。编排:识别运行时 → 反编译 → 去混淆 → 恶意场景转 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。
bytecode-parser
deobfuscation

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

完整工作流

  1. 识别运行时(不先判型就反编译是最大浪费):
    • PE 文件:file 输出含 "Mono/.Net assembly"、PE 可选头数据目录第 15 项(COM Descriptor / CLI header)非零、导入 mscoree.dll → .NET 程序集 → re-dotnet(能力:bytecode-parser)
    • jar/war/class:unzip -p app.jar META-INF/MANIFEST.MF 见 Main-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-behavior、document-malware、evasion-analysis、key-extraction、threat-intel) 网关——默认沙箱 → 行为分析 → C2/协议 → IOC/报告;反编译还原结果作为静态证据回传给 re-malware(能力:malware-behavior、document-malware、evasion-analysis、key-extraction、threat-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-parser、jni-analysis、frida-instrumentation、mobile-forensics;re-apk(能力:dex-parser)),其中含 Java 原生逻辑再回 re-java(能力:bytecode-parser)
  • 仅脚本调用 native 下载的 PE → 动态侧跟 re-malware(能力:malware-behavior、document-malware、evasion-analysis、key-extraction、threat-intel),静态侧回 re-binary-core(能力:decompilation、debugging、memory-dump、elf-parser、pe-parser、macho-parser)

跨域联合

常见坑与陷阱

  • 凭扩展名/导入猜运行时: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)