交互式UI的优点:
-
支持自动分析
-
支持人工调整分析结果
-
支持人工调整修补结果
-
支持动态导航地址
交互式 UI 最大程度应对编译优化(例如共用尾部基本块、部分平坦化、多分发器)、定制变种修改(状态变量复杂化、过程间加密等)带来的分析困难挑战。
本期课程将带你深入解析二进制混淆技术,重点讲解 Angr 符号执行 的实战应用。我们将拆解多种常见的混淆手法,如 间接跳转、字符串混淆、虚假控制流、控制流平坦化 和 跨函数混淆,帮助你理解这些技术在真实环境中的应用。课程从混淆器的设计角度,分析多种优秀开源混淆器的实现。你还将学习多种先进的二进制分析工具,包括 angr、capstone、keystone、unicorn等分析框架,以及用于修补二进制的 lief 框架。
无论你是安全研究者还是逆向分析爱好者,这门课程都能帮助你更高效地理解和对抗二进制混淆!
实战内容
-
字符串混淆分析与修复 -
变种间接跳转多出口分析与修复 -
过程间混淆分析与修复 -
控制流平坦化分析与修复
课程目录
(已完结)
-
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-控制流平坦化修补
课程目标
学习高级程序自动化分析方法,自动化去除变种间接跳转(例如多个出口的 BR 跳转)混淆、变种控制流平坦化混淆(例如多个主分发器)。
反混淆三部曲:自动分析 -> 自动修补 -> 验证
-
分析:实现自动化混淆分析脚本; -
修补:实现自动化混淆修补脚本; -
验证:验证反混淆修补后的程序能够正常运行且无混淆特征。
控制流平坦化混淆后的 tinfl_decompress
函数,伪代码有 6k 行,逆向分析困难,通过课程教授的方法和脚本,能够还原为清晰结构,与无混淆代码接近一致的伪代码。
aarch 64 指令集 ollvm 的主分发器可能出现大量嵌套、平行的结构,传统模拟执行方案很难覆盖所有情况,课程采用符号执行对分析混淆函数,利用符号执行对反混淆问题进行抽象处理,极大增反混淆方法的加适用性。
经过脚本反混淆后,目标函数结构清晰,与无混淆情况下反编译效果一致。
双出口的 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
报名
课程价格:999
报名咨询:后台回复 “课程”
原文始发于微信公众号(二进制磨剑):交互式反混淆:打造最强控制流平坦化分析交互式插件 | 第三期 | 混淆与反混淆
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论