Skip to main content

工作原理

deobf-all 作为调度器(Dispatcher),在激活时会执行以下流程:

激活流程

四步工作流

Step 1: 分类(Triage)

始终执行的第一步:
  • 识别目标类型:原生二进制、JavaScript、字节码、其他
  • 识别混淆家族:CFF、VM、字符串加密、加壳、JS 混淆器(obfuscator.io、JSFuck 等)
  • 检查是否有反调试/反逆向层
  • 输出:分类摘要 + 推荐的子 skill 组合

Step 2: 加载与应用(Load & Apply)

根据分类结果应用相关子 skill 知识:
  • JavaScript:运行 scripts/detect-patterns.js(来自 ast-deobfuscation)识别站点/框架
  • 原生二进制:识别保护器类型(VMProtect / Themida / OLLVM / 自定义)

Step 3: 反混淆(Deobfuscate)

  • 优先使用静态反混淆(模式匹配、CFF 还原、字符串解密)
  • 如受阻,切换为动态策略(调试器脚本、仿真、符号执行)
  • 当手动分析停滞时,使用 symbolic-execution-tools 进行自动约束求解

Step 4: 验证(Validate)

  • 将反混淆输出与原始特征对比
  • 验证反混淆后的代码功能等价
  • 检查是否有残余混淆层(嵌套/堆叠保护器)