混淆与反混淆实战课程【完结】

完结

掌握代码混淆原理与反混淆技术,应对各类加固保护

¥999

课程章节

第 1 课: 混淆与反混淆基础概念

视频

第 2 课: 约束求解与 angr 符号执行

视频
实验

第 3 课: 污点分析框架构建与实战

视频
实验

第 4 课: 模拟执行 unicorn 与 angr

视频
实验

第 5 课: 反汇编框架 capstone

视频
实验

第 6 课: 汇编框架 keystone

视频
实验

第 7 课: IDAPython 编程与基本块分析

视频
实验

第 8 课: 实战静态分析反混淆

视频
实验

第 9 课: IDA 微码基本块优化器

视频

第 10 课: LLVM 核心概念与混淆开发

视频
实验

第 11 课: Goron 间接跳转混淆原理分析

视频
实验

第 12 课: 符号执行分析间接跳转混淆

视频
实验

第 13 课: 符号执行分析 IPO 过程间混淆

视频
实验

第 14 课: 控制流平坦化建模

视频
实验

第 15 课: 符号执行分析控制流平坦化

视频
实验

第 16 课: 控制流平坦化修补

视频
实验

答疑 1: 交互式控制流平坦化插件

视频

答疑 2: 来自真实项目的混淆

视频

补充课: angr 练习

视频
实验

详情

交互式反混淆:打造最强控制流平坦化分析交互式插件 | 第三期 | 混淆与反混淆

课程封面

交互式 UI 的优点

  • 支持自动分析
  • 支持人工调整分析结果
  • 支持人工调整修补结果
  • 支持动态导航地址

交互式 UI 最大程度应对编译优化(例如共用尾部基本块、部分平坦化、多分发器)、定制变种修改(状态变量复杂化、过程间加密等)带来的分析困难挑战。

课程介绍

本期课程将带你深入解析二进制混淆技术,重点讲解 Angr 符号执行的实战应用。我们将拆解多种常见的混淆手法,如间接跳转、字符串混淆、虚假控制流、控制流平坦化和跨函数混淆,帮助你理解这些技术在真实环境中的应用。课程从混淆器的设计角度,分析多种优秀开源混淆器的实现。你还将学习多种先进的二进制分析工具,包括 angr、capstone、keystone、unicorn 等分析框架,以及用于修补二进制的 lief 框架。

无论你是安全研究者还是逆向分析爱好者,这门课程都能帮助你更高效地理解和对抗二进制混淆!

实战内容

  • 字符串混淆分析与修复
  • 变种间接跳转多出口分析与修复
  • 过程间混淆分析与修复
  • 控制流平坦化分析与修复

课程目标

学习高级程序自动化分析方法,自动化去除变种间接跳转(例如多个出口的 BR 跳转)混淆、变种控制流平坦化混淆(例如多个主分发器)。

反混淆三部曲:自动分析 -> 自动修补 -> 验证

  • 分析:实现自动化混淆分析脚本
  • 修补:实现自动化混淆修补脚本
  • 验证:验证反混淆修补后的程序能够正常运行且无混淆特征
反混淆三部曲流程

控制流平坦化混淆后的 tinfl_decompress 函数,伪代码有 6k 行,逆向分析困难,通过课程教授的方法和脚本,能够还原为清晰结构,与无混淆代码接近一致的伪代码。

tinfl_decompress 反混淆效果

aarch64 指令集 ollvm 的主分发器可能出现大量嵌套、平行的结构,传统模拟执行方案很难覆盖所有情况,课程采用符号执行对分析混淆函数,利用符号执行对反混淆问题进行抽象处理,极大增加反混淆方法的适用性。

经过脚本反混淆后,目标函数结构清晰,与无混淆情况下反编译效果一致。

aarch64 主分发器反混淆效果

双出口的 BR 跳转

双出口 BR 跳转

修补后能够完整反编译代码

修补后反编译效果

清晰、统一的控制流建模架构

间接跳转多出口路径探索

br_state_1 = run_until_br(proj, init_state, csel_selector=1) br_state_2 = run_until_br(proj, init_state, csel_selector=2)

控制流平坦化多出口路径探索

succ_state1 = run_until_lists(proj, init_state, csel_selector=1) succ_state2 = run_until_lists(proj, init_state, csel_selector=2)

课程收获

技术与能力收获

  • 系统掌握 Angr 符号执行框架
  • 系统掌握 keystone、capstone、unicorn 框架基础方法
  • 掌握常见混淆自动化分析方法
  • 掌握编译原理中用于二进制自动逆向工程的方法
  • 掌握 llvm 混淆开发、定制以及移植方法
  • 掌握 IDAPython 进阶编程技术
  • 掌握 IDA 微码(Microcode) 基础知识

代码与工具收获

  • 支持多分发器的控制流平坦化通用反混淆脚本 (aarch64)
  • 支持多出口的间接跳转混淆通用反混淆脚本 (aarch64)
  • 混淆与反混淆实验环境

实验使用的框架:llvm + angr + unicorn + keystone + capstone + lief + pwntools

课程服务

课程交流群
讲师答疑
远程操作答疑