混淆
计算机科学
可执行文件
抽象解释
静态分析
控制流程
背景(考古学)
象征性执行
理论计算机科学
语义学(计算机科学)
程序分析
逆向工程
程序设计语言
压扁
算法
二进制数
流量(数学)
子程序
静态程序分析
控制(管理)
自动化
控制流分析
数据流分析
口译(哲学)
管理程序
数据结构
平滑的
控制流程图
动态程序分析
分布式计算
作者
Soyeon Baek,Sungho Lee
标识
DOI:10.1109/tse.2026.3659437
摘要
Control Flow Flattening (CFF) is one of the control flow obfuscation techniques. It flattens control flows to conceal the sequential flow of programs. Researchers have utilized both static and dynamic approaches to deobfuscate CFF. Static methods primarily rely on symbolic execution, which leverages pattern-based information from CFF to perform effective analysis. However, these patterns can vary depending on the obfuscation tools used, and the deobfuscation techniques may only work for certain obfuscation tools. Dynamic approaches, on the other hand, face limitations as they may not cover all possible execution paths. We propose a static deobfuscation technique that is independent of obfuscation patterns. Our technique adopts abstract interpretation, which is a theoretical static analysis framework covering all execution paths. We define k-switch context sensitivity for the deobfuscation of CFF, which enables path-sensitive analysis to accurately identify the order of each execution path in obfuscated programs. Our approach utilizes the k-switch context sensitive analysis result to divide an obfuscated program into small fragments of sequentially executable blocks and reassemble the blocks to reconstruct the program’s original control flows. We demonstrate that our technique effectively reduces control flow complexity while preserving the semantics of the obfuscated program. Furthermore, by utilizing a binary lifter, we show that our method is also applicable to obfuscated binary code.
科研通智能强力驱动
Strongly Powered by AbleSci AI